Messages in this thread Patch in this message | | | Date | Wed, 12 Feb 2003 21:19:10 -0800 | From | "Randy.Dunlap" <> | Subject | [PATCH] repair 2.5.60 i2o_scsi.c |
| |
Hi,
This patch to 2.5.60 repairs i2o_scsi.c for the SCSI data structure changes in 2.5.60.
This is for kernel bugzilla #343: http://bugme.osdl.org/show_bug.cgi?id=343
~Randypatch_name: scsi-i2o-2560.patch patch_version: 2003-02-12.21:12:48 author: Randy.Dunlap <rddunlap@osdl.org> description: repair data structures for 2.5.60 SCSI changes product: Linux product_versions: linux-2560 changelog: _ URL: _ requires: _ conflicts: _ diffstat: = i2o_scsi.c | 22 +++++++++++----------- 1 files changed, 11 insertions(+), 11 deletions(-)
diff -Naur ./drivers/message/i2o/i2o_scsi.c%I2O ./drivers/message/i2o/i2o_scsi.c --- ./drivers/message/i2o/i2o_scsi.c%I2O Mon Feb 10 10:38:49 2003 +++ ./drivers/message/i2o/i2o_scsi.c Wed Feb 12 21:11:14 2003 @@ -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); | |