mbox series

[0/5] mm: Pass pointers to page accessors

Message ID 20220630084124.691207-1-linus.walleij@linaro.org (mailing list archive)
Headers show
Series mm: Pass pointers to page accessors | expand

Message

Linus Walleij June 30, 2022, 8:41 a.m. UTC
In a recent change to the Arm architecture with the end goal
of removing highmem we need to convert virt_to_phys() and
virt_to_pfn() to static inline functions.

This will make them strongly typed.

However since virt_to_* is always implemented as macros they
have become polymorphic and accept both (void *) and
e.g. unsigned long as arguments.

Other functions such as virt_to_page() simply wrap
virt_to_pfn() and get affected indirectly.

To be able to proceed, patch mm to use (void *) as argument
to affected functions in all instances.

Linus Walleij (5):
  lib/test_free_pages.c: Pass a pointer to virt_to_page()
  mm/highmem: Pass a pointer to virt_to_page()
  mm: kfence: Pass a pointer to virt_to_page()
  mm: gup: Pass a pointer to virt_to_page()
  mm: nommu: Pass a pointer to virt_to_page()

 lib/test_free_pages.c | 2 +-
 mm/gup.c              | 2 +-
 mm/highmem.c          | 2 +-
 mm/kfence/core.c      | 4 ++--
 mm/nommu.c            | 2 +-
 5 files changed, 6 insertions(+), 6 deletions(-)

Comments

Andrew Morton July 1, 2022, 11 p.m. UTC | #1
On Thu, 30 Jun 2022 10:41:19 +0200 Linus Walleij <linus.walleij@linaro.org> wrote:

> In a recent change to the Arm architecture with the end goal
> of removing highmem we need to convert virt_to_phys() and
> virt_to_pfn() to static inline functions.
> 
> This will make them strongly typed.
> 
> However since virt_to_* is always implemented as macros they
> have become polymorphic and accept both (void *) and
> e.g. unsigned long as arguments.
> 
> Other functions such as virt_to_page() simply wrap
> virt_to_pfn() and get affected indirectly.
> 
> To be able to proceed, patch mm to use (void *) as argument
> to affected functions in all instances.

It would be nice if someone were to teach x86 and others to use static
inlines.  Get rid of those stupid macros and improve coverage for your
changes.
Linus Walleij July 3, 2022, 1:28 p.m. UTC | #2
On Sat, Jul 2, 2022 at 1:00 AM Andrew Morton <akpm@linux-foundation.org> wrote:

> It would be nice if someone were to teach x86 and others to use static
> inlines.  Get rid of those stupid macros and improve coverage for your
> changes.

I share your view on this.

I have patches for that, for virt_to_pfn() at least on all archs except
one.

Since it seems the MM maintainer likes the idea I will talk to Arnd
to have this merged and also possibly look at some more of these
macros.

Yours,
Linus Walleij