forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-01-04 1543e317f1da31b75942316931e8f491a8920811
kernel/arch/microblaze/include/asm/cmpxchg.h
....@@ -2,42 +2,8 @@
22 #ifndef _ASM_MICROBLAZE_CMPXCHG_H
33 #define _ASM_MICROBLAZE_CMPXCHG_H
44
5
-#include <linux/irqflags.h>
6
-
7
-void __bad_xchg(volatile void *ptr, int size);
8
-
9
-static inline unsigned long __xchg(unsigned long x, volatile void *ptr,
10
- int size)
11
-{
12
- unsigned long ret;
13
- unsigned long flags;
14
-
15
- switch (size) {
16
- case 1:
17
- local_irq_save(flags);
18
- ret = *(volatile unsigned char *)ptr;
19
- *(volatile unsigned char *)ptr = x;
20
- local_irq_restore(flags);
21
- break;
22
-
23
- case 4:
24
- local_irq_save(flags);
25
- ret = *(volatile unsigned long *)ptr;
26
- *(volatile unsigned long *)ptr = x;
27
- local_irq_restore(flags);
28
- break;
29
- default:
30
- __bad_xchg(ptr, size), ret = 0;
31
- break;
32
- }
33
-
34
- return ret;
35
-}
36
-
37
-#define xchg(ptr, x) \
38
- ((__typeof__(*(ptr))) __xchg((unsigned long)(x), (ptr), sizeof(*(ptr))))
39
-
40
-#include <asm-generic/cmpxchg.h>
41
-#include <asm-generic/cmpxchg-local.h>
5
+#ifndef CONFIG_SMP
6
+# include <asm-generic/cmpxchg.h>
7
+#endif
428
439 #endif /* _ASM_MICROBLAZE_CMPXCHG_H */