• Tiejun Chen's avatar
    ppc64: fix missing to check all bits of _TIF_USER_WORK_MASK in preempt · c58ce2b1
    Tiejun Chen authored
    In entry_64.S version of ret_from_except_lite, you'll notice that
    in the !preempt case, after we've checked MSR_PR we test for any
    TIF flag in _TIF_USER_WORK_MASK to decide whether to go to do_work
    or not. However, in the preempt case, we do a convoluted trick to
    test SIGPENDING only if PR was set and always test NEED_RESCHED ...
    but we forget to test any other bit of _TIF_USER_WORK_MASK !!! So
    that means that with preempt, we completely fail to test for things
    like single step, syscall tracing, etc...
    
    This should be fixed as the following path:
    
     - Test PR. If not set, go to resume_kernel, else continue.
    
     - If go resume_kernel, to do that original do_work.
    
     - If else, then always test for _TIF_USER_WORK_MASK to decide to do
    that original user_work, else restore directly.
    Signed-off-by: default avatarTiejun Chen <tiejun.chen@windriver.com>
    Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
    c58ce2b1
Name
Last commit
Last update
Documentation Loading commit data...
arch Loading commit data...
block Loading commit data...
crypto Loading commit data...
drivers Loading commit data...
firmware Loading commit data...
fs Loading commit data...
include Loading commit data...
init Loading commit data...
ipc Loading commit data...
kernel Loading commit data...
lib Loading commit data...
mm Loading commit data...
net Loading commit data...
samples Loading commit data...
scripts Loading commit data...
security Loading commit data...
sound Loading commit data...
tools Loading commit data...
usr Loading commit data...
virt/kvm Loading commit data...
.gitignore Loading commit data...
.mailmap Loading commit data...
COPYING Loading commit data...
CREDITS Loading commit data...
Kbuild Loading commit data...
Kconfig Loading commit data...
MAINTAINERS Loading commit data...
Makefile Loading commit data...
README Loading commit data...
REPORTING-BUGS Loading commit data...