diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-05-29 16:07:39 -0700 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-05-29 16:07:39 -0700 | 
| commit | 78b170f45b1a0da2625aa33f85d46a78475b268c (patch) | |
| tree | b681d4ee8e7e6a77cc4ff08044b25323bce55d7e /arch/arm/lib/bitops.h | |
| parent | 5606b7f925b36f25a6646bb93a0cf74981de3d28 (diff) | |
| parent | a35197a8be891072b3654dc7a2285573150dedee (diff) | |
Merge master.kernel.org:/home/rmk/linux-2.6-arm
* master.kernel.org:/home/rmk/linux-2.6-arm:
  [ARM] update mach-types
  [ARM] Add cmpxchg support for ARMv6+ systems (v5)
  [ARM] barriers: improve xchg, bitops and atomic SMP barriers
  Gemini: Fix SRAM/ROM location after memory swap
  MAINTAINER: Add F: entries for Gemini and FA526
  [ARM] disable NX support for OABI-supporting kernels
  [ARM] add coherent DMA mask for mv643xx_eth
  [ARM] pxa/palm: fix PalmLD/T5/TX AC97 MFP
  [ARM] pxa: add parameter to clksrc_read() for pxa168/910
  [ARM] pxa: fix the incorrectly defined drive strength macros for pxa{168,910}
  [ARM] Orion: Remove explicit name for platform device resources
  [ARM] Kirkwood: Correct MPP for SATA activity/presence LEDs of QNAP TS-119/TS-219.
  [ARM] pxa/ezx: fix pin configuration for low power mode
  [ARM] pxa/spitz: provide spitz_ohci_exit() that unregisters USB_HOST GPIO
  [ARM] pxa: enable GPIO receivers after configuring pins
  [ARM] pxa: allow gpio_reset drive high during normal work
  [ARM] pxa: save/restore PGSR on suspend/resume.
Diffstat (limited to 'arch/arm/lib/bitops.h')
| -rw-r--r-- | arch/arm/lib/bitops.h | 2 | 
1 files changed, 2 insertions, 0 deletions
| diff --git a/arch/arm/lib/bitops.h b/arch/arm/lib/bitops.h index 2e787d40d59..c7f2627385e 100644 --- a/arch/arm/lib/bitops.h +++ b/arch/arm/lib/bitops.h @@ -18,12 +18,14 @@  	mov	r2, #1  	add	r1, r1, r0, lsr #3	@ Get byte offset  	mov	r3, r2, lsl r3		@ create mask +	smp_dmb  1:	ldrexb	r2, [r1]  	ands	r0, r2, r3		@ save old value of bit  	\instr	r2, r2, r3			@ toggle bit  	strexb	ip, r2, [r1]  	cmp	ip, #0  	bne	1b +	smp_dmb  	cmp	r0, #0  	movne	r0, #1  2:	mov	pc, lr | 
