diff options
Diffstat (limited to 'lib/rwsem.c')
| -rw-r--r-- | lib/rwsem.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/rwsem.c b/lib/rwsem.c index 7644089ec8fa..62fa4eba9ffe 100644 --- a/lib/rwsem.c +++ b/lib/rwsem.c | |||
| @@ -74,7 +74,7 @@ __rwsem_do_wake(struct rw_semaphore *sem, int downgrading) | |||
| 74 | */ | 74 | */ |
| 75 | list_del(&waiter->list); | 75 | list_del(&waiter->list); |
| 76 | tsk = waiter->task; | 76 | tsk = waiter->task; |
| 77 | mb(); | 77 | smp_mb(); |
| 78 | waiter->task = NULL; | 78 | waiter->task = NULL; |
| 79 | wake_up_process(tsk); | 79 | wake_up_process(tsk); |
| 80 | put_task_struct(tsk); | 80 | put_task_struct(tsk); |
| @@ -117,7 +117,7 @@ __rwsem_do_wake(struct rw_semaphore *sem, int downgrading) | |||
| 117 | waiter = list_entry(next, struct rwsem_waiter, list); | 117 | waiter = list_entry(next, struct rwsem_waiter, list); |
| 118 | next = waiter->list.next; | 118 | next = waiter->list.next; |
| 119 | tsk = waiter->task; | 119 | tsk = waiter->task; |
| 120 | mb(); | 120 | smp_mb(); |
| 121 | waiter->task = NULL; | 121 | waiter->task = NULL; |
| 122 | wake_up_process(tsk); | 122 | wake_up_process(tsk); |
| 123 | put_task_struct(tsk); | 123 | put_task_struct(tsk); |
