[gabbayo:habanalabs-next 14/21] drivers/misc/habanalabs/mmu.c:36:8: warning: cast to pointer from integer of different size
kbuild test robot
lkp at intel.com
Sun Mar 31 09:27:34 UTC 2019
tree: git://people.freedesktop.org/~gabbayo/linux habanalabs-next
head: fd467452d554d95e0294e6e34781028f6d3f69f5
commit: 9b588e636ae2944f65223e2bb0df67772f97a178 [14/21] habanalabs: add MMU shadow mapping
config: mips-allyesconfig (attached as .config)
compiler: mips-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
git checkout 9b588e636ae2944f65223e2bb0df67772f97a178
# save the attached .config to linux build tree
GCC_VERSION=7.2.0 make.cross ARCH=mips
All warnings (new ones prefixed by >>):
drivers/misc/habanalabs/mmu.c: In function 'free_hop':
>> drivers/misc/habanalabs/mmu.c:36:8: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
kfree((u64 *) pgt_info->shadow_addr);
^
drivers/misc/habanalabs/mmu.c: In function 'alloc_hop':
>> drivers/misc/habanalabs/mmu.c:58:16: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
shadow_addr = (u64) kzalloc(prop->mmu_hop_table_size, GFP_KERNEL);
^
drivers/misc/habanalabs/mmu.c: In function 'write_pte':
drivers/misc/habanalabs/mmu.c:114:3: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
*(u64 *) shadow_pte_addr = val;
^
drivers/misc/habanalabs/mmu.c: In function 'write_final_pte':
drivers/misc/habanalabs/mmu.c:124:3: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
*(u64 *) shadow_pte_addr = val;
^
drivers/misc/habanalabs/mmu.c: In function '_hl_mmu_unmap':
drivers/misc/habanalabs/mmu.c:541:14: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
curr_pte = *(u64 *) hop0_pte_addr;
^
drivers/misc/habanalabs/mmu.c:550:14: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
curr_pte = *(u64 *) hop1_pte_addr;
^
drivers/misc/habanalabs/mmu.c:559:14: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
curr_pte = *(u64 *) hop2_pte_addr;
^
drivers/misc/habanalabs/mmu.c:568:14: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
curr_pte = *(u64 *) hop3_pte_addr;
^
drivers/misc/habanalabs/mmu.c:586:15: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
curr_pte = *(u64 *) hop4_pte_addr;
^
drivers/misc/habanalabs/mmu.c: In function '_hl_mmu_map':
drivers/misc/habanalabs/mmu.c:748:14: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
curr_pte = *(u64 *) hop0_pte_addr;
^
drivers/misc/habanalabs/mmu.c:755:14: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
curr_pte = *(u64 *) hop1_pte_addr;
^
drivers/misc/habanalabs/mmu.c:762:14: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
curr_pte = *(u64 *) hop2_pte_addr;
^
drivers/misc/habanalabs/mmu.c:769:14: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
curr_pte = *(u64 *) hop3_pte_addr;
^
drivers/misc/habanalabs/mmu.c:777:15: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
curr_pte = *(u64 *) hop4_pte_addr;
^
In file included from include/linux/printk.h:330:0,
from include/linux/kernel.h:15,
from include/linux/list.h:9,
from include/linux/kobject.h:19,
from include/linux/cdev.h:5,
from drivers/misc/habanalabs/habanalabs.h:16,
from drivers/misc/habanalabs/mmu.c:8:
drivers/misc/habanalabs/mmu.c:805:5: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
*(u64 *) hop0_pte_addr, hop0_pte_addr);
^
include/linux/dynamic_debug.h:118:15: note: in definition of macro '__dynamic_func_call'
func(&id, ##__VA_ARGS__); \
^~~~~~~~~~~
include/linux/dynamic_debug.h:150:2: note: in expansion of macro '_dynamic_func_call'
_dynamic_func_call(fmt,__dynamic_dev_dbg, \
^~~~~~~~~~~~~~~~~~
include/linux/device.h:1495:2: note: in expansion of macro 'dynamic_dev_dbg'
dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__)
^~~~~~~~~~~~~~~
>> drivers/misc/habanalabs/mmu.c:804:3: note: in expansion of macro 'dev_dbg'
dev_dbg(hdev->dev, "hop0 pte: 0x%llx (0x%llx)\n",
^~~~~~~
drivers/misc/habanalabs/mmu.c:807:5: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
*(u64 *) hop1_pte_addr, hop1_pte_addr);
^
include/linux/dynamic_debug.h:118:15: note: in definition of macro '__dynamic_func_call'
func(&id, ##__VA_ARGS__); \
^~~~~~~~~~~
include/linux/dynamic_debug.h:150:2: note: in expansion of macro '_dynamic_func_call'
_dynamic_func_call(fmt,__dynamic_dev_dbg, \
^~~~~~~~~~~~~~~~~~
include/linux/device.h:1495:2: note: in expansion of macro 'dynamic_dev_dbg'
dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__)
^~~~~~~~~~~~~~~
drivers/misc/habanalabs/mmu.c:806:3: note: in expansion of macro 'dev_dbg'
dev_dbg(hdev->dev, "hop1 pte: 0x%llx (0x%llx)\n",
^~~~~~~
drivers/misc/habanalabs/mmu.c:809:5: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
*(u64 *) hop2_pte_addr, hop2_pte_addr);
^
include/linux/dynamic_debug.h:118:15: note: in definition of macro '__dynamic_func_call'
func(&id, ##__VA_ARGS__); \
^~~~~~~~~~~
include/linux/dynamic_debug.h:150:2: note: in expansion of macro '_dynamic_func_call'
_dynamic_func_call(fmt,__dynamic_dev_dbg, \
^~~~~~~~~~~~~~~~~~
include/linux/device.h:1495:2: note: in expansion of macro 'dynamic_dev_dbg'
dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__)
^~~~~~~~~~~~~~~
drivers/misc/habanalabs/mmu.c:808:3: note: in expansion of macro 'dev_dbg'
dev_dbg(hdev->dev, "hop2 pte: 0x%llx (0x%llx)\n",
^~~~~~~
drivers/misc/habanalabs/mmu.c:811:5: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
*(u64 *) hop3_pte_addr, hop3_pte_addr);
^
include/linux/dynamic_debug.h:118:15: note: in definition of macro '__dynamic_func_call'
func(&id, ##__VA_ARGS__); \
^~~~~~~~~~~
include/linux/dynamic_debug.h:150:2: note: in expansion of macro '_dynamic_func_call'
_dynamic_func_call(fmt,__dynamic_dev_dbg, \
^~~~~~~~~~~~~~~~~~
include/linux/device.h:1495:2: note: in expansion of macro 'dynamic_dev_dbg'
dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__)
^~~~~~~~~~~~~~~
drivers/misc/habanalabs/mmu.c:810:3: note: in expansion of macro 'dev_dbg'
dev_dbg(hdev->dev, "hop3 pte: 0x%llx (0x%llx)\n",
^~~~~~~
drivers/misc/habanalabs/mmu.c:815:6: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
*(u64 *) hop4_pte_addr, hop4_pte_addr);
^
include/linux/dynamic_debug.h:118:15: note: in definition of macro '__dynamic_func_call'
func(&id, ##__VA_ARGS__); \
^~~~~~~~~~~
include/linux/dynamic_debug.h:150:2: note: in expansion of macro '_dynamic_func_call'
_dynamic_func_call(fmt,__dynamic_dev_dbg, \
^~~~~~~~~~~~~~~~~~
include/linux/device.h:1495:2: note: in expansion of macro 'dynamic_dev_dbg'
dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__)
^~~~~~~~~~~~~~~
drivers/misc/habanalabs/mmu.c:814:4: note: in expansion of macro 'dev_dbg'
dev_dbg(hdev->dev, "hop4 pte: 0x%llx (0x%llx)\n",
^~~~~~~
vim +36 drivers/misc/habanalabs/mmu.c
27
28 static void free_hop(struct hl_ctx *ctx, u64 hop_addr)
29 {
30 struct hl_device *hdev = ctx->hdev;
31 struct pgt_info *pgt_info = get_pgt_info(ctx, hop_addr);
32
33 gen_pool_free(hdev->mmu_pgt_pool, pgt_info->phys_addr,
34 hdev->asic_prop.mmu_hop_table_size);
35 hash_del(&pgt_info->node);
> 36 kfree((u64 *) pgt_info->shadow_addr);
37 kfree(pgt_info);
38 }
39
40 static u64 alloc_hop(struct hl_ctx *ctx)
41 {
42 struct hl_device *hdev = ctx->hdev;
43 struct asic_fixed_properties *prop = &hdev->asic_prop;
44 struct pgt_info *pgt_info;
45 u64 phys_addr, shadow_addr;
46
47 pgt_info = kmalloc(sizeof(*pgt_info), GFP_KERNEL);
48 if (!pgt_info)
49 return ULLONG_MAX;
50
51 phys_addr = (u64) gen_pool_alloc(hdev->mmu_pgt_pool,
52 prop->mmu_hop_table_size);
53 if (!phys_addr) {
54 dev_err(hdev->dev, "failed to allocate page\n");
55 goto pool_add_err;
56 }
57
> 58 shadow_addr = (u64) kzalloc(prop->mmu_hop_table_size, GFP_KERNEL);
59 if (!shadow_addr)
60 goto shadow_err;
61
62 pgt_info->phys_addr = phys_addr;
63 pgt_info->shadow_addr = shadow_addr;
64 pgt_info->ctx = ctx;
65 pgt_info->num_of_ptes = 0;
66 hash_add(ctx->mmu_shadow_hash, &pgt_info->node, shadow_addr);
67
68 return shadow_addr;
69
70 shadow_err:
71 gen_pool_free(hdev->mmu_pgt_pool, phys_addr, prop->mmu_hop_table_size);
72 pool_add_err:
73 kfree(pgt_info);
74
75 return ULLONG_MAX;
76 }
77
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 59251 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/dri-devel/attachments/20190331/700ccbe3/attachment-0001.gz>
More information about the dri-devel
mailing list