Tiejun Chen c58ce2b1e3 ppc64: fix missing to check all bits of _TIF_USER_WORK_MASK in preempt
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: Tiejun Chen <tiejun.chen@windriver.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2012-06-29 14:35:35 +10:00
..
2012-06-04 17:47:34 -04:00
2012-06-01 12:58:52 -04:00
2012-06-02 10:38:19 -04:00
2012-06-01 12:58:52 -04:00
2012-06-01 12:58:52 -04:00
2012-06-01 12:58:52 -04:00
2012-06-05 14:10:23 +09:00
2012-06-01 12:58:52 -04:00
2012-06-24 11:03:52 -07:00
2012-06-01 12:58:52 -04:00
2012-06-01 12:58:52 -04:00