* Re: [PATCH 1/8] powerpc/uaccess: Add unsafe_copy_from_user [not found] ` <20201015150159.28933-2-cmr@codefail.de> @ 2020-10-16 6:54 ` Christoph Hellwig 2020-10-16 13:18 ` Christophe Leroy 0 siblings, 1 reply; 5+ messages in thread From: Christoph Hellwig @ 2020-10-16 6:54 UTC (permalink / raw) To: Christopher M. Riedl; +Cc: linuxppc-dev, linux-kernel, viro On Thu, Oct 15, 2020 at 10:01:52AM -0500, Christopher M. Riedl wrote: > Implement raw_copy_from_user_allowed() which assumes that userspace read > access is open. Use this new function to implement raw_copy_from_user(). > Finally, wrap the new function to follow the usual "unsafe_" convention > of taking a label argument. The new raw_copy_from_user_allowed() calls > __copy_tofrom_user() internally, but this is still safe to call in user > access blocks formed with user_*_access_begin()/user_*_access_end() > since asm functions are not instrumented for tracing. Please also add a fallback unsafe_copy_from_user to linux/uaccess.h so this can be used as a generic API. ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 1/8] powerpc/uaccess: Add unsafe_copy_from_user 2020-10-16 6:54 ` [PATCH 1/8] powerpc/uaccess: Add unsafe_copy_from_user Christoph Hellwig @ 2020-10-16 13:18 ` Christophe Leroy 0 siblings, 0 replies; 5+ messages in thread From: Christophe Leroy @ 2020-10-16 13:18 UTC (permalink / raw) To: Christoph Hellwig, Christopher M. Riedl; +Cc: linuxppc-dev, linux-kernel, viro Le 16/10/2020 à 08:54, Christoph Hellwig a écrit : > On Thu, Oct 15, 2020 at 10:01:52AM -0500, Christopher M. Riedl wrote: >> Implement raw_copy_from_user_allowed() which assumes that userspace read >> access is open. Use this new function to implement raw_copy_from_user(). >> Finally, wrap the new function to follow the usual "unsafe_" convention >> of taking a label argument. The new raw_copy_from_user_allowed() calls >> __copy_tofrom_user() internally, but this is still safe to call in user >> access blocks formed with user_*_access_begin()/user_*_access_end() >> since asm functions are not instrumented for tracing. > > Please also add a fallback unsafe_copy_from_user to linux/uaccess.h > so this can be used as a generic API. > I guess this can be done in a separate patch independant of that series ? Christophe ^ permalink raw reply [flat|nested] 5+ messages in thread
[parent not found: <20201015150159.28933-4-cmr@codefail.de>]
* Re: [PATCH 3/8] powerpc: Mark functions called inside uaccess blocks w/ 'notrace' [not found] ` <20201015150159.28933-4-cmr@codefail.de> @ 2020-10-16 6:56 ` Christoph Hellwig 2020-10-16 9:41 ` Peter Zijlstra 0 siblings, 1 reply; 5+ messages in thread From: Christoph Hellwig @ 2020-10-16 6:56 UTC (permalink / raw) To: Christopher M. Riedl; +Cc: linuxppc-dev, linux-kernel, peterz On Thu, Oct 15, 2020 at 10:01:54AM -0500, Christopher M. Riedl wrote: > Functions called between user_*_access_begin() and user_*_access_end() > should be either inlined or marked 'notrace' to prevent leaving > userspace access exposed. Mark any such functions relevant to signal > handling so that subsequent patches can call them inside uaccess blocks. I don't think running this much code with uaccess enabled is a good idea. Please refactor the code to reduce the criticial sections with uaccess enabled. Btw, does powerpc already have the objtool validation that we don't accidentally jump out of unsafe uaccess critical sections? ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 3/8] powerpc: Mark functions called inside uaccess blocks w/ 'notrace' 2020-10-16 6:56 ` [PATCH 3/8] powerpc: Mark functions called inside uaccess blocks w/ 'notrace' Christoph Hellwig @ 2020-10-16 9:41 ` Peter Zijlstra 2020-10-20 7:34 ` Michael Ellerman 0 siblings, 1 reply; 5+ messages in thread From: Peter Zijlstra @ 2020-10-16 9:41 UTC (permalink / raw) To: Christoph Hellwig; +Cc: Christopher M. Riedl, linuxppc-dev, linux-kernel On Fri, Oct 16, 2020 at 07:56:16AM +0100, Christoph Hellwig wrote: > On Thu, Oct 15, 2020 at 10:01:54AM -0500, Christopher M. Riedl wrote: > > Functions called between user_*_access_begin() and user_*_access_end() > > should be either inlined or marked 'notrace' to prevent leaving > > userspace access exposed. Mark any such functions relevant to signal > > handling so that subsequent patches can call them inside uaccess blocks. > > I don't think running this much code with uaccess enabled is a good > idea. Please refactor the code to reduce the criticial sections with > uaccess enabled. > > Btw, does powerpc already have the objtool validation that we don't > accidentally jump out of unsafe uaccess critical sections? It does not, there was some effort on that a while ago, but I suspect they're waiting for the ARM64 effort to land and build on that. ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 3/8] powerpc: Mark functions called inside uaccess blocks w/ 'notrace' 2020-10-16 9:41 ` Peter Zijlstra @ 2020-10-20 7:34 ` Michael Ellerman 0 siblings, 0 replies; 5+ messages in thread From: Michael Ellerman @ 2020-10-20 7:34 UTC (permalink / raw) To: Peter Zijlstra, Christoph Hellwig Cc: linuxppc-dev, linux-kernel, Christopher M. Riedl Peter Zijlstra <peterz@infradead.org> writes: > On Fri, Oct 16, 2020 at 07:56:16AM +0100, Christoph Hellwig wrote: >> On Thu, Oct 15, 2020 at 10:01:54AM -0500, Christopher M. Riedl wrote: >> > Functions called between user_*_access_begin() and user_*_access_end() >> > should be either inlined or marked 'notrace' to prevent leaving >> > userspace access exposed. Mark any such functions relevant to signal >> > handling so that subsequent patches can call them inside uaccess blocks. >> >> I don't think running this much code with uaccess enabled is a good >> idea. Please refactor the code to reduce the criticial sections with >> uaccess enabled. >> >> Btw, does powerpc already have the objtool validation that we don't >> accidentally jump out of unsafe uaccess critical sections? > > It does not, there was some effort on that a while ago, but I suspect > they're waiting for the ARM64 effort to land and build on that. Right, we don't have objtool support. We would definitely like objtool support at least for this uaccess checking, I'm sure we have some escapes. There was someone working on it in their own-time but last I heard that was still WIP. I didn't realise the ARM64 support was still not merged, so yeah having that land first would probably simplify things, but we still need someone who has time to work on it. cheers ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2020-10-20 7:34 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <20201015150159.28933-1-cmr@codefail.de>
[not found] ` <20201015150159.28933-2-cmr@codefail.de>
2020-10-16 6:54 ` [PATCH 1/8] powerpc/uaccess: Add unsafe_copy_from_user Christoph Hellwig
2020-10-16 13:18 ` Christophe Leroy
[not found] ` <20201015150159.28933-4-cmr@codefail.de>
2020-10-16 6:56 ` [PATCH 3/8] powerpc: Mark functions called inside uaccess blocks w/ 'notrace' Christoph Hellwig
2020-10-16 9:41 ` Peter Zijlstra
2020-10-20 7:34 ` Michael Ellerman
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox
Powered by JetHome