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)
commitd0a34f98d1da66a5b4e02171854e6c04c9916016
treee56ea20b7a94744b9269a5c2a1b8327797bd8534
parent3052246c815fe17ff3a9fcb5601c6688b523e5f5
qeth: ungrouping a device must not be interruptible

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>
drivers/s390/net/qeth_main.c