mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-28 21:33:52 +00:00
selftests/bpf: Fix test_xdp_adjust_tail_grow2 on s390x
s390x cache line size is 256 bytes, so skb_shared_info must be aligned on a much larger boundary than for x86. Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com> Link: https://lore.kernel.org/r/20230128000650.1516334-17-iii@linux.ibm.com Signed-off-by: Alexei Starovoitov <ast@kernel.org>
This commit is contained in:
parent
207612eb12
commit
26e8a01494
2 changed files with 13 additions and 2 deletions
|
@ -76,10 +76,15 @@ static void test_xdp_adjust_tail_grow2(void)
|
|||
{
|
||||
const char *file = "./test_xdp_adjust_tail_grow.bpf.o";
|
||||
char buf[4096]; /* avoid segfault: large buf to hold grow results */
|
||||
int tailroom = 320; /* SKB_DATA_ALIGN(sizeof(struct skb_shared_info))*/;
|
||||
struct bpf_object *obj;
|
||||
int err, cnt, i;
|
||||
int max_grow, prog_fd;
|
||||
/* SKB_DATA_ALIGN(sizeof(struct skb_shared_info)) */
|
||||
#if defined(__s390x__)
|
||||
int tailroom = 512;
|
||||
#else
|
||||
int tailroom = 320;
|
||||
#endif
|
||||
|
||||
LIBBPF_OPTS(bpf_test_run_opts, tattr,
|
||||
.repeat = 1,
|
||||
|
|
|
@ -9,6 +9,12 @@ int _xdp_adjust_tail_grow(struct xdp_md *xdp)
|
|||
void *data = (void *)(long)xdp->data;
|
||||
int data_len = bpf_xdp_get_buff_len(xdp);
|
||||
int offset = 0;
|
||||
/* SKB_DATA_ALIGN(sizeof(struct skb_shared_info)) */
|
||||
#if defined(__TARGET_ARCH_s390)
|
||||
int tailroom = 512;
|
||||
#else
|
||||
int tailroom = 320;
|
||||
#endif
|
||||
|
||||
/* Data length determine test case */
|
||||
|
||||
|
@ -20,7 +26,7 @@ int _xdp_adjust_tail_grow(struct xdp_md *xdp)
|
|||
offset = 128;
|
||||
} else if (data_len == 128) {
|
||||
/* Max tail grow 3520 */
|
||||
offset = 4096 - 256 - 320 - data_len;
|
||||
offset = 4096 - 256 - tailroom - data_len;
|
||||
} else if (data_len == 9000) {
|
||||
offset = 10;
|
||||
} else if (data_len == 9001) {
|
||||
|
|
Loading…
Reference in a new issue