mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-28 21:33:52 +00:00
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: Andrii Nakryiko <andrii@kernel.org> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Acked-by: Hao Luo <haoluo@google.com> Link: https://lore.kernel.org/bpf/20220816001929.369487-5-andrii@kernel.org
This commit is contained in:
parent
abf84b64e3
commit
df78da2726
4 changed files with 6 additions and 6 deletions
|
@ -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 ("");
|
||||
}
|
||||
|
|
|
@ -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 ("");
|
||||
}
|
||||
|
|
|
@ -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 ("");
|
||||
}
|
||||
|
|
|
@ -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) {
|
||||
|
|
Loading…
Reference in a new issue