On Sun, May 19, 2013 at 12:06:19PM -0400, Steven Rostedt wrote: > On Sun, 2013-05-19 at 16:34 +0300, Michael S. Tsirkin wrote: > > > Right but we need to keep it working on upstream as well. > > If I do preempt_enable under a spinlock upstream won't it > > try to sleep under spinlock? > > No it wont. A spinlock calls preempt_disable implicitly, and a > preempt_enable() will not schedule unless preempt_count is zero, which > it wont be under a spinlock. > > If it did, there would be lots of bugs all over the place because this > is done throughout the kernel (a preempt_enable() under a spinlock). > > In other words, don't ever use preempt_enable_no_resched(). > > -- Steve > OK I get it. So let me correct myself. The simple code that does something like this under a spinlock: > preempt_disable > pagefault_disable > error = copy_to_user > pagefault_enable > preempt_enable > is not doing anything wrong and should not get a warning, as long as error is handled correctly later. Right? -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>