diff options
| author | David S. Miller <davem@davemloft.net> | 2010-05-10 08:19:10 -0400 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-05-12 18:03:05 -0400 |
| commit | 28a1bdd6c2e46a94d86929d5283b72808ee147e9 (patch) | |
| tree | f20a5625a4cc87cf59b1d351db09ce51f8c348d2 /lib/spinlock_debug.c | |
| parent | d59547af05037f84707a57c90cee3fdfecc8c4b7 (diff) | |
sparc64: Adjust __raw_local_irq_save() to cooperate in NMIs.
[ Upstream commits 0c25e9e6cbe7b233bb91d14d0e2c258bf8e6ec83 and
c011f80ba0912486fe51dd2b3f71d9b33a151188 ]
If we are in an NMI then doing a plain raw_local_irq_disable() will
write PIL_NORMAL_MAX into %pil, which is lower than PIL_NMI, and thus
we'll re-enable NMIs and recurse.
Doing a simple:
%pil = %pil | PIL_NORMAL_MAX
does what we want, if we're already at PIL_NMI (15) we leave it at
that setting, else we set it to PIL_NORMAL_MAX (14).
This should get the function tracer working on sparc64.
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'lib/spinlock_debug.c')
0 files changed, 0 insertions, 0 deletions
