diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2012-05-01 00:24:46 +0200 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2012-06-01 19:01:51 +0200 |
commit | 44fbbb3dc687c9709a6f2236197316e5c79ab1eb (patch) | |
tree | d3c995b1cb7e3f9ac5af09b8d78f6c839a65f35a /drivers/watchdog/indydog.c | |
parent | blackfin: check __get_user() return value (diff) | |
download | linux-44fbbb3dc687c9709a6f2236197316e5c79ab1eb.tar.xz linux-44fbbb3dc687c9709a6f2236197316e5c79ab1eb.zip |
x86: get rid of calling do_notify_resume() when returning to kernel mode
If we end up calling do_notify_resume() with !user_mode(refs), it
does nothing (do_signal() explicitly bails out and we can't get there
with TIF_NOTIFY_RESUME in such situations). Then we jump to
resume_userspace_sig, which rechecks the same thing and bails out
to resume_kernel, thus breaking the loop.
It's easier and cheaper to check *before* calling do_notify_resume()
and bail out to resume_kernel immediately. And kill the check in
do_signal()...
Note that on amd64 we can't get there with !user_mode() at all - asm
glue takes care of that.
Acked-and-reviewed-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'drivers/watchdog/indydog.c')
0 files changed, 0 insertions, 0 deletions