coroutine-lock: add missing coroutine_fn annotations

Callers of coroutine_fn must be coroutine_fn themselves, or the call
must be within "if (qemu_in_coroutine())".  Apply coroutine_fn to
functions where this holds.

Reviewed-by: Alberto Faria <afaria@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20220922084924.201610-23-pbonzini@redhat.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
Paolo Bonzini 2022-09-22 10:49:20 +02:00 committed by Kevin Wolf
parent 06753a0750
commit 46cd09dee1
1 changed files with 7 additions and 7 deletions

View File

@ -135,7 +135,7 @@ typedef struct CoWaitRecord {
QSLIST_ENTRY(CoWaitRecord) next; QSLIST_ENTRY(CoWaitRecord) next;
} CoWaitRecord; } CoWaitRecord;
static void push_waiter(CoMutex *mutex, CoWaitRecord *w) static void coroutine_fn push_waiter(CoMutex *mutex, CoWaitRecord *w)
{ {
w->co = qemu_coroutine_self(); w->co = qemu_coroutine_self();
QSLIST_INSERT_HEAD_ATOMIC(&mutex->from_push, w, next); QSLIST_INSERT_HEAD_ATOMIC(&mutex->from_push, w, next);
@ -332,7 +332,7 @@ void qemu_co_rwlock_init(CoRwlock *lock)
} }
/* Releases the internal CoMutex. */ /* Releases the internal CoMutex. */
static void qemu_co_rwlock_maybe_wake_one(CoRwlock *lock) static void coroutine_fn qemu_co_rwlock_maybe_wake_one(CoRwlock *lock)
{ {
CoRwTicket *tkt = QSIMPLEQ_FIRST(&lock->tickets); CoRwTicket *tkt = QSIMPLEQ_FIRST(&lock->tickets);
Coroutine *co = NULL; Coroutine *co = NULL;
@ -365,7 +365,7 @@ static void qemu_co_rwlock_maybe_wake_one(CoRwlock *lock)
} }
} }
void qemu_co_rwlock_rdlock(CoRwlock *lock) void coroutine_fn qemu_co_rwlock_rdlock(CoRwlock *lock)
{ {
Coroutine *self = qemu_coroutine_self(); Coroutine *self = qemu_coroutine_self();
@ -390,7 +390,7 @@ void qemu_co_rwlock_rdlock(CoRwlock *lock)
self->locks_held++; self->locks_held++;
} }
void qemu_co_rwlock_unlock(CoRwlock *lock) void coroutine_fn qemu_co_rwlock_unlock(CoRwlock *lock)
{ {
Coroutine *self = qemu_coroutine_self(); Coroutine *self = qemu_coroutine_self();
@ -408,7 +408,7 @@ void qemu_co_rwlock_unlock(CoRwlock *lock)
qemu_co_rwlock_maybe_wake_one(lock); qemu_co_rwlock_maybe_wake_one(lock);
} }
void qemu_co_rwlock_downgrade(CoRwlock *lock) void coroutine_fn qemu_co_rwlock_downgrade(CoRwlock *lock)
{ {
qemu_co_mutex_lock(&lock->mutex); qemu_co_mutex_lock(&lock->mutex);
assert(lock->owners == -1); assert(lock->owners == -1);
@ -418,7 +418,7 @@ void qemu_co_rwlock_downgrade(CoRwlock *lock)
qemu_co_rwlock_maybe_wake_one(lock); qemu_co_rwlock_maybe_wake_one(lock);
} }
void qemu_co_rwlock_wrlock(CoRwlock *lock) void coroutine_fn qemu_co_rwlock_wrlock(CoRwlock *lock)
{ {
Coroutine *self = qemu_coroutine_self(); Coroutine *self = qemu_coroutine_self();
@ -438,7 +438,7 @@ void qemu_co_rwlock_wrlock(CoRwlock *lock)
self->locks_held++; self->locks_held++;
} }
void qemu_co_rwlock_upgrade(CoRwlock *lock) void coroutine_fn qemu_co_rwlock_upgrade(CoRwlock *lock)
{ {
qemu_co_mutex_lock(&lock->mutex); qemu_co_mutex_lock(&lock->mutex);
assert(lock->owners > 0); assert(lock->owners > 0);