qeth: ungrouping a device must not be interruptible
authorUrsula Braun <braunu@de.ibm.com>
Wed, 29 Aug 2007 09:26:52 +0000 (11:26 +0200)
committerJeff Garzik <jeff@garzik.org>
Fri, 31 Aug 2007 10:52:57 +0000 (06:52 -0400)
Problem:
A recovery thread must not be active when device is removed.
In qeth_remove_device() an interruptible wait operation is used
to wait until a qeth recovery thread is finished. If a user really
interrupts the ungroup operation of a qeth device while a recovery
is running, cio and qeth are out of sync (device already removed
from cio, but kept in qeth). A following module unload of qeth
results in a kernel OOPS here.

Solution:
Do not allow interruption of ungroup operation to guarantee
finishing of a potentially running qeth recovery thread.

Signed-off-by: Ursula Braun <braunu@de.ibm.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>

No differences found