[PATCH] s390: in_interrupt vs. in_atomic
The condition for no context in do_exception checks for hard and soft interrupts by using in_interrupt() but not for preemption. This is bad for the users of __copy_from/to_user_inatomic because the fault handler might call schedule although the preemption count is != 0. Use in_atomic() instead in_interrupt(). Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
c5c3a6d8fe
commit
595bf2aaca
|
@ -207,7 +207,7 @@ do_exception(struct pt_regs *regs, unsigned long error_code, int is_protection)
|
||||||
* we are not in an interrupt and that there is a
|
* we are not in an interrupt and that there is a
|
||||||
* user context.
|
* user context.
|
||||||
*/
|
*/
|
||||||
if (user_address == 0 || in_interrupt() || !mm)
|
if (user_address == 0 || in_atomic() || !mm)
|
||||||
goto no_context;
|
goto no_context;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Reference in New Issue