From: As proposed in the discussion related to your series, here comes an exemple of how it could be. I have taken it into ARC and IA64 architectures as an exemple. This is untested, even not compiled, it is just to illustrated my meaning in the discussion. I also added a patch for powerpc architecture, that one in tested with both pmac32_defconfig and ppc64_le_defconfig. >From my point of view, this different approach provide less churn and less intellectual disturbance than the way you do it. Open for discussion. Baoquan He (5): hexagon: mm: Convert to GENERIC_IOREMAP openrisc: mm: remove unneeded early ioremap code mm: ioremap: allow ARCH to have its own ioremap definition arc: mm: Convert to GENERIC_IOREMAP ia64: mm: Convert to GENERIC_IOREMAP Christophe Leroy (3): mm/ioremap: Define generic_ioremap_prot() and generic_iounmap() mm/ioremap: Consider IOREMAP space in generic ioremap powerpc: mm: Convert to GENERIC_IOREMAP arch/arc/Kconfig | 1 + arch/arc/include/asm/io.h | 7 +++--- arch/arc/mm/ioremap.c | 46 +++-------------------------------- arch/hexagon/Kconfig | 1 + arch/hexagon/include/asm/io.h | 9 +++++-- arch/hexagon/mm/ioremap.c | 44 --------------------------------- arch/ia64/Kconfig | 1 + arch/ia64/include/asm/io.h | 11 ++++++--- arch/ia64/mm/ioremap.c | 45 ++++++---------------------------- arch/openrisc/mm/ioremap.c | 22 ++++------------- arch/powerpc/Kconfig | 1 + arch/powerpc/include/asm/io.h | 11 ++++++--- arch/powerpc/mm/ioremap.c | 26 +------------------- arch/powerpc/mm/ioremap_32.c | 25 ++++++++----------- arch/powerpc/mm/ioremap_64.c | 22 +++++++---------- include/asm-generic/io.h | 7 ++++++ mm/ioremap.c | 33 +++++++++++++++++++------ 17 files changed, 98 insertions(+), 214 deletions(-) delete mode 100644 arch/hexagon/mm/ioremap.c -- 2.37.1