selftests/bpf: fix test_cgroup_storage on s390
test_cgroup_storage fails on s390 with an assertion failure: packets are dropped when they shouldn't. The problem is that BPF_DW packet count is accessed as BPF_W with an offset of 0, which is not correct on big-endian machines. Since the point of this test is not to verify narrow loads/stores, simply use BPF_DW when working with packet counts. Fixes:68cfa3ac6b
("selftests/bpf: add a cgroup storage test") Fixes:919646d2a3
("selftests/bpf: extend the storage test to test per-cpu cgroup storage") Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
This commit is contained in:
parent
fb89c39455
commit
806ce6e211
@ -20,9 +20,9 @@ int main(int argc, char **argv)
|
|||||||
BPF_MOV64_IMM(BPF_REG_2, 0), /* flags, not used */
|
BPF_MOV64_IMM(BPF_REG_2, 0), /* flags, not used */
|
||||||
BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 0, 0,
|
BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 0, 0,
|
||||||
BPF_FUNC_get_local_storage),
|
BPF_FUNC_get_local_storage),
|
||||||
BPF_LDX_MEM(BPF_W, BPF_REG_3, BPF_REG_0, 0),
|
BPF_LDX_MEM(BPF_DW, BPF_REG_3, BPF_REG_0, 0),
|
||||||
BPF_ALU64_IMM(BPF_ADD, BPF_REG_3, 0x1),
|
BPF_ALU64_IMM(BPF_ADD, BPF_REG_3, 0x1),
|
||||||
BPF_STX_MEM(BPF_W, BPF_REG_0, BPF_REG_3, 0),
|
BPF_STX_MEM(BPF_DW, BPF_REG_0, BPF_REG_3, 0),
|
||||||
|
|
||||||
BPF_LD_MAP_FD(BPF_REG_1, 0), /* map fd */
|
BPF_LD_MAP_FD(BPF_REG_1, 0), /* map fd */
|
||||||
BPF_MOV64_IMM(BPF_REG_2, 0), /* flags, not used */
|
BPF_MOV64_IMM(BPF_REG_2, 0), /* flags, not used */
|
||||||
@ -30,7 +30,7 @@ int main(int argc, char **argv)
|
|||||||
BPF_FUNC_get_local_storage),
|
BPF_FUNC_get_local_storage),
|
||||||
BPF_MOV64_IMM(BPF_REG_1, 1),
|
BPF_MOV64_IMM(BPF_REG_1, 1),
|
||||||
BPF_STX_XADD(BPF_DW, BPF_REG_0, BPF_REG_1, 0),
|
BPF_STX_XADD(BPF_DW, BPF_REG_0, BPF_REG_1, 0),
|
||||||
BPF_LDX_MEM(BPF_W, BPF_REG_1, BPF_REG_0, 0),
|
BPF_LDX_MEM(BPF_DW, BPF_REG_1, BPF_REG_0, 0),
|
||||||
BPF_ALU64_IMM(BPF_AND, BPF_REG_1, 0x1),
|
BPF_ALU64_IMM(BPF_AND, BPF_REG_1, 0x1),
|
||||||
BPF_MOV64_REG(BPF_REG_0, BPF_REG_1),
|
BPF_MOV64_REG(BPF_REG_0, BPF_REG_1),
|
||||||
BPF_EXIT_INSN(),
|
BPF_EXIT_INSN(),
|
||||||
|
Loading…
Reference in New Issue
Block a user