recent kernels call the eh_ methods without the host lock held. megaraid_sas doesn't need it but drops it before calling a sleeping routine and reqcquires it afterwards. Just remove the spin_unlock/spin_lock calls. Signed-off-by: Christoph Hellwig <hch@xxxxxx> Index: linux-2.6/drivers/scsi/megaraid/megaraid_sas.c =================================================================== --- linux-2.6.orig/drivers/scsi/megaraid/megaraid_sas.c 2005-10-11 19:53:19.000000000 +0200 +++ linux-2.6/drivers/scsi/megaraid/megaraid_sas.c 2005-10-31 11:01:39.000000000 +0100 @@ -768,17 +764,12 @@ return FAILED; } - spin_unlock(scmd->device->host->host_lock); - ret_val = megasas_wait_for_outstanding(instance); - if (ret_val == SUCCESS) printk(KERN_NOTICE "megasas: reset successful \n"); else printk(KERN_ERR "megasas: failed to do reset\n"); - spin_lock(scmd->device->host->host_lock); - return ret_val; } - : 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