Messages in this thread | | | Date | Wed, 3 May 2023 10:01:26 +0200 | From | Peter Zijlstra <> | Subject | Re: [GIT PULL] x86/mm for 6.4 |
| |
On Tue, May 02, 2023 at 01:14:33PM -0700, Linus Torvalds wrote: > On Tue, May 2, 2023 at 9:00 AM Linus Torvalds > <torvalds@linux-foundation.org> wrote: > > > > > I guess it also wouldn't matter as much either if we hid it in a helper > > > like the attached patch and I didn't have to read it twice. ;) > > > > Yeah, I think that's a good solution. > > Hmm. And as I was rebasing the patch to fix up my patch, I realized > that the current -git top-of-tree state is actually broken. > > That > > #define access_ok(addr, size) \ > ({ \ > WARN_ON_IN_IRQ(); \ > likely(__access_ok(untagged_addr(addr), size)); \ > }) > > is actually *wrong* in two ways. > > Now, in my original patch, I added a comment about how that > "WARN_ON_IN_IRQ()" is bogus and this shouldn't be x86-specific at all. > > I ended up going back in time to see why it was added, and I think it > was added because we used to access 'current' in access_ok(), due to > it using that user_addr_max() thing: > > likely(!__range_not_ok(addr, size, user_addr_max())); > > but that was all removed by the set_fs() removal by Christoph Hellwig.
So I had a poke around, trying to figure out where it came from, and yes. Commit ae31fe51a3cc ("perf/x86: Restore TASK_SIZE check on frame pointer") is the reason that WARN_ON_IN_IRQ() thing got added.
| |