summaryrefslogtreecommitdiff
path: root/arch/parisc/lib/bitops.c
diff options
context:
space:
mode:
authorWolfram Sang <wsa@kernel.org>2020-07-31 15:54:27 +0200
committerWolfram Sang <wsa@kernel.org>2020-07-31 15:54:27 +0200
commit073d398dc4841f62488ac6060ffeb9dfce6e0a98 (patch)
tree2ae9d508d0cd27f02584b9befb063dda5cb11a0b /arch/parisc/lib/bitops.c
parentafca861bc6a3141c858d08279eb9afca76584fa6 (diff)
parent92ed301919932f777713b9172e525674157e983d (diff)
Merge tag 'v5.8-rc7' into i2c/for-5.9
Diffstat (limited to 'arch/parisc/lib/bitops.c')
-rw-r--r--arch/parisc/lib/bitops.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/arch/parisc/lib/bitops.c b/arch/parisc/lib/bitops.c
index 70ffbcf889b8..2e4d1f05a926 100644
--- a/arch/parisc/lib/bitops.c
+++ b/arch/parisc/lib/bitops.c
@@ -79,3 +79,15 @@ unsigned long __cmpxchg_u32(volatile unsigned int *ptr, unsigned int old, unsign
_atomic_spin_unlock_irqrestore(ptr, flags);
return (unsigned long)prev;
}
+
+u8 __cmpxchg_u8(volatile u8 *ptr, u8 old, u8 new)
+{
+ unsigned long flags;
+ u8 prev;
+
+ _atomic_spin_lock_irqsave(ptr, flags);
+ if ((prev = *ptr) == old)
+ *ptr = new;
+ _atomic_spin_unlock_irqrestore(ptr, flags);
+ return prev;
+}