diff options
author | Frederic Weisbecker <[email protected]> | 2013-02-24 12:59:30 +0100 |
---|---|---|
committer | Frederic Weisbecker <[email protected]> | 2013-03-07 17:10:21 +0100 |
commit | b22366cd54c6fe05db426f20adb10f461c19ec06 (patch) | |
tree | 3eb42a6ae0c6b25c27d946e6ffa4787f82ac952f /drivers/message/fusion/lsi/mpi_raid.h | |
parent | 6c1e0256fad84a843d915414e4b5973b7443d48d (diff) |
context_tracking: Restore preempted context state after preempt_schedule_irq()
From the context tracking POV, preempt_schedule_irq() behaves pretty much
like an exception: It can be called anytime and schedule another task.
But currently it doesn't restore the context tracking state of the preempted
code on preempt_schedule_irq() return.
As a result, if preempt_schedule_irq() is called in the tiny frame between
user_enter() and the actual return to userspace, we resume userspace with
the wrong context tracking state.
Fix this by using exception_enter/exit() which are a perfect fit for this
kind of issue.
Signed-off-by: Frederic Weisbecker <[email protected]>
Cc: Li Zhong <[email protected]>
Cc: Kevin Hilman <[email protected]>
Cc: Mats Liljegren <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Ingo Molnar <[email protected]>
Cc: Steven Rostedt <[email protected]>
Cc: Namhyung Kim <[email protected]>
Cc: Andrew Morton <[email protected]>
Cc: Thomas Gleixner <[email protected]>
Cc: Paul E. McKenney <[email protected]>
Diffstat (limited to 'drivers/message/fusion/lsi/mpi_raid.h')
0 files changed, 0 insertions, 0 deletions