staging: unisys: get rid of uiscmpxchg64

Remove the uiscmpxchg64 macro from uisqueue.h and uisqueue.c.

Signed-off-by: Benjamin Romer <benjamin.romer@unisys.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Benjamin Romer 2014-08-05 14:57:49 -04:00 committed by Greg Kroah-Hartman
parent 52d13a618a
commit 746c28e1af
2 changed files with 2 additions and 19 deletions

View file

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

View file

@ -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);