Dave reported that on sparc test_progs generates buggy swapped eth->h_proto protocol comparisons: 10: (15) if r3 == 0xdd86 goto pc+9 R0=imm2,min_value=2,max_value=2 R1=pkt(id=0,off=0,r=14) R2=pkt_end R3=inv R4=pkt(id=0,off=14,r=14) R5=inv56 R10=fp This is due to the unconditional ... #define htons __builtin_bswap16 #define ntohs __builtin_bswap16 ... in test_progs that causes this. Make use of asm/byteorder.h and use __constant_htons() where possible and only perform the bswap16 when on little endian in non-constant case. Fixes: |
||
---|---|---|
.. | ||
.gitignore | ||
bpf_util.h | ||
config | ||
Makefile | ||
test_iptunnel_common.h | ||
test_kmod.sh | ||
test_l4lb.c | ||
test_lpm_map.c | ||
test_lru_map.c | ||
test_maps.c | ||
test_pkt_access.c | ||
test_progs.c | ||
test_tag.c | ||
test_verifier.c | ||
test_xdp.c |