Messages in this thread | | | Date | Tue, 11 Sep 2018 14:41:29 +0900 | From | Sergey Senozhatsky <> | Subject | Re: [PATCHv3 2/6] tty/ldsem: Update waiter->task before waking up reader |
| |
On (09/11/18 14:04), Sergey Senozhatsky wrote: > > for (;;) { > > set_current_state(TASK_UNINTERRUPTIBLE); > > I think that set_current_state() also executes memory barrier. Just > because it accesses task state. > > > - if (!waiter.task) > > + if (!READ_ONCE(waiter.task)) > > break; > > if (!timeout) > > break;
This READ_ONCE(waiter.task) looks interesting. Maybe could be moved to a loop condition
while (!READ_ONCE(waiter.task)) { ... }
-ss
| |