[PATCHv5 7/7] tty/ldsem: Decrement wait_readers on timeouted down_read()

2018-09-17 Thread Dmitry Safonov
It seems like when ldsem_down_read() fails with timeout, it misses update for sem->wait_readers. By that reason, when writer finally releases write end of the semaphore __ldsem_wake_readers() does adjust sem->count with wrong value: sem->wait_readers * (LDSEM_ACTIVE_BIAS - LDSEM_WAIT_BIAS) I.e,

[PATCHv5 7/7] tty/ldsem: Decrement wait_readers on timeouted down_read()

2018-09-17 Thread Dmitry Safonov
It seems like when ldsem_down_read() fails with timeout, it misses update for sem->wait_readers. By that reason, when writer finally releases write end of the semaphore __ldsem_wake_readers() does adjust sem->count with wrong value: sem->wait_readers * (LDSEM_ACTIVE_BIAS - LDSEM_WAIT_BIAS) I.e,