| @@ -23,7 +23,7 @@ static struct { · 22 unmodified lines |
| 23 | 23 | "bpf_spin_lock at off=" #off " must be held for bpf_list_head" }, \ |
| 24 | 24 | { #test "_missing_lock_pop_back", \ |
| 25 | 25 | "bpf_spin_lock at off=" #off " must be held for bpf_list_head" }, |
| 26 | | − TEST(kptr, 32) |
| 26 | + TEST(kptr, 40) |
| 27 | 27 | TEST(global, 16) |
| 28 | 28 | TEST(map, 0) |
| 29 | 29 | TEST(inner_map, 0) |
| @@ -31,7 +31,7 @@ static struct { · 1 unmodified line |
| 31 | 31 | #define TEST(test, op) \ |
| 32 | 32 | { #test "_kptr_incorrect_lock_" #op, \ |
| 33 | 33 | "held lock and object are not in the same allocation\n" \ |
| 34 | | − "bpf_spin_lock at off=32 must be held for bpf_list_head" }, \ |
| 34 | + "bpf_spin_lock at off=40 must be held for bpf_list_head" }, \ |
| 35 | 35 | { #test "_global_incorrect_lock_" #op, \ |
| 36 | 36 | "held lock and object are not in the same allocation\n" \ |
| 37 | 37 | "bpf_spin_lock at off=16 must be held for bpf_list_head" }, \ |
| @@ -84,23 +84,23 @@ static struct { · 46 unmodified lines |
| 84 | 84 | { "double_push_back", "arg#1 expected pointer to allocated object" }, |
| 85 | 85 | { "no_node_value_type", "bpf_list_node not found at offset=0" }, |
| 86 | 86 | { "incorrect_value_type", |
| 87 | | − "operation on bpf_list_head expects arg#1 bpf_list_node at offset=40 in struct foo, " |
| 87 | + "operation on bpf_list_head expects arg#1 bpf_list_node at offset=48 in struct foo, " |
| 88 | 88 | "but arg is at offset=0 in struct bar" }, |
| 89 | 89 | { "incorrect_node_var_off", "variable ptr_ access var_off=(0x0; 0xffffffff) disallowed" }, |
| 90 | | − { "incorrect_node_off1", "bpf_list_node not found at offset=41" }, |
| 91 | | − { "incorrect_node_off2", "arg#1 offset=0, but expected bpf_list_node at offset=40 in struct foo" }, |
| 90 | + { "incorrect_node_off1", "bpf_list_node not found at offset=49" }, |
| 91 | + { "incorrect_node_off2", "arg#1 offset=0, but expected bpf_list_node at offset=48 in struct foo" }, |
| 92 | 92 | { "no_head_type", "bpf_list_head not found at offset=0" }, |
| 93 | 93 | { "incorrect_head_var_off1", "R1 doesn't have constant offset" }, |
| 94 | 94 | { "incorrect_head_var_off2", "variable ptr_ access var_off=(0x0; 0xffffffff) disallowed" }, |
| 95 | | − { "incorrect_head_off1", "bpf_list_head not found at offset=17" }, |
| 95 | + { "incorrect_head_off1", "bpf_list_head not found at offset=25" }, |
| 96 | 96 | { "incorrect_head_off2", "bpf_list_head not found at offset=1" }, |
| 97 | 97 | { "pop_front_off", |
| 98 | | − "15: (bf) r1 = r6 ; R1_w=ptr_or_null_foo(id=4,ref_obj_id=4,off=40,imm=0) " |
| 99 | | − "R6_w=ptr_or_null_foo(id=4,ref_obj_id=4,off=40,imm=0) refs=2,4\n" |
| 98 | + "15: (bf) r1 = r6 ; R1_w=ptr_or_null_foo(id=4,ref_obj_id=4,off=48,imm=0) " |
| 99 | + "R6_w=ptr_or_null_foo(id=4,ref_obj_id=4,off=48,imm=0) refs=2,4\n" |
| 100 | 100 | "16: (85) call bpf_this_cpu_ptr#154\nR1 type=ptr_or_null_ expected=percpu_ptr_" }, |
| 101 | 101 | { "pop_back_off", |
| 102 | | − "15: (bf) r1 = r6 ; R1_w=ptr_or_null_foo(id=4,ref_obj_id=4,off=40,imm=0) " |
| 103 | | − "R6_w=ptr_or_null_foo(id=4,ref_obj_id=4,off=40,imm=0) refs=2,4\n" |
| 102 | + "15: (bf) r1 = r6 ; R1_w=ptr_or_null_foo(id=4,ref_obj_id=4,off=48,imm=0) " |
| 103 | + "R6_w=ptr_or_null_foo(id=4,ref_obj_id=4,off=48,imm=0) refs=2,4\n" |
| 104 | 104 | "16: (85) call bpf_this_cpu_ptr#154\nR1 type=ptr_or_null_ expected=percpu_ptr_" }, |
| 105 | 105 | }; |
| 106 | 106 | |
| @@ -257,7 +257,7 @@ static struct btf *init_btf(void) · 150 unmodified lines |
| 257 | 257 | hid = btf__add_struct(btf, "bpf_list_head", 16); |
| 258 | 258 | if (!ASSERT_EQ(hid, LIST_HEAD, "btf__add_struct bpf_list_head")) |
| 259 | 259 | goto end; |
| 260 | | − nid = btf__add_struct(btf, "bpf_list_node", 16); |
| 260 | + nid = btf__add_struct(btf, "bpf_list_node", 24); |
| 261 | 261 | if (!ASSERT_EQ(nid, LIST_NODE, "btf__add_struct bpf_list_node")) |
| 262 | 262 | goto end; |
| 263 | 263 | return btf; |
| @@ -276,7 +276,7 @@ static void list_and_rb_node_same_struct(bool refcount_field) · 12 unmodified lines |
| 276 | 276 | if (!ASSERT_OK_PTR(btf, "init_btf")) |
| 277 | 277 | return; |
| 278 | 278 | |
| 279 | | − bpf_rb_node_btf_id = btf__add_struct(btf, "bpf_rb_node", 24); |
| 279 | + bpf_rb_node_btf_id = btf__add_struct(btf, "bpf_rb_node", 32); |
| 280 | 280 | if (!ASSERT_GT(bpf_rb_node_btf_id, 0, "btf__add_struct bpf_rb_node")) |
| 281 | 281 | return; |
| 282 | 282 | |
| @@ -286,17 +286,17 @@ static void list_and_rb_node_same_struct(bool refcount_field) · 3 unmodified lines |
| 286 | 286 | return; |
| 287 | 287 | } |
| 288 | 288 | |
| 289 | | − id = btf__add_struct(btf, "bar", refcount_field ? 44 : 40); |
| 289 | + id = btf__add_struct(btf, "bar", refcount_field ? 60 : 56); |
| 290 | 290 | if (!ASSERT_GT(id, 0, "btf__add_struct bar")) |
| 291 | 291 | return; |
| 292 | 292 | err = btf__add_field(btf, "a", LIST_NODE, 0, 0); |
| 293 | 293 | if (!ASSERT_OK(err, "btf__add_field bar::a")) |
| 294 | 294 | return; |
| 295 | | − err = btf__add_field(btf, "c", bpf_rb_node_btf_id, 128, 0); |
| 295 | + err = btf__add_field(btf, "c", bpf_rb_node_btf_id, 192, 0); |
| 296 | 296 | if (!ASSERT_OK(err, "btf__add_field bar::c")) |
| 297 | 297 | return; |
| 298 | 298 | if (refcount_field) { |
| 299 | | − err = btf__add_field(btf, "ref", bpf_refcount_btf_id, 320, 0); |
| 299 | + err = btf__add_field(btf, "ref", bpf_refcount_btf_id, 448, 0); |
| 300 | 300 | if (!ASSERT_OK(err, "btf__add_field bar::ref")) |
| 301 | 301 | return; |
| 302 | 302 | } |
| @@ -527,7 +527,7 @@ static void test_btf(void) · 224 unmodified lines |
| 527 | 527 | btf = init_btf(); |
| 528 | 528 | if (!ASSERT_OK_PTR(btf, "init_btf")) |
| 529 | 529 | break; |
| 530 | | − id = btf__add_struct(btf, "foo", 36); |
| 530 | + id = btf__add_struct(btf, "foo", 44); |
| 531 | 531 | if (!ASSERT_EQ(id, 5, "btf__add_struct foo")) |
| 532 | 532 | break; |
| 533 | 533 | err = btf__add_field(btf, "a", LIST_HEAD, 0, 0); |
| @@ -536,7 +536,7 @@ static void test_btf(void) · 2 unmodified lines |
| 536 | 536 | err = btf__add_field(btf, "b", LIST_NODE, 128, 0); |
| 537 | 537 | if (!ASSERT_OK(err, "btf__add_field foo::b")) |
| 538 | 538 | break; |
| 539 | | − err = btf__add_field(btf, "c", SPIN_LOCK, 256, 0); |
| 539 | + err = btf__add_field(btf, "c", SPIN_LOCK, 320, 0); |
| 540 | 540 | if (!ASSERT_OK(err, "btf__add_field foo::c")) |
| 541 | 541 | break; |
| 542 | 542 | id = btf__add_decl_tag(btf, "contains:foo:b", 5, 0); |
| @@ -553,7 +553,7 @@ static void test_btf(void) · 10 unmodified lines |
| 553 | 553 | btf = init_btf(); |
| 554 | 554 | if (!ASSERT_OK_PTR(btf, "init_btf")) |
| 555 | 555 | break; |
| 556 | | − id = btf__add_struct(btf, "foo", 36); |
| 556 | + id = btf__add_struct(btf, "foo", 44); |
| 557 | 557 | if (!ASSERT_EQ(id, 5, "btf__add_struct foo")) |
| 558 | 558 | break; |
| 559 | 559 | err = btf__add_field(btf, "a", LIST_HEAD, 0, 0); |
| @@ -562,13 +562,13 @@ static void test_btf(void) · 2 unmodified lines |
| 562 | 562 | err = btf__add_field(btf, "b", LIST_NODE, 128, 0); |
| 563 | 563 | if (!ASSERT_OK(err, "btf__add_field foo::b")) |
| 564 | 564 | break; |
| 565 | | − err = btf__add_field(btf, "c", SPIN_LOCK, 256, 0); |
| 565 | + err = btf__add_field(btf, "c", SPIN_LOCK, 320, 0); |
| 566 | 566 | if (!ASSERT_OK(err, "btf__add_field foo::c")) |
| 567 | 567 | break; |
| 568 | 568 | id = btf__add_decl_tag(btf, "contains:bar:b", 5, 0); |
| 569 | 569 | if (!ASSERT_EQ(id, 6, "btf__add_decl_tag contains:bar:b")) |
| 570 | 570 | break; |
| 571 | | − id = btf__add_struct(btf, "bar", 36); |
| 571 | + id = btf__add_struct(btf, "bar", 44); |
| 572 | 572 | if (!ASSERT_EQ(id, 7, "btf__add_struct bar")) |
| 573 | 573 | break; |
| 574 | 574 | err = btf__add_field(btf, "a", LIST_HEAD, 0, 0); |
| @@ -577,7 +577,7 @@ static void test_btf(void) · 2 unmodified lines |
| 577 | 577 | err = btf__add_field(btf, "b", LIST_NODE, 128, 0); |
| 578 | 578 | if (!ASSERT_OK(err, "btf__add_field bar::b")) |
| 579 | 579 | break; |
| 580 | | − err = btf__add_field(btf, "c", SPIN_LOCK, 256, 0); |
| 580 | + err = btf__add_field(btf, "c", SPIN_LOCK, 320, 0); |
| 581 | 581 | if (!ASSERT_OK(err, "btf__add_field bar::c")) |
| 582 | 582 | break; |
| 583 | 583 | id = btf__add_decl_tag(btf, "contains:foo:b", 7, 0); |
| @@ -594,19 +594,19 @@ static void test_btf(void) · 10 unmodified lines |
| 594 | 594 | btf = init_btf(); |
| 595 | 595 | if (!ASSERT_OK_PTR(btf, "init_btf")) |
| 596 | 596 | break; |
| 597 | | − id = btf__add_struct(btf, "foo", 20); |
| 597 | + id = btf__add_struct(btf, "foo", 28); |
| 598 | 598 | if (!ASSERT_EQ(id, 5, "btf__add_struct foo")) |
| 599 | 599 | break; |
| 600 | 600 | err = btf__add_field(btf, "a", LIST_HEAD, 0, 0); |
| 601 | 601 | if (!ASSERT_OK(err, "btf__add_field foo::a")) |
| 602 | 602 | break; |
| 603 | | − err = btf__add_field(btf, "b", SPIN_LOCK, 128, 0); |
| 603 | + err = btf__add_field(btf, "b", SPIN_LOCK, 192, 0); |
| 604 | 604 | if (!ASSERT_OK(err, "btf__add_field foo::b")) |
| 605 | 605 | break; |
| 606 | 606 | id = btf__add_decl_tag(btf, "contains:bar:a", 5, 0); |
| 607 | 607 | if (!ASSERT_EQ(id, 6, "btf__add_decl_tag contains:bar:a")) |
| 608 | 608 | break; |
| 609 | | − id = btf__add_struct(btf, "bar", 16); |
| 609 | + id = btf__add_struct(btf, "bar", 24); |
| 610 | 610 | if (!ASSERT_EQ(id, 7, "btf__add_struct bar")) |
| 611 | 611 | break; |
| 612 | 612 | err = btf__add_field(btf, "a", LIST_NODE, 0, 0); |
| @@ -623,19 +623,19 @@ static void test_btf(void) · 10 unmodified lines |
| 623 | 623 | btf = init_btf(); |
| 624 | 624 | if (!ASSERT_OK_PTR(btf, "init_btf")) |
| 625 | 625 | break; |
| 626 | | − id = btf__add_struct(btf, "foo", 20); |
| 626 | + id = btf__add_struct(btf, "foo", 28); |
| 627 | 627 | if (!ASSERT_EQ(id, 5, "btf__add_struct foo")) |
| 628 | 628 | break; |
| 629 | 629 | err = btf__add_field(btf, "a", LIST_HEAD, 0, 0); |
| 630 | 630 | if (!ASSERT_OK(err, "btf__add_field foo::a")) |
| 631 | 631 | break; |
| 632 | | − err = btf__add_field(btf, "b", SPIN_LOCK, 128, 0); |
| 632 | + err = btf__add_field(btf, "b", SPIN_LOCK, 192, 0); |
| 633 | 633 | if (!ASSERT_OK(err, "btf__add_field foo::b")) |
| 634 | 634 | break; |
| 635 | 635 | id = btf__add_decl_tag(btf, "contains:bar:b", 5, 0); |
| 636 | 636 | if (!ASSERT_EQ(id, 6, "btf__add_decl_tag contains:bar:b")) |
| 637 | 637 | break; |
| 638 | | − id = btf__add_struct(btf, "bar", 36); |
| 638 | + id = btf__add_struct(btf, "bar", 44); |
| 639 | 639 | if (!ASSERT_EQ(id, 7, "btf__add_struct bar")) |
| 640 | 640 | break; |
| 641 | 641 | err = btf__add_field(btf, "a", LIST_HEAD, 0, 0); |
| @@ -644,13 +644,13 @@ static void test_btf(void) · 2 unmodified lines |
| 644 | 644 | err = btf__add_field(btf, "b", LIST_NODE, 128, 0); |
| 645 | 645 | if (!ASSERT_OK(err, "btf__add_field bar::b")) |
| 646 | 646 | break; |
| 647 | | − err = btf__add_field(btf, "c", SPIN_LOCK, 256, 0); |
| 647 | + err = btf__add_field(btf, "c", SPIN_LOCK, 320, 0); |
| 648 | 648 | if (!ASSERT_OK(err, "btf__add_field bar::c")) |
| 649 | 649 | break; |
| 650 | 650 | id = btf__add_decl_tag(btf, "contains:baz:a", 7, 0); |
| 651 | 651 | if (!ASSERT_EQ(id, 8, "btf__add_decl_tag contains:baz:a")) |
| 652 | 652 | break; |
| 653 | | − id = btf__add_struct(btf, "baz", 16); |
| 653 | + id = btf__add_struct(btf, "baz", 24); |
| 654 | 654 | if (!ASSERT_EQ(id, 9, "btf__add_struct baz")) |
| 655 | 655 | break; |
| 656 | 656 | err = btf__add_field(btf, "a", LIST_NODE, 0, 0); |
| @@ -667,7 +667,7 @@ static void test_btf(void) · 10 unmodified lines |
| 667 | 667 | btf = init_btf(); |
| 668 | 668 | if (!ASSERT_OK_PTR(btf, "init_btf")) |
| 669 | 669 | break; |
| 670 | | − id = btf__add_struct(btf, "foo", 36); |
| 670 | + id = btf__add_struct(btf, "foo", 44); |
| 671 | 671 | if (!ASSERT_EQ(id, 5, "btf__add_struct foo")) |
| 672 | 672 | break; |
| 673 | 673 | err = btf__add_field(btf, "a", LIST_HEAD, 0, 0); |
| @@ -676,13 +676,13 @@ static void test_btf(void) · 2 unmodified lines |
| 676 | 676 | err = btf__add_field(btf, "b", LIST_NODE, 128, 0); |
| 677 | 677 | if (!ASSERT_OK(err, "btf__add_field foo::b")) |
| 678 | 678 | break; |
| 679 | | − err = btf__add_field(btf, "c", SPIN_LOCK, 256, 0); |
| 679 | + err = btf__add_field(btf, "c", SPIN_LOCK, 320, 0); |
| 680 | 680 | if (!ASSERT_OK(err, "btf__add_field foo::c")) |
| 681 | 681 | break; |
| 682 | 682 | id = btf__add_decl_tag(btf, "contains:bar:b", 5, 0); |
| 683 | 683 | if (!ASSERT_EQ(id, 6, "btf__add_decl_tag contains:bar:b")) |
| 684 | 684 | break; |
| 685 | | − id = btf__add_struct(btf, "bar", 36); |
| 685 | + id = btf__add_struct(btf, "bar", 44); |
| 686 | 686 | if (!ASSERT_EQ(id, 7, "btf__add_struct bar")) |
| 687 | 687 | break; |
| 688 | 688 | err = btf__add_field(btf, "a", LIST_HEAD, 0, 0); |
| @@ -691,13 +691,13 @@ static void test_btf(void) · 2 unmodified lines |
| 691 | 691 | err = btf__add_field(btf, "b", LIST_NODE, 128, 0); |
| 692 | 692 | if (!ASSERT_OK(err, "btf__add_field bar:b")) |
| 693 | 693 | break; |
| 694 | | − err = btf__add_field(btf, "c", SPIN_LOCK, 256, 0); |
| 694 | + err = btf__add_field(btf, "c", SPIN_LOCK, 320, 0); |
| 695 | 695 | if (!ASSERT_OK(err, "btf__add_field bar:c")) |
| 696 | 696 | break; |
| 697 | 697 | id = btf__add_decl_tag(btf, "contains:baz:a", 7, 0); |
| 698 | 698 | if (!ASSERT_EQ(id, 8, "btf__add_decl_tag contains:baz:a")) |
| 699 | 699 | break; |
| 700 | | − id = btf__add_struct(btf, "baz", 16); |
| 700 | + id = btf__add_struct(btf, "baz", 24); |
| 701 | 701 | if (!ASSERT_EQ(id, 9, "btf__add_struct baz")) |
| 702 | 702 | break; |
| 703 | 703 | err = btf__add_field(btf, "a", LIST_NODE, 0, 0); |
| @@ -726,7 +726,7 @@ static void test_btf(void) · 22 unmodified lines |
| 726 | 726 | id = btf__add_decl_tag(btf, "contains:bar:b", 5, 0); |
| 727 | 727 | if (!ASSERT_EQ(id, 6, "btf__add_decl_tag contains:bar:b")) |
| 728 | 728 | break; |
| 729 | | − id = btf__add_struct(btf, "bar", 36); |
| 729 | + id = btf__add_struct(btf, "bar", 44); |
| 730 | 730 | if (!ASSERT_EQ(id, 7, "btf__add_struct bar")) |
| 731 | 731 | break; |
| 732 | 732 | err = btf__add_field(btf, "a", LIST_HEAD, 0, 0); |
| @@ -735,13 +735,13 @@ static void test_btf(void) · 2 unmodified lines |
| 735 | 735 | err = btf__add_field(btf, "b", LIST_NODE, 128, 0); |
| 736 | 736 | if (!ASSERT_OK(err, "btf__add_field bar::b")) |
| 737 | 737 | break; |
| 738 | | − err = btf__add_field(btf, "c", SPIN_LOCK, 256, 0); |
| 738 | + err = btf__add_field(btf, "c", SPIN_LOCK, 320, 0); |
| 739 | 739 | if (!ASSERT_OK(err, "btf__add_field bar::c")) |
| 740 | 740 | break; |
| 741 | 741 | id = btf__add_decl_tag(btf, "contains:baz:b", 7, 0); |
| 742 | 742 | if (!ASSERT_EQ(id, 8, "btf__add_decl_tag")) |
| 743 | 743 | break; |
| 744 | | − id = btf__add_struct(btf, "baz", 36); |
| 744 | + id = btf__add_struct(btf, "baz", 44); |
| 745 | 745 | if (!ASSERT_EQ(id, 9, "btf__add_struct baz")) |
| 746 | 746 | break; |
| 747 | 747 | err = btf__add_field(btf, "a", LIST_HEAD, 0, 0); |
| @@ -750,13 +750,13 @@ static void test_btf(void) · 2 unmodified lines |
| 750 | 750 | err = btf__add_field(btf, "b", LIST_NODE, 128, 0); |
| 751 | 751 | if (!ASSERT_OK(err, "btf__add_field bar::b")) |
| 752 | 752 | break; |
| 753 | | − err = btf__add_field(btf, "c", SPIN_LOCK, 256, 0); |
| 753 | + err = btf__add_field(btf, "c", SPIN_LOCK, 320, 0); |
| 754 | 754 | if (!ASSERT_OK(err, "btf__add_field bar::c")) |
| 755 | 755 | break; |
| 756 | 756 | id = btf__add_decl_tag(btf, "contains:bam:a", 9, 0); |
| 757 | 757 | if (!ASSERT_EQ(id, 10, "btf__add_decl_tag contains:bam:a")) |
| 758 | 758 | break; |
| 759 | | − id = btf__add_struct(btf, "bam", 16); |
| 759 | + id = btf__add_struct(btf, "bam", 24); |
| 760 | 760 | if (!ASSERT_EQ(id, 11, "btf__add_struct bam")) |
| 761 | 761 | break; |
| 762 | 762 | err = btf__add_field(btf, "a", LIST_NODE, 0, 0); |