mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-10 18:40:25 -04:00
Merge branch 'selftests-bpf-fix-expression-result-unused-warnings-with-icecc'
Ilya Leoshkevich says: ==================== selftests/bpf: Fix "expression result unused" warnings with icecc v3: https://lore.kernel.org/bpf/20250827194929.416969-1-iii@linux.ibm.com/ v3 -> v4: Go back to the original solution (Yonghong, Alexei). v2: https://lore.kernel.org/bpf/20250827130519.411700-1-iii@linux.ibm.com/ v2 -> v3: Do not touch libbpf, explain how having two function declarations works (Andrii). Fix bpf-gcc build (CI). v1: https://lore.kernel.org/bpf/20250508113804.304665-1-iii@linux.ibm.com/ v1 -> v2: Annotate bpf_obj_new_impl() with __must_check (Alexei). Add an explanation about icecc. I took another look at the "expression result unused" warnings I've been seeing, and it turned out that the root cause was the icecc compiler wrapper and what I consider a clang bug. Back then I've reported that the problem was reproducible with plain clang, but now I see that it was clearly a mixup, sorry about that. The solution is to add a few awkward (void) casts. I've added a detailed explanation of why they are helpful to the commit message. ==================== Link: https://patch.msgid.link/20250829030017.102615-1-iii@linux.ibm.com Signed-off-by: Alexei Starovoitov <ast@kernel.org>
This commit is contained in:
@@ -302,7 +302,7 @@ int arena_spin_lock_slowpath(arena_spinlock_t __arena __arg_arena *lock, u32 val
|
||||
* barriers.
|
||||
*/
|
||||
if (val & _Q_LOCKED_MASK)
|
||||
smp_cond_load_acquire_label(&lock->locked, !VAL, release_err);
|
||||
(void)smp_cond_load_acquire_label(&lock->locked, !VAL, release_err);
|
||||
|
||||
/*
|
||||
* take ownership and clear the pending bit.
|
||||
@@ -380,7 +380,7 @@ int arena_spin_lock_slowpath(arena_spinlock_t __arena __arg_arena *lock, u32 val
|
||||
/* Link @node into the waitqueue. */
|
||||
WRITE_ONCE(prev->next, node);
|
||||
|
||||
arch_mcs_spin_lock_contended_label(&node->locked, release_node_err);
|
||||
(void)arch_mcs_spin_lock_contended_label(&node->locked, release_node_err);
|
||||
|
||||
/*
|
||||
* While waiting for the MCS lock, the next pointer may have
|
||||
|
||||
@@ -226,8 +226,7 @@ int obj_new_no_composite(void *ctx)
|
||||
SEC("?tc")
|
||||
int obj_new_no_struct(void *ctx)
|
||||
{
|
||||
|
||||
bpf_obj_new(union { int data; unsigned udata; });
|
||||
(void)bpf_obj_new(union { int data; unsigned udata; });
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -252,7 +251,7 @@ int new_null_ret(void *ctx)
|
||||
SEC("?tc")
|
||||
int obj_new_acq(void *ctx)
|
||||
{
|
||||
bpf_obj_new(struct foo);
|
||||
(void)bpf_obj_new(struct foo);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user