selftests/bpf: Add __arch_s390x macro

Make it possible to limit certain tests to s390x, just like it's
already done for x86_64, arm64, and riscv64.

Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
Link: https://lore.kernel.org/r/20250821113339.292434-4-iii@linux.ibm.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
This commit is contained in:
Ilya Leoshkevich 2025-08-21 13:25:57 +02:00 committed by Alexei Starovoitov
parent b68dfcc12a
commit 1e4e6b9e26
2 changed files with 6 additions and 0 deletions

View File

@ -136,6 +136,7 @@
#define __arch_x86_64 __arch("X86_64") #define __arch_x86_64 __arch("X86_64")
#define __arch_arm64 __arch("ARM64") #define __arch_arm64 __arch("ARM64")
#define __arch_riscv64 __arch("RISCV64") #define __arch_riscv64 __arch("RISCV64")
#define __arch_s390x __arch("s390x")
#define __caps_unpriv(caps) __attribute__((btf_decl_tag("comment:test_caps_unpriv=" EXPAND_QUOTE(caps)))) #define __caps_unpriv(caps) __attribute__((btf_decl_tag("comment:test_caps_unpriv=" EXPAND_QUOTE(caps))))
#define __load_if_JITed() __attribute__((btf_decl_tag("comment:load_mode=jited"))) #define __load_if_JITed() __attribute__((btf_decl_tag("comment:load_mode=jited")))
#define __load_if_no_JITed() __attribute__((btf_decl_tag("comment:load_mode=no_jited"))) #define __load_if_no_JITed() __attribute__((btf_decl_tag("comment:load_mode=no_jited")))

View File

@ -374,6 +374,7 @@ enum arch {
ARCH_X86_64 = 0x2, ARCH_X86_64 = 0x2,
ARCH_ARM64 = 0x4, ARCH_ARM64 = 0x4,
ARCH_RISCV64 = 0x8, ARCH_RISCV64 = 0x8,
ARCH_S390X = 0x10,
}; };
static int get_current_arch(void) static int get_current_arch(void)
@ -384,6 +385,8 @@ static int get_current_arch(void)
return ARCH_ARM64; return ARCH_ARM64;
#elif defined(__riscv) && __riscv_xlen == 64 #elif defined(__riscv) && __riscv_xlen == 64
return ARCH_RISCV64; return ARCH_RISCV64;
#elif defined(__s390x__)
return ARCH_S390X;
#endif #endif
return ARCH_UNKNOWN; return ARCH_UNKNOWN;
} }
@ -565,6 +568,8 @@ static int parse_test_spec(struct test_loader *tester,
arch = ARCH_ARM64; arch = ARCH_ARM64;
} else if (strcmp(val, "RISCV64") == 0) { } else if (strcmp(val, "RISCV64") == 0) {
arch = ARCH_RISCV64; arch = ARCH_RISCV64;
} else if (strcmp(val, "s390x") == 0) {
arch = ARCH_S390X;
} else { } else {
PRINT_FAIL("bad arch spec: '%s'\n", val); PRINT_FAIL("bad arch spec: '%s'\n", val);
err = -EINVAL; err = -EINVAL;