The following series fixes several problems causing hangs while rmmoding the cciss driver. In the process of fixing these hangs, I also reworked the the logical drive scanning kernel thread to use one thread per driver rather than one thread per controller. I also added a sysfs attribute to kick off a controller scan. Changelog v2 Staticially initialize scan_mutex and scan_q. Remove unneeded function declarations. Added a patch that uses a mutex to indicate we are busy initializing rather than a integer flag. Remove a possible scan race by moving the busy_initializing unlock after the call to rebuild_luntable in cciss_init_one. Reworked the scan thread to use a more traditional loop with a set_current_state(TASK_INTERRUPTIBLE); schedule() at the top of the loop. .../ABI/testing/sysfs-bus-pci-devices-cciss | 7 + drivers/block/cciss.c | 204 +++++++++++++++++--- drivers/block/cciss.h | 9 + 3 files changed, 191 insertions(+), 29 deletions(-) Andrew Patterson (4): cciss: remove logical drive sysfs entries during driver cleanup. cciss: use mutex instead of flag to indicate busy initializing cciss: use only one scan thread cciss: kick off logical drive topology rescan through sysfs -- Andrew Patterson -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html