]> www.infradead.org Git - nvme.git/commitdiff
selftests/bpf: Fix verifier_private_stack test failure
authorYonghong Song <yonghong.song@linux.dev>
Mon, 31 Mar 2025 03:38:28 +0000 (20:38 -0700)
committerAlexei Starovoitov <ast@kernel.org>
Thu, 3 Apr 2025 04:55:44 +0000 (21:55 -0700)
Several verifier_private_stack tests failed with latest bpf-next.
For example, for 'Private stack, single prog' subtest, the
jitted code:
  func #0:
  0:      f3 0f 1e fa                             endbr64
  4:      0f 1f 44 00 00                          nopl    (%rax,%rax)
  9:      0f 1f 00                                nopl    (%rax)
  c:      55                                      pushq   %rbp
  d:      48 89 e5                                movq    %rsp, %rbp
  10:     f3 0f 1e fa                             endbr64
  14:     49 b9 58 74 8a 8f 7d 60 00 00           movabsq $0x607d8f8a7458, %r9
  1e:     65 4c 03 0c 25 28 c0 48 87              addq    %gs:-0x78b73fd8, %r9
  27:     bf 2a 00 00 00                          movl    $0x2a, %edi
  2c:     49 89 b9 00 ff ff ff                    movq    %rdi, -0x100(%r9)
  33:     31 c0                                   xorl    %eax, %eax
  35:     c9                                      leave
  36:     e9 20 5d 0f e1                          jmp     0xffffffffe10f5d5b

The insn 'addq %gs:-0x78b73fd8, %r9' does not match the expected
regex 'addq %gs:0x{{.*}}, %r9' and this caused test failure.

Fix it by changing '%gs:0x{{.*}}' to '%gs:{{.*}}' to accommodate the
possible negative offset. A few other subtests are fixed in a similar way.

Signed-off-by: Yonghong Song <yonghong.song@linux.dev>
Link: https://lore.kernel.org/r/20250331033828.365077-1-yonghong.song@linux.dev
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
tools/testing/selftests/bpf/progs/verifier_private_stack.c

index b1fbdf119553372a4d304409b5ff242706322bfb..fc91b414364e0c7fa72bef05e8abc11ecb3bda1d 100644 (file)
@@ -27,7 +27,7 @@ __description("Private stack, single prog")
 __success
 __arch_x86_64
 __jited("      movabsq $0x{{.*}}, %r9")
-__jited("      addq    %gs:0x{{.*}}, %r9")
+__jited("      addq    %gs:{{.*}}, %r9")
 __jited("      movl    $0x2a, %edi")
 __jited("      movq    %rdi, -0x100(%r9)")
 __naked void private_stack_single_prog(void)
@@ -74,7 +74,7 @@ __success
 __arch_x86_64
 /* private stack fp for the main prog */
 __jited("      movabsq $0x{{.*}}, %r9")
-__jited("      addq    %gs:0x{{.*}}, %r9")
+__jited("      addq    %gs:{{.*}}, %r9")
 __jited("      movl    $0x2a, %edi")
 __jited("      movq    %rdi, -0x200(%r9)")
 __jited("      pushq   %r9")
@@ -122,7 +122,7 @@ __jited("   pushq   %rbp")
 __jited("      movq    %rsp, %rbp")
 __jited("      endbr64")
 __jited("      movabsq $0x{{.*}}, %r9")
-__jited("      addq    %gs:0x{{.*}}, %r9")
+__jited("      addq    %gs:{{.*}}, %r9")
 __jited("      pushq   %r9")
 __jited("      callq")
 __jited("      popq    %r9")