svn commit: r300850 - head/sys/cddl/dev/dtrace/aarch64

Andrew Turner andrew at FreeBSD.org
Fri May 27 12:02:13 UTC 2016


Author: andrew
Date: Fri May 27 12:02:12 2016
New Revision: 300850
URL: https://svnweb.freebsd.org/changeset/base/300850

Log:
  Fix dtrace_interrupt_disable and dtrace_interrupt_enable by having the
  former return the current status for the latter to use. Without this we
  could enable interrupts when they shouldn't be.
  
  It's still not quite right as it should only update the bits we care about,
  bit should be good enough until the correct fix can be tested.
  
  PR:		204270
  Obtained from:	ABT Systems Ltd
  Sponsored by:	The FreeBSD Foundation

Modified:
  head/sys/cddl/dev/dtrace/aarch64/dtrace_asm.S

Modified: head/sys/cddl/dev/dtrace/aarch64/dtrace_asm.S
==============================================================================
--- head/sys/cddl/dev/dtrace/aarch64/dtrace_asm.S	Fri May 27 11:50:26 2016	(r300849)
+++ head/sys/cddl/dev/dtrace/aarch64/dtrace_asm.S	Fri May 27 12:02:12 2016	(r300850)
@@ -55,6 +55,7 @@ END(dtrace_membar_consumer)
 dtrace_icookie_t dtrace_interrupt_disable(void)
 */
 ENTRY(dtrace_interrupt_disable)
+	mrs	x0, daif
 	msr	daifset, #2
 	RET
 END(dtrace_interrupt_disable)
@@ -63,7 +64,7 @@ END(dtrace_interrupt_disable)
 void dtrace_interrupt_enable(dtrace_icookie_t cookie)
 */
 ENTRY(dtrace_interrupt_enable)
-	msr	daifclr, #2
+	msr	daif, x0
 	RET
 END(dtrace_interrupt_enable)
 /*


More information about the svn-src-all mailing list