hc
2024-01-05 071106ecf68c401173c58808b1cf5f68cc50d390
kernel/arch/parisc/include/asm/cmpxchg.h
....@@ -14,22 +14,22 @@
1414 extern void __xchg_called_with_bad_pointer(void);
1515
1616 /* __xchg32/64 defined in arch/parisc/lib/bitops.c */
17
-extern unsigned long __xchg8(char, char *);
18
-extern unsigned long __xchg32(int, int *);
17
+extern unsigned long __xchg8(char, volatile char *);
18
+extern unsigned long __xchg32(int, volatile int *);
1919 #ifdef CONFIG_64BIT
20
-extern unsigned long __xchg64(unsigned long, unsigned long *);
20
+extern unsigned long __xchg64(unsigned long, volatile unsigned long *);
2121 #endif
2222
2323 /* optimizer better get rid of switch since size is a constant */
2424 static inline unsigned long
25
-__xchg(unsigned long x, __volatile__ void *ptr, int size)
25
+__xchg(unsigned long x, volatile void *ptr, int size)
2626 {
2727 switch (size) {
2828 #ifdef CONFIG_64BIT
29
- case 8: return __xchg64(x, (unsigned long *) ptr);
29
+ case 8: return __xchg64(x, (volatile unsigned long *) ptr);
3030 #endif
31
- case 4: return __xchg32((int) x, (int *) ptr);
32
- case 1: return __xchg8((char) x, (char *) ptr);
31
+ case 4: return __xchg32((int) x, (volatile int *) ptr);
32
+ case 1: return __xchg8((char) x, (volatile char *) ptr);
3333 }
3434 __xchg_called_with_bad_pointer();
3535 return x;