On Mon, Aug 15, 2022 at 8:52 PM Andrii Nakryiko <andrii@xxxxxxxxxx> wrote: > > Fix few issues found when building and running test_progs in release > mode. > > First, potentially uninitialized idx variable in xskxceiver, > force-initialize to zero to satisfy compiler. > > Few instances of defining uprobe trigger functions break in release mode > unless marked as noinline, due to being static. Add noinline to make > sure everything works. > > Signed-off-by: Andrii Nakryiko <andrii@xxxxxxxxxx> > --- I can't say for the noinline change, I trust it works. The fix for uninitialized use looks good to me. Acked-by: Hao Luo <haoluo@xxxxxxxxxx> > tools/testing/selftests/bpf/prog_tests/attach_probe.c | 6 +++--- > tools/testing/selftests/bpf/prog_tests/bpf_cookie.c | 2 +- > tools/testing/selftests/bpf/prog_tests/task_pt_regs.c | 2 +- > tools/testing/selftests/bpf/xskxceiver.c | 2 +- > 4 files changed, 6 insertions(+), 6 deletions(-) > > diff --git a/tools/testing/selftests/bpf/prog_tests/attach_probe.c b/tools/testing/selftests/bpf/prog_tests/attach_probe.c > index 0b899d2d8ea7..9566d9d2f6ee 100644 > --- a/tools/testing/selftests/bpf/prog_tests/attach_probe.c > +++ b/tools/testing/selftests/bpf/prog_tests/attach_probe.c > @@ -6,19 +6,19 @@ > volatile unsigned short uprobe_ref_ctr __attribute__((unused)) __attribute((section(".probes"))); > > /* uprobe attach point */ > -static void trigger_func(void) > +static noinline void trigger_func(void) > { > asm volatile (""); > } > > /* attach point for byname uprobe */ > -static void trigger_func2(void) > +static noinline void trigger_func2(void) > { > asm volatile (""); > } > > /* attach point for byname sleepable uprobe */ > -static void trigger_func3(void) > +static noinline void trigger_func3(void) > { > asm volatile (""); > } > diff --git a/tools/testing/selftests/bpf/prog_tests/bpf_cookie.c b/tools/testing/selftests/bpf/prog_tests/bpf_cookie.c > index 2974b44f80fa..2be2d61954bc 100644 > --- a/tools/testing/selftests/bpf/prog_tests/bpf_cookie.c > +++ b/tools/testing/selftests/bpf/prog_tests/bpf_cookie.c > @@ -13,7 +13,7 @@ > #include "kprobe_multi.skel.h" > > /* uprobe attach point */ > -static void trigger_func(void) > +static noinline void trigger_func(void) > { > asm volatile (""); > } > diff --git a/tools/testing/selftests/bpf/prog_tests/task_pt_regs.c b/tools/testing/selftests/bpf/prog_tests/task_pt_regs.c > index 61935e7e056a..f000734a3d1f 100644 > --- a/tools/testing/selftests/bpf/prog_tests/task_pt_regs.c > +++ b/tools/testing/selftests/bpf/prog_tests/task_pt_regs.c > @@ -4,7 +4,7 @@ > #include "test_task_pt_regs.skel.h" > > /* uprobe attach point */ > -static void trigger_func(void) > +static noinline void trigger_func(void) > { > asm volatile (""); > } > diff --git a/tools/testing/selftests/bpf/xskxceiver.c b/tools/testing/selftests/bpf/xskxceiver.c > index 20b44ab32a06..14b4737b223c 100644 > --- a/tools/testing/selftests/bpf/xskxceiver.c > +++ b/tools/testing/selftests/bpf/xskxceiver.c > @@ -922,7 +922,7 @@ static int __send_pkts(struct ifobject *ifobject, u32 *pkt_nb, struct pollfd *fd > { > struct xsk_socket_info *xsk = ifobject->xsk; > bool use_poll = ifobject->use_poll; > - u32 i, idx, ret, valid_pkts = 0; > + u32 i, idx = 0, ret, valid_pkts = 0; > > while (xsk_ring_prod__reserve(&xsk->tx, BATCH_SIZE, &idx) < BATCH_SIZE) { > if (use_poll) { > -- > 2.30.2 >