[IA64] Don't set psr.ic and psr.i simultaneously

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>
This commit is contained in:
Tony Luck 2007-06-28 16:05:34 -07:00
parent 7dcca30a32
commit 83ce6ef840

View File

@ -40,7 +40,11 @@ GLOBAL_ENTRY(mca_handler_bhhook)
mov b6=loc1 mov b6=loc1
;; ;;
mov loc1=rp 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 ... br.call.sptk.many rp=b6 // does not return ...
;; ;;
mov ar.pfs=loc0 mov ar.pfs=loc0