mirror of
https://github.com/torvalds/linux.git
synced 2026-06-02 11:33:28 +02:00
selftests/bpf: Fix endianness issue in __qspinlock declaration
Copy the big-endian field declarations from qspinlock_types.h, otherwise some properties won't hold on big-endian systems. For example, assigning lock->val = 1 should result in lock->locked == 1, which is not the case there. Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com> Link: https://lore.kernel.org/r/20250424165525.154403-4-iii@linux.ibm.com Signed-off-by: Alexei Starovoitov <ast@kernel.org>
This commit is contained in:
parent
0240e5a943
commit
be55219915
|
|
@ -32,6 +32,7 @@ extern unsigned long CONFIG_NR_CPUS __kconfig;
|
|||
struct __qspinlock {
|
||||
union {
|
||||
atomic_t val;
|
||||
#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
|
||||
struct {
|
||||
u8 locked;
|
||||
u8 pending;
|
||||
|
|
@ -40,6 +41,17 @@ struct __qspinlock {
|
|||
u16 locked_pending;
|
||||
u16 tail;
|
||||
};
|
||||
#else
|
||||
struct {
|
||||
u16 tail;
|
||||
u16 locked_pending;
|
||||
};
|
||||
struct {
|
||||
u8 reserved[2];
|
||||
u8 pending;
|
||||
u8 locked;
|
||||
};
|
||||
#endif
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user