projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
7dcca30
)
[IA64] Don't set psr.ic and psr.i simultaneously
author
Tony Luck
<tony.luck@intel.com>
Thu, 28 Jun 2007 23:05:34 +0000
(16:05 -0700)
committer
Tony Luck
<tony.luck@intel.com>
Mon, 9 Jul 2007 17:30:28 +0000
(10:30 -0700)
It's not a good idea to use "ssm psr.ic | psr.i" to simultaneously
enable interrupts and interrupt state collection, the two bits can
take effect asynchronously, so it is possible for an interrupt to
be serviced while psr.ic is still zero.
Signed-off-by: Tony Luck <tony.luck@intel.com>
arch/ia64/kernel/mca_drv_asm.S
patch
|
blob
|
history
diff --git
a/arch/ia64/kernel/mca_drv_asm.S
b/arch/ia64/kernel/mca_drv_asm.S
index f2d4900751ba9375dc8a7afa5cec7c1f2573f5d4..3bccb06c8d216cc1439c0f0081e6bacce2668035 100644
(file)
--- a/
arch/ia64/kernel/mca_drv_asm.S
+++ b/
arch/ia64/kernel/mca_drv_asm.S
@@
-40,7
+40,11
@@
GLOBAL_ENTRY(mca_handler_bhhook)
mov b6=loc1
;;
mov loc1=rp
- ssm psr.i | psr.ic
+ ssm psr.ic
+ ;;
+ srlz.i
+ ;;
+ ssm psr.i
br.call.sptk.many rp=b6 // does not return ...
;;
mov ar.pfs=loc0