• Ursula Braun's avatar
    qeth: ungrouping a device must not be interruptible · d0a34f98
    Ursula Braun authored
    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: default avatarUrsula Braun <braunu@de.ibm.com>
    Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
    d0a34f98
qeth_main.c 232 KB