From: Benjamin Romer Date: Tue, 5 Aug 2014 18:57:49 +0000 (-0400) Subject: staging: unisys: get rid of uiscmpxchg64 X-Git-Tag: v3.18-rc1~130^2~1400 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=746c28e1af51cc6e7c7c6f7bc7d502f6986713a2;p=karo-tx-linux.git staging: unisys: get rid of uiscmpxchg64 Remove the uiscmpxchg64 macro from uisqueue.h and uisqueue.c. Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/staging/unisys/include/uisqueue.h b/drivers/staging/unisys/include/uisqueue.h index a2abfa8c82fd..8983407592a9 100644 --- a/drivers/staging/unisys/include/uisqueue.h +++ b/drivers/staging/unisys/include/uisqueue.h @@ -423,19 +423,4 @@ struct guest_msgs { }; -#ifndef __xg -#define __xg(x) ((volatile long *)(x)) -#endif - -/* -* Below code is a copy of Linux kernel's cmpxchg function located at -* this place -* http://tcsxeon:8080/source/xref/00trunk-AppOS-linux/include/asm-x86/cmpxchg_64.h#84 -* Reason for creating our own version of cmpxchg along with -* UISLIB_LOCK_PREFIX is to make the operation atomic even for non SMP -* guests. -*/ - -#define uislibcmpxchg64(p, o, n, s) cmpxchg(p, o, n) - #endif /* __UISQUEUE_H__ */ diff --git a/drivers/staging/unisys/uislib/uisqueue.c b/drivers/staging/unisys/uislib/uisqueue.c index 84eafca5e45c..f52bca1d95b1 100644 --- a/drivers/staging/unisys/uislib/uisqueue.c +++ b/drivers/staging/unisys/uislib/uisqueue.c @@ -43,8 +43,7 @@ uisqueue_InterlockedOr(unsigned long long __iomem *Target, j = readq(Target); do { i = j; - j = uislibcmpxchg64((__force unsigned long long *)Target, - i, i | Set, sizeof(*(Target))); + j = cmpxchg((__force unsigned long long *)Target, i, i | Set); } while (i != j); @@ -62,8 +61,7 @@ uisqueue_InterlockedAnd(unsigned long long __iomem *Target, j = readq(Target); do { i = j; - j = uislibcmpxchg64((__force unsigned long long *)Target, - i, i & Set, sizeof(*(Target))); + j = cmpxchg((__force unsigned long long *)Target, i, i & Set); } while (i != j);