mbox series

[v5,0/4] arch/*/io.h: remove ioremap_uc in some architectures

Message ID 20230921110424.215592-1-bhe@redhat.com (mailing list archive)
Headers show
Series arch/*/io.h: remove ioremap_uc in some architectures | expand

Message

Baoquan He Sept. 21, 2023, 11:04 a.m. UTC
This patchset tries to remove ioremap_uc() in the current architectures
except of x86 and ia64. They will use the default ioremap_uc version
in <asm-generic/io.h> which returns NULL. Anyone who wants to add new
invocation of ioremap_uc(), please consider using ioremap() instead or
adding a new ARCH specific ioremap_uc(), or refer to the callsite
in drivers/video/fbdev/aty/atyfb_base.c.

This change won't cuase breakage to the current kernel because in the
only ioremap_uc callsite, an adjustment is made to eliminate impact in
patch 1 of this series.

To get rid of all of them other than x86 and ia64, add asm-generic/io.h
to asm/io.h of mips ARCH. With this adding, we can get rid of the
ioremap_uc() in mips too. This is done in patch 2. And a followup patch
4 is added to remove duplicated code according to Arnd's suggestion.

Test:
=====
Except of Jiaxun's efficient testing on patch 2/4, I also did cross compiling
of this series on mips64, building passed.

History:
=======
v4->v5:
  - In v4, Thomas reported that adding <asm-generic/io.h> including into
    mips always cause crash on his malta qemu. Finally, Jiaxun stood up to
    take over the patch 2/4 and make it work. This patchset collects
    Jiaxun's patch v5 and add Arnd's tag. Thanks to Jiaxun.
  - Meanwhile, the old patch 4/4 need be adjusted because Jiaxun has done
    some removal of duplicated codes in <asm/io.h>.
  - Add reviewers' tags from v4.
v3->v4:
  - Add patch 1 to adjust code in the only ioremap_uc() callsite so that
    later removing ioremap_uc() won't cause breakage.
  - Update log and document writing in patch 3.
  - Add followup patch 4 to clean up duplicated code in asm/io.h of MIPS.
v2->v3:
  - In patch 1, move those macro definition of functio near its function
    declaration according to Arnd's suggestion. And remove the unneeded
    change in asm/mmiowb.h introduced in old version.
  - In patch 2, clean up and rewrite the messy document related to
    ioremap_uc() in Documentation/driver-api/device-io.rst.
v1->v2:
  - Update log of patch 2, and document related to ioremap_uc()
    according to Geert's comment.
  - Add Geert's Acked-by.

Arnd Bergmann (1):
  video: fbdev: atyfb: only use ioremap_uc() on i386 and ia64

Baoquan He (2):
  arch/*/io.h: remove ioremap_uc in some architectures
  mips: io: remove duplicated codes

Jiaxun Yang (1):
  mips: add <asm-generic/io.h> including

 Documentation/driver-api/device-io.rst |   9 +-
 arch/alpha/include/asm/io.h            |   1 -
 arch/hexagon/include/asm/io.h          |   3 -
 arch/m68k/include/asm/kmap.h           |   1 -
 arch/mips/include/asm/io.h             | 123 +++++++++++++++----------
 arch/mips/include/asm/mmiowb.h         |   4 +-
 arch/mips/include/asm/smp-ops.h        |   2 -
 arch/mips/include/asm/smp.h            |   4 +-
 arch/mips/kernel/setup.c               |   1 +
 arch/mips/pci/pci-ip27.c               |   3 +
 arch/parisc/include/asm/io.h           |   2 -
 arch/powerpc/include/asm/io.h          |   1 -
 arch/sh/include/asm/io.h               |   2 -
 arch/sparc/include/asm/io_64.h         |   1 -
 drivers/video/fbdev/aty/atyfb_base.c   |   4 +
 15 files changed, 88 insertions(+), 73 deletions(-)

Comments

Jiaxun Yang Oct. 26, 2023, 12:36 p.m. UTC | #1
在2023年9月21日九月 下午12:04,Baoquan He写道:
> This patchset tries to remove ioremap_uc() in the current architectures
> except of x86 and ia64. They will use the default ioremap_uc version
> in <asm-generic/io.h> which returns NULL. Anyone who wants to add new
> invocation of ioremap_uc(), please consider using ioremap() instead or
> adding a new ARCH specific ioremap_uc(), or refer to the callsite
> in drivers/video/fbdev/aty/atyfb_base.c.
>
> This change won't cuase breakage to the current kernel because in the
> only ioremap_uc callsite, an adjustment is made to eliminate impact in
> patch 1 of this series.
>
> To get rid of all of them other than x86 and ia64, add asm-generic/io.h
> to asm/io.h of mips ARCH. With this adding, we can get rid of the
> ioremap_uc() in mips too. This is done in patch 2. And a followup patch
> 4 is added to remove duplicated code according to Arnd's suggestion.
>
> Test:
> =====
> Except of Jiaxun's efficient testing on patch 2/4, I also did cross compiling
> of this series on mips64, building passed.
>

For whole series:

Tested-by: Jiaxun Yang <jiaxun.yang@flygoat.com>

Hi Arnd and Thomas,

I've got some work pending based on this series, however I'm unclear about
which tree this series will go since both of you give acked-by.

Given that there are some tree-wide modifications, I guess it should go into
Arnd's asm-generic tree?

Thanks
Baoquan He Oct. 26, 2023, 11:18 p.m. UTC | #2
On 10/26/23 at 01:36pm, Jiaxun Yang wrote:
> 
> 
> 在2023年9月21日九月 下午12:04,Baoquan He写道:
> > This patchset tries to remove ioremap_uc() in the current architectures
> > except of x86 and ia64. They will use the default ioremap_uc version
> > in <asm-generic/io.h> which returns NULL. Anyone who wants to add new
> > invocation of ioremap_uc(), please consider using ioremap() instead or
> > adding a new ARCH specific ioremap_uc(), or refer to the callsite
> > in drivers/video/fbdev/aty/atyfb_base.c.
> >
> > This change won't cuase breakage to the current kernel because in the
> > only ioremap_uc callsite, an adjustment is made to eliminate impact in
> > patch 1 of this series.
> >
> > To get rid of all of them other than x86 and ia64, add asm-generic/io.h
> > to asm/io.h of mips ARCH. With this adding, we can get rid of the
> > ioremap_uc() in mips too. This is done in patch 2. And a followup patch
> > 4 is added to remove duplicated code according to Arnd's suggestion.
> >
> > Test:
> > =====
> > Except of Jiaxun's efficient testing on patch 2/4, I also did cross compiling
> > of this series on mips64, building passed.
> >
> 
> For whole series:
> 
> Tested-by: Jiaxun Yang <jiaxun.yang@flygoat.com>

Thanks for testing, Jiaxun.

> 
> Hi Arnd and Thomas,
> 
> I've got some work pending based on this series, however I'm unclear about
> which tree this series will go since both of you give acked-by.
> 
> Given that there are some tree-wide modifications, I guess it should go into
> Arnd's asm-generic tree?

Previously Andrew merged my below patchset. This patchset is solving the
left issue during reviewing below patchset and discussing. Maybe Andrew
can help pick this patches?

[PATCH v8 00/19] mm: ioremap: Convert architectures to take GENERIC_IOREMAP way
https://lore.kernel.org/all/20230706154520.11257-1-bhe@redhat.com/T/#u

Thanks
Baoquan