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
This commit is contained in:
Andrew Turner 2016-05-27 12:02:12 +00:00
parent c34e3d6862
commit 12aac6b55b

View File

@ -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)
/*