Jelajahi Sumber

[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>
Tony Luck 18 tahun lalu
induk
melakukan
83ce6ef840
1 mengubah file dengan 5 tambahan dan 1 penghapusan
  1. 5 1
      arch/ia64/kernel/mca_drv_asm.S

+ 5 - 1
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