diff options
author | Michael Ellerman <michael@ellerman.id.au> | 2012-02-20 21:32:30 +0000 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2012-02-22 16:48:49 +1100 |
commit | 922b9f86a020258d3ea3bfed27251efaed7a03a3 (patch) | |
tree | 5cdb92aed142e9d96c0e38352cbc0d6cb2dd581f /drivers/cpuidle | |
parent | 07d2f1a54a78a648093f4f3a33aa86b03cf9e25f (diff) | |
download | linux-3.10-922b9f86a020258d3ea3bfed27251efaed7a03a3.tar.gz linux-3.10-922b9f86a020258d3ea3bfed27251efaed7a03a3.tar.bz2 linux-3.10-922b9f86a020258d3ea3bfed27251efaed7a03a3.zip |
powerpc: Fix program check handling when lockdep is enabled
In commit 54321242afe ("Disable interrupts early in Program Check"), we
switched from enabling to disabling interrupts in program_check_common.
Whereas ENABLE_INTS leaves r3 untouched, if lockdep is enabled DISABLE_INTS
calls into lockdep code and will clobber r3. That means we pass a bogus
struct pt_regs* into program_check_exception() and all hell breaks loose.
So load our regs pointer into r3 after we call DISABLE_INTS.
Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'drivers/cpuidle')
0 files changed, 0 insertions, 0 deletions