hc
2024-11-01 2f529f9b558ca1c1bd74be7437a84e4711743404
kernel/include/asm-generic/cmpxchg.h
....@@ -32,10 +32,10 @@
3232 #ifdef __xchg_u8
3333 return __xchg_u8(x, ptr);
3434 #else
35
- local_irq_save(flags);
35
+ flags = hard_local_irq_save();
3636 ret = *(volatile u8 *)ptr;
3737 *(volatile u8 *)ptr = x;
38
- local_irq_restore(flags);
38
+ hard_local_irq_restore(flags);
3939 return ret;
4040 #endif /* __xchg_u8 */
4141
....@@ -43,10 +43,10 @@
4343 #ifdef __xchg_u16
4444 return __xchg_u16(x, ptr);
4545 #else
46
- local_irq_save(flags);
46
+ flags = hard_local_irq_save();
4747 ret = *(volatile u16 *)ptr;
4848 *(volatile u16 *)ptr = x;
49
- local_irq_restore(flags);
49
+ hard_local_irq_restore(flags);
5050 return ret;
5151 #endif /* __xchg_u16 */
5252
....@@ -54,10 +54,10 @@
5454 #ifdef __xchg_u32
5555 return __xchg_u32(x, ptr);
5656 #else
57
- local_irq_save(flags);
57
+ flags = hard_local_irq_save();
5858 ret = *(volatile u32 *)ptr;
5959 *(volatile u32 *)ptr = x;
60
- local_irq_restore(flags);
60
+ hard_local_irq_restore(flags);
6161 return ret;
6262 #endif /* __xchg_u32 */
6363
....@@ -66,10 +66,10 @@
6666 #ifdef __xchg_u64
6767 return __xchg_u64(x, ptr);
6868 #else
69
- local_irq_save(flags);
69
+ flags = hard_local_irq_save();
7070 ret = *(volatile u64 *)ptr;
7171 *(volatile u64 *)ptr = x;
72
- local_irq_restore(flags);
72
+ hard_local_irq_restore(flags);
7373 return ret;
7474 #endif /* __xchg_u64 */
7575 #endif /* CONFIG_64BIT */