[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAHk-=whzabmci2b7ras3RcMpimvzNAk4QHDcYf=irvwXnunS8w@mail.gmail.com>
Date: Wed, 22 Jan 2020 12:37:25 -0800
From: Linus Torvalds <torvalds@...ux-foundation.org>
To: Christophe Leroy <christophe.leroy@....fr>
Cc: Benjamin Herrenschmidt <benh@...nel.crashing.org>,
Paul Mackerras <paulus@...ba.org>,
Michael Ellerman <mpe@...erman.id.au>,
Alexander Viro <viro@...iv.linux.org.uk>,
Andrew Morton <akpm@...ux-foundation.org>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
linuxppc-dev <linuxppc-dev@...ts.ozlabs.org>,
linux-fsdevel <linux-fsdevel@...r.kernel.org>,
Linux-MM <linux-mm@...ck.org>
Subject: Re: [PATCH v2 1/6] fs/readdir: Fix filldir() and filldir64() use of user_access_begin()
[ Talking to myself ]
On Wed, Jan 22, 2020 at 12:00 PM Linus Torvalds
<torvalds@...ux-foundation.org> wrote:
>
> COMPLETELY UNTESTED! It compiles for me. The generated assembly looks
> ok from a quick look.
Some more testing shows that objtool is unhappy about how we do that
signal_pending(current) inside the user access region.
I didn't notice because my test builds were with sane kernel
configurations so that I could look at the generated code.
But with KASAN enabled, the signal check causes accesses that KASAN
wants to check, and I get
objtool: filldir()+0x395: call to __kasan_check_read() with UACCESS enabled
warnings.
So that patch of mine isn't acceptable for silly reasons, and the
signal check itself would need to be done outside of the user access
area.
That actually makes the whole "let's do the &prev->d_off setting
unconditionally" much more interesting.
So here's a slightly updated patch that does exactly that, and avoids
the objtool warning.
It actually generates better code than the last one too, because now
we don't duplicate the user_access_end() for the EINTR case.
So test this one instead, please.
Linus
View attachment "patch.diff" of type "text/x-patch" (5997 bytes)
Powered by blists - more mailing lists