diff --git a/kernel/locking/rwsem-spinlock.c b/kernel/locking/rwsem-spinlock.c index 1591f6b..900badd 100644 --- a/kernel/locking/rwsem-spinlock.c +++ b/kernel/locking/rwsem-spinlock.c @@ -155,6 +155,7 @@ void __sched __down_read(struct rw_semaphore *sem) /* wait to be given the lock */ for (;;) { + mb(); if (!waiter.task) break; schedule();