Re: [PATCH v5 02/39] openrisc: add ioremap_nocache declaration before include asm-generic/io.h and sync ioremap prototype with it.

From: Greentime Hu
Date: Wed Jan 03 2018 - 10:24:27 EST


Hi, Stafford:

2018-01-03 22:38 GMT+08:00 Stafford Horne <shorne@xxxxxxxxx>:
> Hello,
>
> On Tue, Jan 02, 2018 at 04:24:34PM +0800, Greentime Hu wrote:
>> From: Greentime Hu <greentime@xxxxxxxxxxxxx>
>>
>> It will be built failed if commit id: d25ea659 is selected. This patch can fix this
>> build error.
>
> Ideally you would mention the commit description since the id is not yet
> usptream. I found it here (its 1 in this series):
>
> https://github.com/andestech/linux/commit/d25ea659
> asm-generic/io.h: move ioremap_nocache/ioremap_uc/ioremap_wc/ioremap_...
>
>> Signed-off-by: Greentime Hu <greentime@xxxxxxxxxxxxx>
>> ---
>> arch/openrisc/include/asm/io.h | 3 ++-
>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/arch/openrisc/include/asm/io.h b/arch/openrisc/include/asm/io.h
>> index 7c69139..6709b28 100644
>> --- a/arch/openrisc/include/asm/io.h
>> +++ b/arch/openrisc/include/asm/io.h
>> @@ -29,13 +29,14 @@
>> #define PIO_OFFSET 0
>> #define PIO_MASK 0
>>
>> +#define ioremap_nocache ioremap_nocache
>> #include <asm-generic/io.h>
>
> Ideally we could move <asm-generic/io.h> include down to the bottom of the file
> and not have to do the defines like like this, it seems clumsy to me. In
> 'cris', 'nios2' and other architectures I can see they have the generic include
> at the bottom of the file and not need for #define's.
>
> I tried that but I get a lot of errors. Does your patch to asm-generic/io.h
> cause build issues for those architectures as well?
>

I got this email from kbuild test robot. I personally tried arm64/x86
before I sent the generic asm io.h patch.
I tried openrisc/sparc before I sent these v5 patches.

BUILD REGRESSION

tree/branch: https://github.com/0day-ci/linux
Greentime-Hu/Andes-nds32-Linux-Kernel/20171220-155937
branch HEAD: 9353e22157b9b69be3a3beea3553b5a105a45516 dt-bindings:
timer: Add andestech atcpit100 timer binding doc

Regressions in current branch:

arch/cris/mm/ioremap.c:79:15: note: in expansion of macro 'ioremap_nocache'
arch/openrisc/include/asm/io.h:38:29: error: conflicting types for 'ioremap'
arch/openrisc/include/asm/io.h:44:29: note: in expansion of macro
'ioremap_nocache'
arch/sparc/include/asm/io_32.h:129:15: error: conflicting types for 'ioremap'
arch/sparc/include/asm/io_32.h:130:0: warning: "ioremap_nocache" redefined
arch/sparc/include/asm/io_32.h:131:0: warning: "ioremap_wc" redefined
arch/sparc/include/asm/io_32.h:132:0: warning: "ioremap_wt" redefined
arch/sparc/kernel/ioport.c:124:15: error: conflicting types for 'ioremap'
arch/sparc/kernel/ioport.c:131:1: note: in expansion of macro 'EXPORT_SYMBOL'
drivers/net/ethernet/faraday/ftmac100.c:205:32: sparse: restricted
__le32 degrades to integer
drivers/net/ethernet/faraday/ftmac100.c:221:23: sparse: incorrect type
in assignment (different base types)
drivers/net/ethernet/faraday/ftmac100.c:251:16: sparse: cast to
restricted __le32
drivers/net/ethernet/faraday/ftmac100.c:262:23: sparse: invalid assignment: &=
drivers/net/ethernet/faraday/ftmac100.c:274:23: sparse: incorrect type
in assignment (different base types)
drivers/net/ethernet/faraday/ftmac100.c:288:18: warning: cast from
pointer to integer of different size [-Wpointer-to-int-cast]
drivers/net/ethernet/faraday/ftmac100.c:293:9: warning: cast to
pointer from integer of different size [-Wint-to-pointer-cast]
drivers/net/ethernet/faraday/ftmac100.c:534:23: sparse: incorrect type
in assignment (different base types)
include/asm-generic/io.h:864:15: error: conflicting types for 'ioremap'
include/asm-generic/io.h:865:25: error: conflicting types for 'ioremap_nocache'
include/asm-generic/io.h:866:29: note: in expansion of macro 'ioremap_nocache'

Error ids grouped by kconfigs:

recent_errors
âââ cris-etrax-100lx_v2_defconfig
â âââ arch-cris-mm-ioremap.c:note:in-expansion-of-macro-ioremap_nocache
âââ openrisc-or1ksim_defconfig
â âââ arch-openrisc-include-asm-io.h:error:conflicting-types-for-ioremap
â âââ arch-openrisc-include-asm-io.h:note:in-expansion-of-macro-ioremap_nocache
âââ sparc64-allyesconfig
â âââ drivers-net-ethernet-faraday-ftmac100.c:warning:cast-from-pointer-to-integer-of-different-size
â âââ drivers-net-ethernet-faraday-ftmac100.c:warning:cast-to-pointer-from-integer-of-different-size
âââ sparc-defconfig
â âââ arch-sparc-include-asm-io_32.h:error:conflicting-types-for-ioremap
â âââ arch-sparc-include-asm-io_32.h:warning:ioremap_nocache-redefined
â âââ arch-sparc-include-asm-io_32.h:warning:ioremap_wc-redefined
â âââ arch-sparc-include-asm-io_32.h:warning:ioremap_wt-redefined
â âââ arch-sparc-kernel-ioport.c:error:conflicting-types-for-ioremap
â âââ arch-sparc-kernel-ioport.c:note:in-expansion-of-macro-EXPORT_SYMBOL
âââ x86_64-allmodconfig
â âââ drivers-net-ethernet-faraday-ftmac100.c:sparse:cast-to-restricted-__le32
â âââ drivers-net-ethernet-faraday-ftmac100.c:sparse:incorrect-type-in-assignment-(different-base-types)-expected-unsigned-int-unsigned-rxdes0-got-restrunsigned-int-unsigned-rxdes0
â âââ drivers-net-ethernet-faraday-ftmac100.c:sparse:incorrect-type-in-assignment-(different-base-types)-expected-unsigned-int-unsigned-rxdes2-got-restrunsigned-int-unsigned-rxdes2
â âââ drivers-net-ethernet-faraday-ftmac100.c:sparse:incorrect-type-in-assignment-(different-base-types)-expected-unsigned-int-unsigned-txdes2-got-restrunsigned-int-unsigned-txdes2
â âââ drivers-net-ethernet-faraday-ftmac100.c:sparse:invalid-assignment:
â âââ drivers-net-ethernet-faraday-ftmac100.c:sparse:restricted-__le32-degrades-to-integer
â âââ drivers-net-ethernet-faraday-ftmac100.c:warning:cast-from-pointer-to-integer-of-different-size
â âââ drivers-net-ethernet-faraday-ftmac100.c:warning:cast-to-pointer-from-integer-of-different-size
âââ xtensa-allmodconfig
âââ include-asm-generic-io.h:error:conflicting-types-for-ioremap
âââ include-asm-generic-io.h:error:conflicting-types-for-ioremap_nocache
âââ include-asm-generic-io.h:note:in-expansion-of-macro-ioremap_nocache

elapsed time: 359m

configs tested: 128

i386 tinyconfig
i386 randconfig-x016-201751
i386 randconfig-x011-201751
i386 randconfig-x014-201751
i386 randconfig-x017-201751
i386 randconfig-x019-201751
i386 randconfig-x018-201751
i386 randconfig-x010-201751
i386 randconfig-x013-201751
i386 randconfig-x015-201751
i386 randconfig-x012-201751
i386 randconfig-n0-201751
x86_64 randconfig-x003-201751
x86_64 randconfig-x002-201751
x86_64 randconfig-x006-201751
x86_64 randconfig-x007-201751
x86_64 randconfig-x000-201751
x86_64 randconfig-x005-201751
x86_64 randconfig-x004-201751
x86_64 randconfig-x009-201751
x86_64 randconfig-x008-201751
x86_64 randconfig-x001-201751
ia64 allnoconfig
ia64 defconfig
ia64 alldefconfig
i386 randconfig-i0-12180843
i386 randconfig-i1-12180843
x86_64 randconfig-x012-201751
x86_64 randconfig-x010-201751
x86_64 randconfig-x011-201751
x86_64 randconfig-x015-201751
x86_64 randconfig-x019-201751
x86_64 randconfig-x014-201751
x86_64 randconfig-x013-201751
x86_64 randconfig-x016-201751
x86_64 randconfig-x017-201751
x86_64 randconfig-x018-201751
i386 randconfig-a0-201751
i386 randconfig-a1-201751
c6x evmc6678_defconfig
xtensa common_defconfig
m32r m32104ut_defconfig
score spct6600_defconfig
xtensa iss_defconfig
m32r opsput_defconfig
m32r usrv_defconfig
m32r mappi3.smp_defconfig
nios2 10m50_defconfig
h8300 h8300h-sim_defconfig
cris etrax-100lx_v2_defconfig
blackfin TCM-BF537_defconfig
blackfin BF561-EZKIT-SMP_defconfig
blackfin BF533-EZKIT_defconfig
blackfin BF526-EZBRD_defconfig
i386 allnoconfig
i386 defconfig
i386 alldefconfig
i386 randconfig-s1-201751
i386 randconfig-s0-201751
mn10300 asb2364_defconfig
openrisc or1ksim_defconfig
um x86_64_defconfig
um i386_defconfig
frv defconfig
tile tilegx_defconfig
i386 allmodconfig
microblaze mmu_defconfig
microblaze nommu_defconfig
sh titan_defconfig
sh rsk7269_defconfig
sh sh7785lcr_32bit_defconfig
sh allnoconfig
i386 randconfig-x007-201751
i386 randconfig-x008-201751
i386 randconfig-x009-201751
i386 randconfig-x004-201751
i386 randconfig-x002-201751
i386 randconfig-x005-201751
i386 randconfig-x001-201751
i386 randconfig-x006-201751
i386 randconfig-x003-201751
i386 randconfig-x000-201751
m68k sun3_defconfig
m68k multi_defconfig
m68k m5475evb_defconfig
mips jz4740
mips malta_kvm_defconfig
mips 64r6el_defconfig
mips 32r2_defconfig
mips allnoconfig
mips fuloong2e_defconfig
mips txx9
sparc defconfig
sparc64 allnoconfig
sparc64 defconfig
x86_64 allmodconfig
parisc c3000_defconfig
parisc b180_defconfig
parisc defconfig
alpha defconfig
parisc allnoconfig
s390 default_defconfig
arm at91_dt_defconfig
arm allnoconfig
arm efm32_defconfig
arm64 defconfig
arm multi_v5_defconfig
arm sunxi_defconfig
arm64 allnoconfig
arm exynos_defconfig
arm shmobile_defconfig
arm multi_v7_defconfig
i386 randconfig-x072-201751
i386 randconfig-x078-201751
i386 randconfig-x071-201751
i386 randconfig-x077-201751
i386 randconfig-x070-201751
i386 randconfig-x074-201751
i386 randconfig-x073-201751
i386 randconfig-x079-201751
i386 randconfig-x076-201751
i386 randconfig-x075-201751
x86_64 acpi-redef
x86_64 allyesdebian
x86_64 nfsroot
x86_64 kexec
x86_64 rhel
x86_64 rhel-7.2