[Bug report] hash_name() may cross page boundary and trigger sleep in RCU context
Al Viro
viro at zeniv.linux.org.uk
Sat Nov 29 00:54:15 PST 2025
On Fri, Nov 28, 2025 at 05:35:37PM -0800, Linus Torvalds wrote:
> On Fri, 28 Nov 2025 at 17:01, Zizhi Wo <wozizhi at huaweicloud.com> wrote:
> >
> > Thank you for your answer. In fact, this solution is similar to the one
> > provided by Al.
>
> Hmm. I'm not seeing the replies from Al for some reason. Maybe he didn't cc me.
<checks>
Sorry, I thought you've been somewhere in that Cc, should've verified that.
> That said, somebody should definitely double-check me - because I
> think arm also did the vdso trick at high addresses that i386 used to
> do, so there is the fake VDSO thing up there.
>
> But if you get a page fault on that, it's not going to be fixed up, so
> even if user space can access it, there's no point in looking that
> fake vm area up for page faults.
gate_vma is not inserted anywhere - it's special-cased in coredump_next_vma(),
proc_get_vma() and get_gate_page(); none of that can lead to insertion.
AFAICS its uses in mlock_fixup(), __mmap_complete() and should_skip_vam()
are pure paranoia - "if we somehow ended up running into gate_vma, let's
make sure we don't screw it over" and had always been that way.
So VMA lookup would get NULL.
More information about the linux-arm-kernel
mailing list