提交 76ae0536 编写于 作者: A Arnd Bergmann 提交者: Greg Kroah-Hartman

parport: fix interruptible_sleep_on race

The interruptible_sleep_on function is can still lead to the
deadlock mentioned in the comment above the caller, and we want
to remove it soon, so replace it now with the race-free
wait_event_interruptible.
Signed-off-by: NArnd Bergmann <arnd@arndb.de>
Cc: Andrew Morton <akpm@osdl.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
上级 74aeac4d
...@@ -905,7 +905,8 @@ int parport_claim_or_block(struct pardevice *dev) ...@@ -905,7 +905,8 @@ int parport_claim_or_block(struct pardevice *dev)
/* If dev->waiting is clear now, an interrupt /* If dev->waiting is clear now, an interrupt
gave us the port and we would deadlock if we slept. */ gave us the port and we would deadlock if we slept. */
if (dev->waiting) { if (dev->waiting) {
interruptible_sleep_on (&dev->wait_q); wait_event_interruptible(dev->wait_q,
!dev->waiting);
if (signal_pending (current)) { if (signal_pending (current)) {
return -EINTR; return -EINTR;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册