atomic_common.h: Fix the volatile qualifier placement in atomic_load_ptr
This was broken in r357940 which introduced the __typeof use. We need the volatile qualifier to be on the pointee not the pointer otherwise it does nothing. This was found by mhorne in D26498, noticing there was a problem (a spin loop condition was hoisted for RISC-V boot code) but not the root cause of it. Reported by: mhorne Reviewed by: mhorne, mjg Approved by: mhorne, mjg Differential Revision: https://reviews.freebsd.org/D26500
This commit is contained in:
parent
3f53e0e196
commit
173c619434
@ -41,7 +41,7 @@
|
||||
#define atomic_load_short(p) (*(volatile u_short *)(p))
|
||||
#define atomic_load_int(p) (*(volatile u_int *)(p))
|
||||
#define atomic_load_long(p) (*(volatile u_long *)(p))
|
||||
#define atomic_load_ptr(p) (*(volatile __typeof(p))(p))
|
||||
#define atomic_load_ptr(p) (*(volatile __typeof(*p) *)(p))
|
||||
#define atomic_load_8(p) (*(volatile uint8_t *)(p))
|
||||
#define atomic_load_16(p) (*(volatile uint16_t *)(p))
|
||||
#define atomic_load_32(p) (*(volatile uint32_t *)(p))
|
||||
|
Loading…
Reference in New Issue
Block a user