qla1280 bandaid

From: Peter Chubb <peterc_at_gelato.unsw.edu.au>
Date: 2003-09-02 14:57:15
Hi Jes,
   The problem is that bus_reset drops the HOST_LOCK when it calls
schedule_timeout, but when it's called from the initialisation code,
HOST_LOCK isn't actually held.

The appended patch fixes this; however, I'm not sure that it's
correct, because I couldn't work out easily whether the HOST_LOCK is
held or not on all paths to qla1280_bus_reset().

With the patch in place, I can once again boot SMP I2000 and rx4610.

===== drivers/scsi/qla1280.c 1.44 vs edited =====
--- 1.44/drivers/scsi/qla1280.c	Fri Aug 15 09:08:54 2003
+++ edited/drivers/scsi/qla1280.c	Tue Sep  2 14:53:32 2003
@@ -3346,9 +3346,9 @@
 			ha->bus_settings[bus].scsi_bus_dead = 1;
 		ha->bus_settings[bus].failed_reset_count++;
 	} else {
-		spin_unlock_irq(HOST_LOCK);
+/*		spin_unlock_irq(HOST_LOCK);*/
 		schedule_timeout(reset_delay * HZ);
-		spin_lock_irq(HOST_LOCK);
+/*		spin_lock_irq(HOST_LOCK);*/
 
 		ha->bus_settings[bus].scsi_bus_dead = 0;
 		ha->bus_settings[bus].failed_reset_count = 0;
-
To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Received on Tue Sep 2 00:57:42 2003

This archive was generated by hypermail 2.1.8 : 2005-08-02 09:20:17 EST