patch-1.3.29 linux/drivers/scsi/eata_pio.c

Next file: linux/drivers/scsi/hosts.c
Previous file: linux/drivers/scsi/eata_dma_proc.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v1.3.28/linux/drivers/scsi/eata_pio.c linux/drivers/scsi/eata_pio.c
@@ -378,11 +378,12 @@
     
     if (eata_pio_send_command(base, EATA_CMD_PIO_SEND_CP)) 
     {
-	cmd->result = DID_ERROR << 16;
+	cmd->result = DID_BUS_BUSY << 16;
 	printk("eata_pio_queue target %d, pid %ld, HBA busy, returning "
-               "DID_ERROR, done.\n", cmd->target, cmd->pid);
-	restore_flags(flags);
+               "DID_BUS_BUSY, done.\n", cmd->target, cmd->pid);
         done(cmd);
+        cp->status = FREE;      
+        restore_flags(flags);
 	return (0);
     }
     while (!(inb(base + HA_RSTATUS) & HA_SDRQ));

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov with Sam's (original) version
of this