PATCH: fix i2o_scsi (submission from Randy)

From: Alan Cox (alan@lxorguk.ukuu.org.uk)
Date: Fri Feb 14 2003 - 16:03:18 EST


Just approving this as maintainer of i2o_scsi

diff -u --new-file --recursive --exclude-from /usr/src/exclude linux-2.5.60-ref/drivers/message/i2o/i2o_scsi.c linux-2.5.60-ac1/drivers/message/i2o/i2o_scsi.c
--- linux-2.5.60-ref/drivers/message/i2o/i2o_scsi.c 2003-02-14 21:21:41.000000000 +0000
+++ linux-2.5.60-ac1/drivers/message/i2o/i2o_scsi.c 2003-02-14 19:14:46.000000000 +0000
@@ -224,7 +224,7 @@
                         spin_unlock_irqrestore(&retry_lock, flags);
                         /* Create a scsi error for this */
                         current_command = (Scsi_Cmnd *)m[3];
- lock = current_command->host->host_lock;
+ lock = current_command->device->host->host_lock;
                         printk("Aborted %ld\n", current_command->serial_number);
 
                         spin_lock_irqsave(lock, flags);
@@ -328,7 +328,7 @@
         else if (current_command->request_bufflen)
                 pci_unmap_single(c->pdev, (dma_addr_t)((long)current_command->SCp.ptr), current_command->request_bufflen, scsi_to_pci_dma_dir(current_command->sc_data_direction));
 
- lock = current_command->host->host_lock;
+ lock = current_command->device->host->host_lock;
         spin_lock_irqsave(lock, flags);
         current_command->scsi_done(current_command);
         spin_unlock_irqrestore(lock, flags);
@@ -606,7 +606,7 @@
          * Do the incoming paperwork
          */
          
- host = SCpnt->host;
+ host = SCpnt->device->host;
         hostdata = (struct i2o_scsi_host *)host->hostdata;
          
         c = hostdata->controller;
@@ -615,13 +615,13 @@
 
         SCpnt->scsi_done = done;
         
- if(SCpnt->target > 15)
+ if(SCpnt->device->id > 15)
         {
- printk(KERN_ERR "i2o_scsi: Wild target %d.\n", SCpnt->target);
+ printk(KERN_ERR "i2o_scsi: Wild target %d.\n", SCpnt->device->id);
                 return -1;
         }
         
- tid = hostdata->task[SCpnt->target][SCpnt->lun];
+ tid = hostdata->task[SCpnt->device->id][SCpnt->device->lun];
         
         dprintk(("qcmd: Tid = %d\n", tid));
         
@@ -712,10 +712,10 @@
                  * with tagged queueing. We throw in the odd ordered
                  * tag to stop them starving themselves.
                  */
- if((jiffies - hostdata->tagclock[SCpnt->target][SCpnt->lun]) > (5*HZ))
+ if((jiffies - hostdata->tagclock[SCpnt->device->id][SCpnt->device->lun]) > (5*HZ))
                 {
                         tag=0x01800000; /* ORDERED! */
- hostdata->tagclock[SCpnt->target][SCpnt->lun]=jiffies;
+ hostdata->tagclock[SCpnt->device->id][SCpnt->device->lun]=jiffies;
                 }
                 else
                 {
@@ -916,9 +916,9 @@
         
         printk(KERN_WARNING "i2o_scsi: Aborting command block.\n");
         
- host = SCpnt->host;
+ host = SCpnt->device->host;
         hostdata = (struct i2o_scsi_host *)host->hostdata;
- tid = hostdata->task[SCpnt->target][SCpnt->lun];
+ tid = hostdata->task[SCpnt->device->id][SCpnt->device->lun];
         if(tid==-1)
         {
                 printk(KERN_ERR "i2o_scsi: Impossible command to abort!\n");
@@ -982,7 +982,7 @@
          */
 
         
- host = SCpnt->host;
+ host = SCpnt->device->host;
 
         spin_unlock_irq(host->host_lock);
 
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sat Feb 15 2003 - 22:00:58 EST