tick/rcu: Fix bogus ratelimit condition

[ Upstream commit a7e282c777 ]

The ratelimit logic in report_idle_softirq() is broken because the
exit condition is always true:

	static int ratelimit;

	if (ratelimit < 10)
		return false;  ---> always returns here

	ratelimit++;           ---> no chance to run

Make it check for >= 10 instead.

Fixes: 0345691b24 ("tick/rcu: Stop allowing RCU_SOFTIRQ in idle")
Signed-off-by: Wen Yang <wenyang.linux@foxmail.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/r/tencent_5AAA3EEAB42095C9B7740BE62FBF9A67E007@qq.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
Wen Yang 2023-05-05 00:12:53 +08:00 committed by Greg Kroah-Hartman
parent f9bd298e3e
commit 14c0576424
1 changed files with 1 additions and 1 deletions

View File

@ -1046,7 +1046,7 @@ static bool report_idle_softirq(void)
return false;
}
if (ratelimit < 10)
if (ratelimit >= 10)
return false;
/* On RT, softirqs handling may be waiting on some lock */