]> git.baikalelectronics.ru Git - kernel.git/commit
[S390] tape: fix race with stack local wait_queue_head_t.
authorMartin Schwidefsky <schwidefsky@de.ibm.com>
Fri, 30 May 2008 08:03:33 +0000 (10:03 +0200)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Fri, 30 May 2008 08:03:36 +0000 (10:03 +0200)
commit8b662ce7066e9f63c4ed89436dd7ccdb482c9676
tree9363e9452ce5b798cad43b83b0276bda6a7568c9
parent61b4b0f31481cc54c26bf3aaaf1f644a1d306c44
[S390] tape: fix race with stack local wait_queue_head_t.

A wait_event call with a stack local wait_queue_head_t structure that is
used to do the wake up for the wait_event is inherently racy. After the
wait_event finished the wake_up call might not have completed yet.
Replace the stack local wait_queue_head_t in tape_do_io and
tape_do_io_interruptible with a per device wait queue.

Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
drivers/s390/char/tape.h
drivers/s390/char/tape_core.c