Le 17/02/2023 à 15:33, Christophe Leroy a écrit : > > > Le 17/02/2023 à 15:21, Baoquan He a écrit : >> On 02/17/23 at 01:46pm, Christophe Leroy wrote: >>> >>> >>> Le 17/02/2023 à 14:31, Baoquan He a écrit : >>>> On 02/16/23 at 04:18pm, Arnd Bergmann wrote: >>>>> On Thu, Feb 16, 2023, at 16:02, Baoquan He wrote: >>>>>> On 02/16/23 at 01:50pm, Matthew Wilcox wrote: >>>>>> It's not if including asm-generic/iomap.h. The ARCH_HAS_IOREMAP_xx >>>>>> is to >>>>>> avoid redefinition there. >>>>>> >>>>>> include/asm-generic/iomap.h: >>>>>> ---- >>>>>> #ifndef ARCH_HAS_IOREMAP_WC >>>>>> #define ioremap_wc ioremap >>>>>> #endif >>>>> >>>>> I'd change that to the usual '#ifndef ioremap_wc' in that case. >>>> >>>> Not sure if I got you. Kill all ARCH_HAS_IOREMAP_xxx in kernel? If yes, >>>> sounds like a good idea. >>>> >>> >>> At least kill that one at the first place in your series, and then the >>> other ones in a follow-up series maybe. >> >> Then we can make a preparation patch to change that in iomap.h, then >> remove all ARCH_HAS_IOREMAP_WC definition in arch. I thought to let this >> patch as is, then get rid of all ARCH_HAS_IOREMAP_xxx in a follow-up >> series. While the former is also fine to me. Thanks, Christophe. >> >> diff --git a/include/asm-generic/iomap.h b/include/asm-generic/iomap.h >> index 08237ae8b840..5fa1e9ca951c 100644 >> --- a/include/asm-generic/iomap.h >> +++ b/include/asm-generic/iomap.h >> @@ -93,7 +93,7 @@ extern void __iomem *ioport_map(unsigned long port, >> unsigned int nr); >> extern void ioport_unmap(void __iomem *); >> #endif >> -#ifndef ARCH_HAS_IOREMAP_WC >> +#ifndef ioremap_wc >> #define ioremap_wc ioremap >> #endif >> >> [~]$ git grep ARCH_HAS_IOREMAP_WC >> arch/loongarch/include/asm/io.h:#define ARCH_HAS_IOREMAP_WC >> arch/mips/include/asm/io.h:#define ARCH_HAS_IOREMAP_WC >> arch/powerpc/include/asm/io.h:#define ARCH_HAS_IOREMAP_WC >> arch/x86/include/asm/io.h:#define ARCH_HAS_IOREMAP_WC >> drivers/net/ethernet/sfc/io.h:#ifdef ARCH_HAS_IOREMAP_WC >> drivers/net/ethernet/sfc/siena/io.h:#ifdef ARCH_HAS_IOREMAP_WC >> include/asm-generic/iomap.h:#ifndef ARCH_HAS_IOREMAP_WC >> >> > > Not so many: > > $ git grep ARCH_HAS_IOREMAP_WC | grep define > arch/loongarch/include/asm/io.h:#define ARCH_HAS_IOREMAP_WC > arch/mips/include/asm/io.h:#define ARCH_HAS_IOREMAP_WC > arch/powerpc/include/asm/io.h:#define ARCH_HAS_IOREMAP_WC > arch/x86/include/asm/io.h:#define ARCH_HAS_IOREMAP_WC > > And also make sure they define ioremap_wc : > > $ git grep "define ioremap_wc" `git grep -l "define ARCH_HAS_IOREMAP_WC"` > arch/loongarch/include/asm/io.h:#define ioremap_wc(offset, size) \ > arch/mips/include/asm/io.h:#define ioremap_wc(offset, size) > \ > arch/powerpc/include/asm/io.h:#define ioremap_wc ioremap_wc > arch/x86/include/asm/io.h:#define ioremap_wc ioremap_wc > By the way there are so few, you can make all at once: $ git grep ARCH_HAS_IOREMAP_ | grep define arch/loongarch/include/asm/io.h:#define ARCH_HAS_IOREMAP_WC arch/m68k/include/asm/kmap.h:#define ARCH_HAS_IOREMAP_WT arch/mips/include/asm/io.h:#define ARCH_HAS_IOREMAP_WC arch/powerpc/include/asm/io.h:#define ARCH_HAS_IOREMAP_WC arch/powerpc/include/asm/io.h:#define ARCH_HAS_IOREMAP_WT arch/x86/include/asm/io.h:#define ARCH_HAS_IOREMAP_WC arch/x86/include/asm/io.h:#define ARCH_HAS_IOREMAP_WT Christophe