From 90ecc248e200fee448001248dde0ca540dd3ef64 Mon Sep 17 00:00:00 2001 From: Ralf Baechle Date: Thu, 1 Dec 1994 08:00:00 +0000 Subject: Import of Linux/MIPS 1.1.68 --- kernel/dma.c | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'kernel/dma.c') diff --git a/kernel/dma.c b/kernel/dma.c index ce80c2fa6..799439ed6 100644 --- a/kernel/dma.c +++ b/kernel/dma.c @@ -5,6 +5,7 @@ #include #include +#include #include @@ -62,10 +63,18 @@ static __inline__ unsigned int mutex_atomic_swap(volatile unsigned int * p, unsi * the swap may not be atomic. */ +#if 0 asm __volatile__ ("xchgl %2, %0\n" : /* outputs: semval */ "=r" (semval) : /* inputs: newval, p */ "0" (semval), "m" (*p) ); /* p is a var, containing an address */ +#else + /* + * RB: Try atomic exchange from include/asm/system.h + * This should be portable... + */ + atomic_exchange(p,semval) +#endif return semval; } /* mutex_atomic_swap */ -- cgit v1.2.3