Commit df78da27 authored by Andrii Nakryiko's avatar Andrii Nakryiko Committed by Daniel Borkmann

selftests/bpf: Few fixes for selftests/bpf built in release mode

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: default avatarAndrii Nakryiko <andrii@kernel.org>
Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
Acked-by: default avatarHao Luo <haoluo@google.com>
Link: https://lore.kernel.org/bpf/20220816001929.369487-5-andrii@kernel.org
parent abf84b64
...@@ -6,19 +6,19 @@ ...@@ -6,19 +6,19 @@
volatile unsigned short uprobe_ref_ctr __attribute__((unused)) __attribute((section(".probes"))); volatile unsigned short uprobe_ref_ctr __attribute__((unused)) __attribute((section(".probes")));
/* uprobe attach point */ /* uprobe attach point */
static void trigger_func(void) static noinline void trigger_func(void)
{ {
asm volatile (""); asm volatile ("");
} }
/* attach point for byname uprobe */ /* attach point for byname uprobe */
static void trigger_func2(void) static noinline void trigger_func2(void)
{ {
asm volatile (""); asm volatile ("");
} }
/* attach point for byname sleepable uprobe */ /* attach point for byname sleepable uprobe */
static void trigger_func3(void) static noinline void trigger_func3(void)
{ {
asm volatile (""); asm volatile ("");
} }
......
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
#include "kprobe_multi.skel.h" #include "kprobe_multi.skel.h"
/* uprobe attach point */ /* uprobe attach point */
static void trigger_func(void) static noinline void trigger_func(void)
{ {
asm volatile (""); asm volatile ("");
} }
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
#include "test_task_pt_regs.skel.h" #include "test_task_pt_regs.skel.h"
/* uprobe attach point */ /* uprobe attach point */
static void trigger_func(void) static noinline void trigger_func(void)
{ {
asm volatile (""); asm volatile ("");
} }
......
...@@ -922,7 +922,7 @@ static int __send_pkts(struct ifobject *ifobject, u32 *pkt_nb, struct pollfd *fd ...@@ -922,7 +922,7 @@ static int __send_pkts(struct ifobject *ifobject, u32 *pkt_nb, struct pollfd *fd
{ {
struct xsk_socket_info *xsk = ifobject->xsk; struct xsk_socket_info *xsk = ifobject->xsk;
bool use_poll = ifobject->use_poll; 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) { while (xsk_ring_prod__reserve(&xsk->tx, BATCH_SIZE, &idx) < BATCH_SIZE) {
if (use_poll) { if (use_poll) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment