diff options
Diffstat (limited to 'arch/parisc/kernel/syscall.S')
| -rw-r--r-- | arch/parisc/kernel/syscall.S | 12 | 
1 files changed, 8 insertions, 4 deletions
diff --git a/arch/parisc/kernel/syscall.S b/arch/parisc/kernel/syscall.S index 9505c317818d..a9bc90dc4ae7 100644 --- a/arch/parisc/kernel/syscall.S +++ b/arch/parisc/kernel/syscall.S @@ -640,7 +640,8 @@ cas_action:  	sub,<>	%r28, %r25, %r0  2:	stw	%r24, 0(%r26)  	/* Free lock */ -	stw,ma	%r20, 0(%sr2,%r20) +	sync +	stw	%r20, 0(%sr2,%r20)  #if ENABLE_LWS_DEBUG  	/* Clear thread register indicator */  	stw	%r0, 4(%sr2,%r20) @@ -654,7 +655,8 @@ cas_action:  3:		  	/* Error occurred on load or store */  	/* Free lock */ -	stw,ma	%r20, 0(%sr2,%r20) +	sync +	stw	%r20, 0(%sr2,%r20)  #if ENABLE_LWS_DEBUG  	stw	%r0, 4(%sr2,%r20)  #endif @@ -855,7 +857,8 @@ cas2_action:  cas2_end:  	/* Free lock */ -	stw,ma	%r20, 0(%sr2,%r20) +	sync +	stw	%r20, 0(%sr2,%r20)  	/* Enable interrupts */  	ssm	PSW_SM_I, %r0  	/* Return to userspace, set no error */ @@ -865,7 +868,8 @@ cas2_end:  22:  	/* Error occurred on load or store */  	/* Free lock */ -	stw,ma	%r20, 0(%sr2,%r20) +	sync +	stw	%r20, 0(%sr2,%r20)  	ssm	PSW_SM_I, %r0  	ldo	1(%r0),%r28  	b	lws_exit  | 
