Hi all,
The following commits are also in Linus Torvalds' tree as different
commits (but the same patches):
b1e7601203a8 ("arm64: vdso: Pass (void *) to virt_to_page()")
This is commit
b0abde80620f ("arm64: vdso: Pass (void *) to virt_to_page()")
in Linus' tree.
--
Cheers,
Stephen Rothwell
On Thu, May 25, 2023 at 1:22 AM Stephen Rothwell <[email protected]> wrote:
> The following commits are also in Linus Torvalds' tree as different
> commits (but the same patches):
>
> b1e7601203a8 ("arm64: vdso: Pass (void *) to virt_to_page()")
>
> This is commit
>
> b0abde80620f ("arm64: vdso: Pass (void *) to virt_to_page()")
>
> in Linus' tree.
Aha Catalin ACKed it and Will picked it up, perhaps Arnd can drop it from
his tree, albeit it is not a disaster, I am surprised this was the
biggest fallout
we've seen of those patches.
Yours,
Linus Walleij
On Thu, May 25, 2023, at 15:41, Linus Walleij wrote:
> On Thu, May 25, 2023 at 1:22 AM Stephen Rothwell <[email protected]> wrote:
>
>> The following commits are also in Linus Torvalds' tree as different
>> commits (but the same patches):
>>
>> b1e7601203a8 ("arm64: vdso: Pass (void *) to virt_to_page()")
>>
>> This is commit
>>
>> b0abde80620f ("arm64: vdso: Pass (void *) to virt_to_page()")
>>
>> in Linus' tree.
>
> Aha Catalin ACKed it and Will picked it up, perhaps Arnd can drop it from
> his tree, albeit it is not a disaster, I am surprised this was the
> biggest fallout
> we've seen of those patches.
I can't easily drop it without undoing the merge from your branch.
Maybe you can just rebase your branch on top of -rc2 and send
a new pull request. That should automatically drop the duplicate
patch.
Arnd
On Thu, May 25, 2023 at 6:41 PM Arnd Bergmann <[email protected]> wrote:
> > Aha Catalin ACKed it and Will picked it up, perhaps Arnd can drop it from
> > his tree, albeit it is not a disaster, I am surprised this was the
> > biggest fallout
> > we've seen of those patches.
>
> I can't easily drop it without undoing the merge from your branch.
Ah yeah they we loose all the nice tag messages and such.
> Maybe you can just rebase your branch on top of -rc2 and send
> a new pull request. That should automatically drop the duplicate
> patch.
It was even -rc3 actually. But yeah, that was simple enough :)
I hope the netdev people don't randomly apply the xen/netback
patch, I told them not to.
Below is an v6.4-rc3-based pull:
The following changes since commit 44c026a73be8038f03dbdeef028b642880cf1511:
Linux 6.4-rc3 (2023-05-21 14:05:48 -0700)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-integrator.git
tags/virt-to-pfn-for-arch-v6.5-2
for you to fetch changes up to ef7d0f5d03b9e65c9daa8dfe8b405b10566055eb:
m68k/mm: Make pfn accessors static inlines (2023-05-29 11:27:08 +0200)
----------------------------------------------------------------
This is an attempt to harden the typing on virt_to_pfn()
and pfn_to_virt().
Making virt_to_pfn() a static inline taking a strongly typed
(const void *) makes the contract of a passing a pointer of that
type to the function explicit and exposes any misuse of the
macro virt_to_pfn() acting polymorphic and accepting many types
such as (void *), (unitptr_t) or (unsigned long) as arguments
without warnings.
For symmetry, we do the same with pfn_to_virt().
The problem with this inconsistent typing was pointed out by
Russell King:
https://lore.kernel.org/linux-arm-kernel/[email protected]/
And confirmed by Andrew Morton:
https://lore.kernel.org/linux-mm/[email protected]/
So the recognition of the problem is widespread.
These platforms have been chosen as initial conversion targets:
- ARM
- ARM64/Aarch64
- asm-generic (including for example x86)
- m68k
The idea is that if this goes in, it will block further misuse
of the function signatures due to the large compile coverage,
and then I can go in and fix the remaining architectures on a
one-by-one basis.
Some of the patches have been circulated before but were not
picked up by subsystem maintainers, so now the arch tree is
target for this series.
It has passed zeroday builds after a lot of iterations in my
personal tree, but there could be some randconfig outliers.
New added or deeply hidden problems appear all the time so
some minor fallout can be expected.
----------------------------------------------------------------
Linus Walleij (12):
fs/proc/kcore.c: Pass a pointer to virt_addr_valid()
m68k: Pass a pointer to virt_to_pfn() virt_to_page()
ARC: init: Pass a pointer to virt_to_pfn() in init
riscv: mm: init: Pass a pointer to virt_to_page()
cifs: Pass a pointer to virt_to_page()
cifs: Pass a pointer to virt_to_page() in cifsglob
netfs: Pass a pointer to virt_to_page()
xen/netback: Pass (void *) to virt_to_page()
asm-generic/page.h: Make pfn accessors static inlines
ARM: mm: Make virt_to_pfn() a static inline
arm64: memory: Make virt_to_pfn() a static inline
m68k/mm: Make pfn accessors static inlines
arch/arc/mm/init.c | 2 +-
arch/arm/common/sharpsl_param.c | 2 +-
arch/arm/include/asm/delay.h | 2 +-
arch/arm/include/asm/io.h | 2 +-
arch/arm/include/asm/memory.h | 17 ++++++++++++-----
arch/arm/include/asm/page.h | 4 ++--
arch/arm/include/asm/pgtable.h | 2 +-
arch/arm/include/asm/proc-fns.h | 2 --
arch/arm/include/asm/sparsemem.h | 2 +-
arch/arm/include/asm/uaccess-asm.h | 2 +-
arch/arm/include/asm/uaccess.h | 2 +-
arch/arm/kernel/asm-offsets.c | 2 +-
arch/arm/kernel/entry-armv.S | 2 +-
arch/arm/kernel/entry-common.S | 2 +-
arch/arm/kernel/entry-v7m.S | 2 +-
arch/arm/kernel/head-nommu.S | 3 +--
arch/arm/kernel/head.S | 2 +-
arch/arm/kernel/hibernate.c | 2 +-
arch/arm/kernel/suspend.c | 2 +-
arch/arm/kernel/tcm.c | 2 +-
arch/arm/kernel/vmlinux-xip.lds.S | 3 +--
arch/arm/kernel/vmlinux.lds.S | 3 +--
arch/arm/mach-berlin/platsmp.c | 2 +-
arch/arm/mach-keystone/keystone.c | 2 +-
arch/arm/mach-omap2/sleep33xx.S | 2 +-
arch/arm/mach-omap2/sleep43xx.S | 2 +-
arch/arm/mach-omap2/sleep44xx.S | 2 +-
arch/arm/mach-pxa/gumstix.c | 2 +-
arch/arm/mach-rockchip/sleep.S | 2 +-
arch/arm/mach-sa1100/pm.c | 2 +-
arch/arm/mach-shmobile/headsmp-scu.S | 2 +-
arch/arm/mach-shmobile/headsmp.S | 2 +-
arch/arm/mach-socfpga/headsmp.S | 2 +-
arch/arm/mach-spear/spear.h | 2 +-
arch/arm/mm/cache-fa.S | 1 -
arch/arm/mm/cache-v4wb.S | 1 -
arch/arm/mm/dma-mapping.c | 2 +-
arch/arm/mm/dump.c | 2 +-
arch/arm/mm/init.c | 2 +-
arch/arm/mm/kasan_init.c | 1 -
arch/arm/mm/mmu.c | 2 +-
arch/arm/mm/physaddr.c | 2 +-
arch/arm/mm/pmsa-v8.c | 2 +-
arch/arm/mm/proc-v7.S | 2 +-
arch/arm/mm/proc-v7m.S | 2 +-
arch/arm/mm/pv-fixup-asm.S | 2 +-
arch/arm64/include/asm/memory.h | 9 ++++++++-
arch/m68k/include/asm/mcf_pgtable.h | 3 +--
arch/m68k/include/asm/page_mm.h | 11 +++++++++--
arch/m68k/include/asm/page_no.h | 11 +++++++++--
arch/m68k/include/asm/sun3_pgtable.h | 4 ++--
arch/m68k/mm/mcfmmu.c | 3 ++-
arch/m68k/mm/motorola.c | 4 ++--
arch/m68k/mm/sun3mmu.c | 2 +-
arch/m68k/sun3/dvma.c | 2 +-
arch/m68k/sun3x/dvma.c | 2 +-
arch/riscv/mm/init.c | 4 ++--
drivers/memory/ti-emif-sram-pm.S | 2 +-
drivers/net/xen-netback/netback.c | 2 +-
fs/cifs/cifsglob.h | 2 +-
fs/cifs/smbdirect.c | 2 +-
fs/netfs/iterator.c | 2 +-
fs/proc/kcore.c | 2 +-
include/asm-generic/page.h | 12 ++++++++++--
64 files changed, 108 insertions(+), 80 deletions(-)
Yours,
Linus Walleij
On Mon, May 29, 2023, at 13:36, Linus Walleij wrote:
> On Thu, May 25, 2023 at 6:41 PM Arnd Bergmann <[email protected]> wrote:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-integrator.git
> tags/virt-to-pfn-for-arch-v6.5-2
>
> for you to fetch changes up to ef7d0f5d03b9e65c9daa8dfe8b405b10566055eb:
>
> m68k/mm: Make pfn accessors static inlines (2023-05-29 11:27:08 +0200)
>
> ----------------------------------------------------------------
> This is an attempt to harden the typing on virt_to_pfn()
> and pfn_to_virt().
Updated now, thanks.,
Arnd