Re: [PATCH v2] locking/rtmutex: Fix incorrect spinning condition

From: Waiman Long
Date: Sun Dec 19 2021 - 16:09:31 EST


On 12/17/21 02:42, Zqiang wrote:
When the lock owner is on CPU and not need resched, the current waiter
need to be checked, if it not longer top the waiter, stop spinning.

Incorrect grammar, should be "if it is no longer the top waiter". There is a similar typo in the existing code comment too.

You can modify the subject line to [PATCH-tip ...] to indicate that it is supposed to be apply on top of the tip tree. Other than that, the patch looks good.

Cheers,
Longman


Fixes: c3123c431447 ("locking/rtmutex: Dont dereference waiter lockless")
Signed-off-by: Zqiang <qiang1.zhang@xxxxxxxxx>
---
v1->v2:
Modify description information.

kernel/locking/rtmutex.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c
index 0c1f2e3f019a..8555c4efe97c 100644
--- a/kernel/locking/rtmutex.c
+++ b/kernel/locking/rtmutex.c
@@ -1383,7 +1383,7 @@ static bool rtmutex_spin_on_owner(struct rt_mutex_base *lock,
* - the VCPU on which owner runs is preempted
*/
if (!owner_on_cpu(owner) || need_resched() ||
- rt_mutex_waiter_is_top_waiter(lock, waiter)) {
+ !rt_mutex_waiter_is_top_waiter(lock, waiter)) {
res = false;
break;
}