Re: arch/cris/arch-v32/mm/intmem.c:148:17: error: initialization from incompatible pointer type

From: Jesper Nilsson
Date: Fri Sep 23 2016 - 05:14:45 EST


Hi,

There should be some fixes in linux-next today for this.

/Jesper

On Thu, Sep 22, 2016 at 09:15:38PM +0800, kbuild test robot wrote:
> Hi Daniel,
>
> FYI, the error/warning still remains.
>
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> head: 7d1e042314619115153a0f6f06e4552c09a50e13
> commit: ea8daa7b97842aab8507b5b5b1e3226cf2d514a6 kbuild: Add option to turn incompatible pointer check into error
> date: 6 months ago
> config: cris-etraxfs_defconfig (attached as .config)
> compiler: cris-linux-gcc (GCC) 6.2.0
> reproduce:
> wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
> chmod +x ~/bin/make.cross
> git checkout ea8daa7b97842aab8507b5b5b1e3226cf2d514a6
> # save the attached .config to linux build tree
> make.cross ARCH=cris
>
> All errors (new ones prefixed by >>):
>
> arch/cris/arch-v32/mm/intmem.c: In function 'crisv32_intmem_free':
> arch/cris/arch-v32/mm/intmem.c:116:14: warning: comparison of distinct pointer types lacks a cast
> if ((prev != &intmem_allocations) &&
> ^~
> arch/cris/arch-v32/mm/intmem.c:123:14: warning: comparison of distinct pointer types lacks a cast
> if ((next != &intmem_allocations) &&
> ^~
> In file included from include/linux/printk.h:5:0,
> from include/linux/kernel.h:13,
> from include/linux/list.h:8,
> from arch/cris/arch-v32/mm/intmem.c:7:
> arch/cris/arch-v32/mm/intmem.c: At top level:
> >> arch/cris/arch-v32/mm/intmem.c:148:17: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
> device_initcall(crisv32_intmem_init);
> ^
> include/linux/init.h:184:58: note: in definition of macro '__define_initcall'
> __attribute__((__section__(".initcall" #id ".init"))) = fn; \
> ^~
> arch/cris/arch-v32/mm/intmem.c:148:1: note: in expansion of macro 'device_initcall'
> device_initcall(crisv32_intmem_init);
> ^~~~~~~~~~~~~~~
> cc1: some warnings being treated as errors
>
> vim +148 arch/cris/arch-v32/mm/intmem.c
>
> 108ecfbc Jesper Nilsson 2008-01-25 117 (prev->status == STATUS_FREE)) {
> 51533b61 Mikael Starvik 2005-07-27 118 prev->size += allocation->size;
> 51533b61 Mikael Starvik 2005-07-27 119 list_del(&allocation->entry);
> 51533b61 Mikael Starvik 2005-07-27 120 kfree(allocation);
> 51533b61 Mikael Starvik 2005-07-27 121 allocation = prev;
> 51533b61 Mikael Starvik 2005-07-27 122 }
> 108ecfbc Jesper Nilsson 2008-01-25 @123 if ((next != &intmem_allocations) &&
> 108ecfbc Jesper Nilsson 2008-01-25 124 (next->status == STATUS_FREE)) {
> 51533b61 Mikael Starvik 2005-07-27 125 allocation->size += next->size;
> 51533b61 Mikael Starvik 2005-07-27 126 list_del(&next->entry);
> 51533b61 Mikael Starvik 2005-07-27 127 kfree(next);
> 51533b61 Mikael Starvik 2005-07-27 128 }
> 51533b61 Mikael Starvik 2005-07-27 129 preempt_enable();
> 51533b61 Mikael Starvik 2005-07-27 130 return;
> 51533b61 Mikael Starvik 2005-07-27 131 }
> 51533b61 Mikael Starvik 2005-07-27 132 }
> 51533b61 Mikael Starvik 2005-07-27 133 preempt_enable();
> 51533b61 Mikael Starvik 2005-07-27 134 }
> 51533b61 Mikael Starvik 2005-07-27 135
> 51533b61 Mikael Starvik 2005-07-27 136 void* crisv32_intmem_phys_to_virt(unsigned long addr)
> 51533b61 Mikael Starvik 2005-07-27 137 {
> 108ecfbc Jesper Nilsson 2008-01-25 138 return (void *)(addr - (MEM_INTMEM_START + RESERVED_SIZE) +
> 51533b61 Mikael Starvik 2005-07-27 139 (unsigned long)intmem_virtual);
> 51533b61 Mikael Starvik 2005-07-27 140 }
> 51533b61 Mikael Starvik 2005-07-27 141
> 51533b61 Mikael Starvik 2005-07-27 142 unsigned long crisv32_intmem_virt_to_phys(void* addr)
> 51533b61 Mikael Starvik 2005-07-27 143 {
> 51533b61 Mikael Starvik 2005-07-27 144 return (unsigned long)((unsigned long )addr -
> 108ecfbc Jesper Nilsson 2008-01-25 145 (unsigned long)intmem_virtual + MEM_INTMEM_START +
> 108ecfbc Jesper Nilsson 2008-01-25 146 RESERVED_SIZE);
> 51533b61 Mikael Starvik 2005-07-27 147 }
> 73de14e8 Paul Gortmaker 2015-05-01 @148 device_initcall(crisv32_intmem_init);
> 51533b61 Mikael Starvik 2005-07-27 149
>
> :::::: The code at line 148 was first introduced by commit
> :::::: 73de14e8cdc733bbc8eda006f813d5aa51511139 cris: don't use module_init for non-modular core intmem.c code
>
> :::::: TO: Paul Gortmaker <paul.gortmaker@xxxxxxxxxxxxx>
> :::::: CC: Paul Gortmaker <paul.gortmaker@xxxxxxxxxxxxx>
>
> ---
> 0-DAY kernel test infrastructure Open Source Technology Center
> https://lists.01.org/pipermail/kbuild-all Intel Corporation



/^JN - Jesper Nilsson
--
Jesper Nilsson -- jesper.nilsson@xxxxxxxx