]> err.no Git - linux-2.6/blobdiff - drivers/scsi/NCR53c406a.c
Merge head 'upstream' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev
[linux-2.6] / drivers / scsi / NCR53c406a.c
index 7c025b6cdd7ccf167bf578198652dbe218fdb254..79ae73b2368029bb3fe35f3ce8ff0a5a3e0b93b0 100644 (file)
@@ -182,13 +182,13 @@ static int irq_probe(void);
 static void *bios_base;
 #endif
 
-#if PORT_BASE
+#ifdef PORT_BASE
 static int port_base = PORT_BASE;
 #else
 static int port_base;
 #endif
 
-#if IRQ_LEV
+#ifdef IRQ_LEV
 static int irq_level = IRQ_LEV;
 #else
 static int irq_level = -1;     /* 0 is 'no irq', so use -1 for 'uninitialized' */
@@ -725,6 +725,9 @@ static int NCR53c406a_queue(Scsi_Cmnd * SCpnt, void (*done) (Scsi_Cmnd *))
 static int NCR53c406a_host_reset(Scsi_Cmnd * SCpnt)
 {
        DEB(printk("NCR53c406a_reset called\n"));
+
+       spin_lock_irq(SCpnt->device->host->host_lock);
+
        outb(C4_IMG, CONFIG4);  /* Select reg set 0 */
        outb(CHIP_RESET, CMD_REG);
        outb(SCSI_NOP, CMD_REG);        /* required after reset */
@@ -732,6 +735,9 @@ static int NCR53c406a_host_reset(Scsi_Cmnd * SCpnt)
        chip_init();
 
        rtrc(2);
+
+       spin_unlock_irq(SCpnt->device->host->host_lock);
+
        return SUCCESS;
 }