Re: [tip: locking/core] locking/qspinlock: Fix 'wait_early' set but not used warning

From: Waiman Long
Date: Mon Mar 11 2024 - 09:46:12 EST


On 3/11/24 06:57, Ingo Molnar wrote:
* tip-bot2 for Waiman Long <tip-bot2@xxxxxxxxxxxxx> wrote:

The following commit has been merged into the locking/core branch of tip:

Commit-ID: ca4bc2e07b716509fd279d2b449bb42f4263a9c8
Gitweb: https://git.kernel.org/tip/ca4bc2e07b716509fd279d2b449bb42f4263a9c8
Author: Waiman Long <longman@xxxxxxxxxx>
AuthorDate: Thu, 22 Feb 2024 10:05:37 -05:00
Committer: Ingo Molnar <mingo@xxxxxxxxxx>
CommitterDate: Wed, 28 Feb 2024 13:08:37 +01:00

locking/qspinlock: Fix 'wait_early' set but not used warning

When CONFIG_LOCK_EVENT_COUNTS is off, the wait_early variable will be
set but not used. This is expected. Recent compilers will not generate
wait_early code in this case.

Add the __maybe_unused attribute to wait_early for suppressing this
W=1 warning.

Reported-by: kernel test robot <lkp@xxxxxxxxx>
Signed-off-by: Waiman Long <longman@xxxxxxxxxx>
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
Reviewed-by: Boqun Feng <boqun.feng@xxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Link: https://lore.kernel.org/r/20240222150540.79981-2-longman@xxxxxxxxxx

Closes: https://lore.kernel.org/oe-kbuild-all/202312260422.f4pK3f9m-lkp@xxxxxxxxx/
---
kernel/locking/qspinlock_paravirt.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/locking/qspinlock_paravirt.h b/kernel/locking/qspinlock_paravirt.h
index 6a0184e..ae2b12f 100644
--- a/kernel/locking/qspinlock_paravirt.h
+++ b/kernel/locking/qspinlock_paravirt.h
@@ -294,8 +294,8 @@ static void pv_wait_node(struct mcs_spinlock *node, struct mcs_spinlock *prev)
{
struct pv_node *pn = (struct pv_node *)node;
struct pv_node *pp = (struct pv_node *)prev;
+ bool __maybe_unused wait_early;
int loop;
- bool wait_early;
On a second thought, shouldn't this be solved via lockevent_cond_inc()'s
!CONFIG_LOCK_EVENT_COUNTS stub explicitly marking the variable as used, via
!something like:

#define lockevent_cond_inc(ev, c) do { (void)(c); } while (0)

or so, instead of uglifying the usage site?

Right, that should work too. Thanks for the suggestion. I will post another to do that.

Cheers,
Longman