Patch "selftests/bpf: Fix a couple of broken test_btf cases" has been added to the 5.6-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    selftests/bpf: Fix a couple of broken test_btf cases

to the 5.6-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     selftests-bpf-fix-a-couple-of-broken-test_btf-cases.patch
and it can be found in the queue-5.6 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 8adf78856096dd44017b28ea9575d7bee4c2743a
Author: Stanislav Fomichev <sdf@xxxxxxxxxx>
Date:   Tue Apr 21 17:37:53 2020 -0700

    selftests/bpf: Fix a couple of broken test_btf cases
    
    commit e1cebd841b0aa1ceda771706d54a0501986a3c88 upstream.
    
    Commit 51c39bb1d5d1 ("bpf: Introduce function-by-function verification")
    introduced function linkage flag and changed the error message from
    "vlen != 0" to "Invalid func linkage" and broke some fake BPF programs.
    
    Adjust the test accordingly.
    
    AFACT, the programs don't really need any arguments and only look
    at BTF for maps, so let's drop the args altogether.
    
    Before:
    BTF raw test[103] (func (Non zero vlen)): do_test_raw:3703:FAIL expected
    err_str:vlen != 0
    magic: 0xeb9f
    version: 1
    flags: 0x0
    hdr_len: 24
    type_off: 0
    type_len: 72
    str_off: 72
    str_len: 10
    btf_total_size: 106
    [1] INT (anon) size=4 bits_offset=0 nr_bits=32 encoding=SIGNED
    [2] INT (anon) size=4 bits_offset=0 nr_bits=32 encoding=(none)
    [3] FUNC_PROTO (anon) return=0 args=(1 a, 2 b)
    [4] FUNC func type_id=3 Invalid func linkage
    
    BTF libbpf test[1] (test_btf_haskv.o): libbpf: load bpf program failed:
    Invalid argument
    libbpf: -- BEGIN DUMP LOG ---
    libbpf:
    Validating test_long_fname_2() func#1...
    Arg#0 type PTR in test_long_fname_2() is not supported yet.
    processed 0 insns (limit 1000000) max_states_per_insn 0 total_states 0
    peak_states 0 mark_read 0
    
    libbpf: -- END LOG --
    libbpf: failed to load program 'dummy_tracepoint'
    libbpf: failed to load object 'test_btf_haskv.o'
    do_test_file:4201:FAIL bpf_object__load: -4007
    BTF libbpf test[2] (test_btf_newkv.o): libbpf: load bpf program failed:
    Invalid argument
    libbpf: -- BEGIN DUMP LOG ---
    libbpf:
    Validating test_long_fname_2() func#1...
    Arg#0 type PTR in test_long_fname_2() is not supported yet.
    processed 0 insns (limit 1000000) max_states_per_insn 0 total_states 0
    peak_states 0 mark_read 0
    
    libbpf: -- END LOG --
    libbpf: failed to load program 'dummy_tracepoint'
    libbpf: failed to load object 'test_btf_newkv.o'
    do_test_file:4201:FAIL bpf_object__load: -4007
    BTF libbpf test[3] (test_btf_nokv.o): libbpf: load bpf program failed:
    Invalid argument
    libbpf: -- BEGIN DUMP LOG ---
    libbpf:
    Validating test_long_fname_2() func#1...
    Arg#0 type PTR in test_long_fname_2() is not supported yet.
    processed 0 insns (limit 1000000) max_states_per_insn 0 total_states 0
    peak_states 0 mark_read 0
    
    libbpf: -- END LOG --
    libbpf: failed to load program 'dummy_tracepoint'
    libbpf: failed to load object 'test_btf_nokv.o'
    do_test_file:4201:FAIL bpf_object__load: -4007
    
    Fixes: 51c39bb1d5d1 ("bpf: Introduce function-by-function verification")
    Signed-off-by: Stanislav Fomichev <sdf@xxxxxxxxxx>
    Signed-off-by: Alexei Starovoitov <ast@xxxxxxxxxx>
    Link: https://lore.kernel.org/bpf/20200422003753.124921-1-sdf@xxxxxxxxxx
    Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>

diff --git a/tools/testing/selftests/bpf/progs/test_btf_haskv.c b/tools/testing/selftests/bpf/progs/test_btf_haskv.c
index 88b0566da13d2..31538c9ed1939 100644
--- a/tools/testing/selftests/bpf/progs/test_btf_haskv.c
+++ b/tools/testing/selftests/bpf/progs/test_btf_haskv.c
@@ -20,20 +20,12 @@ struct bpf_map_def SEC("maps") btf_map = {
 
 BPF_ANNOTATE_KV_PAIR(btf_map, int, struct ipv_counts);
 
-struct dummy_tracepoint_args {
-	unsigned long long pad;
-	struct sock *sock;
-};
-
 __attribute__((noinline))
-int test_long_fname_2(struct dummy_tracepoint_args *arg)
+int test_long_fname_2(void)
 {
 	struct ipv_counts *counts;
 	int key = 0;
 
-	if (!arg->sock)
-		return 0;
-
 	counts = bpf_map_lookup_elem(&btf_map, &key);
 	if (!counts)
 		return 0;
@@ -44,15 +36,15 @@ int test_long_fname_2(struct dummy_tracepoint_args *arg)
 }
 
 __attribute__((noinline))
-int test_long_fname_1(struct dummy_tracepoint_args *arg)
+int test_long_fname_1(void)
 {
-	return test_long_fname_2(arg);
+	return test_long_fname_2();
 }
 
 SEC("dummy_tracepoint")
-int _dummy_tracepoint(struct dummy_tracepoint_args *arg)
+int _dummy_tracepoint(void *arg)
 {
-	return test_long_fname_1(arg);
+	return test_long_fname_1();
 }
 
 char _license[] SEC("license") = "GPL";
diff --git a/tools/testing/selftests/bpf/progs/test_btf_newkv.c b/tools/testing/selftests/bpf/progs/test_btf_newkv.c
index a924e53c8e9d8..6c5560162746b 100644
--- a/tools/testing/selftests/bpf/progs/test_btf_newkv.c
+++ b/tools/testing/selftests/bpf/progs/test_btf_newkv.c
@@ -28,20 +28,12 @@ struct {
 	__type(value, struct ipv_counts);
 } btf_map SEC(".maps");
 
-struct dummy_tracepoint_args {
-	unsigned long long pad;
-	struct sock *sock;
-};
-
 __attribute__((noinline))
-int test_long_fname_2(struct dummy_tracepoint_args *arg)
+int test_long_fname_2(void)
 {
 	struct ipv_counts *counts;
 	int key = 0;
 
-	if (!arg->sock)
-		return 0;
-
 	counts = bpf_map_lookup_elem(&btf_map, &key);
 	if (!counts)
 		return 0;
@@ -57,15 +49,15 @@ int test_long_fname_2(struct dummy_tracepoint_args *arg)
 }
 
 __attribute__((noinline))
-int test_long_fname_1(struct dummy_tracepoint_args *arg)
+int test_long_fname_1(void)
 {
-	return test_long_fname_2(arg);
+	return test_long_fname_2();
 }
 
 SEC("dummy_tracepoint")
-int _dummy_tracepoint(struct dummy_tracepoint_args *arg)
+int _dummy_tracepoint(void *arg)
 {
-	return test_long_fname_1(arg);
+	return test_long_fname_1();
 }
 
 char _license[] SEC("license") = "GPL";
diff --git a/tools/testing/selftests/bpf/progs/test_btf_nokv.c b/tools/testing/selftests/bpf/progs/test_btf_nokv.c
index 983aedd1c0725..506da7fd2da23 100644
--- a/tools/testing/selftests/bpf/progs/test_btf_nokv.c
+++ b/tools/testing/selftests/bpf/progs/test_btf_nokv.c
@@ -17,20 +17,12 @@ struct bpf_map_def SEC("maps") btf_map = {
 	.max_entries = 4,
 };
 
-struct dummy_tracepoint_args {
-	unsigned long long pad;
-	struct sock *sock;
-};
-
 __attribute__((noinline))
-int test_long_fname_2(struct dummy_tracepoint_args *arg)
+int test_long_fname_2(void)
 {
 	struct ipv_counts *counts;
 	int key = 0;
 
-	if (!arg->sock)
-		return 0;
-
 	counts = bpf_map_lookup_elem(&btf_map, &key);
 	if (!counts)
 		return 0;
@@ -41,15 +33,15 @@ int test_long_fname_2(struct dummy_tracepoint_args *arg)
 }
 
 __attribute__((noinline))
-int test_long_fname_1(struct dummy_tracepoint_args *arg)
+int test_long_fname_1(void)
 {
-	return test_long_fname_2(arg);
+	return test_long_fname_2();
 }
 
 SEC("dummy_tracepoint")
-int _dummy_tracepoint(struct dummy_tracepoint_args *arg)
+int _dummy_tracepoint(void *arg)
 {
-	return test_long_fname_1(arg);
+	return test_long_fname_1();
 }
 
 char _license[] SEC("license") = "GPL";
diff --git a/tools/testing/selftests/bpf/test_btf.c b/tools/testing/selftests/bpf/test_btf.c
index 8da77cda5f4a5..305fae8f80a98 100644
--- a/tools/testing/selftests/bpf/test_btf.c
+++ b/tools/testing/selftests/bpf/test_btf.c
@@ -2854,7 +2854,7 @@ static struct btf_raw_test raw_tests[] = {
 	.value_type_id = 1,
 	.max_entries = 4,
 	.btf_load_err = true,
-	.err_str = "vlen != 0",
+	.err_str = "Invalid func linkage",
 },
 
 {



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux