[SCSI] allow sleeping in ->eh_bus_reset_handler()
[sfrench/cifs-2.6.git] / drivers / scsi / qlogicfas408.c
index 575f8a8fcf34a4540816aa152d4a298506c2685a..cb75e0b7baeafe62fcdc304cffc2525a1ca65a03 100644 (file)
@@ -511,8 +511,14 @@ int qlogicfas408_abort(Scsi_Cmnd * cmd)
 int qlogicfas408_bus_reset(Scsi_Cmnd * cmd)
 {
        struct qlogicfas408_priv *priv = get_priv_by_cmd(cmd);
+       unsigned long flags;
+
        priv->qabort = 2;
+
+       spin_lock_irqsave(cmd->device->host->host_lock, flags);
        ql_zap(priv);
+       spin_unlock_irqrestore(cmd->device->host->host_lock, flags);
+
        return SUCCESS;
 }