coroutine-lock: Store the coroutine in the CoWaitRecord only once

When taking the slow path for mutex acquisition, set the coroutine
value in the CoWaitRecord in push_waiter(), rather than both there and
in the caller.

Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: David Edmondson <david.edmondson@oracle.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-id: 20210325112941.365238-4-pbonzini@redhat.com
Message-Id: <20210309144015.557477-4-david.edmondson@oracle.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
David Edmondson 2021-03-25 12:29:38 +01:00 committed by Stefan Hajnoczi
parent 07ee2ab4fd
commit 2f6ef0393b

View File

@ -204,7 +204,6 @@ static void coroutine_fn qemu_co_mutex_lock_slowpath(AioContext *ctx,
unsigned old_handoff; unsigned old_handoff;
trace_qemu_co_mutex_lock_entry(mutex, self); trace_qemu_co_mutex_lock_entry(mutex, self);
w.co = self;
push_waiter(mutex, &w); push_waiter(mutex, &w);
/* This is the "Responsibility Hand-Off" protocol; a lock() picks from /* This is the "Responsibility Hand-Off" protocol; a lock() picks from