Messages in this thread | | | Subject | Re: [PATCH 5/6] objtool: Add UACCESS validation | From | Andrey Ryabinin <> | Date | Wed, 27 Feb 2019 17:17:58 +0300 |
| |
On 2/27/19 5:08 PM, Peter Zijlstra wrote: > On Mon, Feb 25, 2019 at 01:43:35PM +0100, Peter Zijlstra wrote: >> It is important that UACCESS regions are as small as possible; >> furthermore the UACCESS state is not scheduled, so doing anything that >> might directly call into the scheduler will cause random code to be >> ran with UACCESS enabled. >> >> Teach objtool too track UACCESS state and warn about any CALL made >> while UACCESS is enabled. This very much includes the __fentry__() >> tracing calls and __preempt_schedule() calls. >> >> Note that exceptions _do_ save/restore the UACCESS state, and therefore >> they can drive preemption. This also means that all exception handlers >> must have an otherwise dedundant UACCESS disable instruction; >> therefore ignore this warning for !STT_FUNC code (exception handlers >> are not normal functions). >> >> It also provides a UACCESS_SAFE() annotation which allows explicit >> annotation. This is meant to be used for future things like: >> unsafe_copy_{to,from}_user(). >> >> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> > > So KASAN is wildly unhappy.. > > I can't actually find any definitions of those functions, so I can't > very well mark the safe, even if we wanted to. >
They are macro-generated. Use 'git grep DEFINE_ASAN'
> --- > >>> arch/x86/kernel/signal.o: warning: objtool: restore_sigcontext()+0x59: call to __asan_store8_noabort() with UACCESS enabled
| |