Commit 26e8a014 authored by Ilya Leoshkevich's avatar Ilya Leoshkevich Committed by Alexei Starovoitov
Browse files

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: default avatarIlya Leoshkevich <iii@linux.ibm.com>
Link: https://lore.kernel.org/r/20230128000650.1516334-17-iii@linux.ibm.com


Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
parent 207612eb
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -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,
+7 −1
Original line number Diff line number Diff line
@@ -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) {