Patch 1 of 1 This patch implements wait_for_completion_interruptible_timeout in the scan_thread function to ensure it will exit cleanly during rmmod. Calling complete in cciss_remove_one caused a race condition. Using the wait with a timeout seems to work around that but it does fire the thread. The overhead should be minimal. Changelog: Replace wait_for_completion_interruptible with wait_for_completion_interruptible_timeout in scan_thread(). Use 5 second timeout value to avoid race. Signed-off-by: Mike Miller diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c index 4d4d5e0..76e7c10 100644 --- a/drivers/block/cciss.c +++ b/drivers/block/cciss.c @@ -3043,7 +3043,7 @@ static int scan_thread(void *data) h->rescan_wait = &wait; for (;;) { - rc = wait_for_completion_interruptible(&wait); + rc = wait_for_completion_interruptible_timeout(&wait, 5); if (kthread_should_stop()) break; if (!rc) -- 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