Re: [PATCH 2/4] locking/rwbase: Properly match set_and_save_state() to restore_state()

From: Will Deacon
Date: Thu Sep 09 2021 - 09:54:56 EST


On Thu, Sep 09, 2021 at 12:59:17PM +0200, Peter Zijlstra wrote:
> Noticed while looking at the readers race.
>
> Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
> ---
> kernel/locking/rwbase_rt.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> --- a/kernel/locking/rwbase_rt.c
> +++ b/kernel/locking/rwbase_rt.c
> @@ -220,7 +220,7 @@ static int __sched rwbase_write_lock(str
> for (; atomic_read(&rwb->readers);) {
> /* Optimized out for rwlocks */
> if (rwbase_signal_pending_state(state, current)) {
> - __set_current_state(TASK_RUNNING);
> + rwbase_restore_current_state();
> __rwbase_write_unlock(rwb, 0, flags);
> return -EINTR;

Acked-by: Will Deacon <will@xxxxxxxxxx>

Will