Here is ppa.c. It has only been compiled, not tested.
-andmike
-- Michael Anderson andmike@us.ibm.comppa.c | 30 +++++++++++++++--------------- 1 files changed, 15 insertions(+), 15 deletions(-) ------
===== drivers/scsi/ppa.c 1.17 vs edited ===== --- 1.17/drivers/scsi/ppa.c Mon Nov 18 11:07:55 2002 +++ edited/drivers/scsi/ppa.c Tue Feb 11 08:53:21 2003 @@ -106,7 +106,7 @@ int ppa_detect(Scsi_Host_Template * host) { - struct Scsi_Host *hreg; + struct Scsi_Host *hreg = NULL; int ports; int i, nhosts, try_again; struct parport *pb; @@ -148,7 +148,7 @@ "pardevice is owning the port for too longtime!\n", i); parport_unregister_device(ppa_hosts[i].dev); - spin_lock_irq(ppa_hosts[i].cur_cmd->host->host_lock); + spin_lock_irq(ppa_hosts[i].cur_cmd->device->host->host_lock); return 0; } } @@ -635,7 +635,7 @@ static inline int ppa_send_command(Scsi_Cmnd * cmd) { - int host_no = cmd->host->unique_id; + int host_no = cmd->device->host->unique_id; int k; w_ctr(PPA_BASE(host_no), 0x0c); @@ -661,7 +661,7 @@ * 0 Told to schedule * 1 Finished data transfer */ - int host_no = cmd->host->unique_id; + int host_no = cmd->device->host->unique_id; unsigned short ppb = PPA_BASE(host_no); unsigned long start_jiffies = jiffies; @@ -752,7 +752,7 @@ int ppa_command(Scsi_Cmnd * cmd) { static int first_pass = 1; - int host_no = cmd->host->unique_id; + int host_no = cmd->device->host->unique_id; if (first_pass) { printk("ppa: using non-queuing interface\n"); @@ -774,7 +774,7 @@ schedule(); if (cmd->SCp.phase) /* Only disconnect if we have connected */ - ppa_disconnect(cmd->host->unique_id); + ppa_disconnect(cmd->device->host->unique_id); ppa_pb_release(host_no); ppa_hosts[host_no].cur_cmd = 0; @@ -836,21 +836,21 @@ #endif if (cmd->SCp.phase > 1) - ppa_disconnect(cmd->host->unique_id); + ppa_disconnect(cmd->device->host->unique_id); if (cmd->SCp.phase > 0) - ppa_pb_release(cmd->host->unique_id); + ppa_pb_release(cmd->device->host->unique_id); tmp->cur_cmd = 0; - spin_lock_irqsave(cmd->host->host_lock, flags); + spin_lock_irqsave(cmd->device->host->host_lock, flags); cmd->scsi_done(cmd); - spin_unlock_irqrestore(cmd->host->host_lock, flags); + spin_unlock_irqrestore(cmd->device->host->host_lock, flags); return; } static int ppa_engine(ppa_struct * tmp, Scsi_Cmnd * cmd) { - int host_no = cmd->host->unique_id; + int host_no = cmd->device->host->unique_id; unsigned short ppb = PPA_BASE(host_no); unsigned char l = 0, h = 0; int retv; @@ -900,7 +900,7 @@ } case 2: /* Phase 2 - We are now talking to the scsi bus */ - if (!ppa_select(host_no, cmd->target)) { + if (!ppa_select(host_no, cmd->device->id)) { ppa_fail(host_no, DID_NO_CONNECT); return 0; } @@ -966,7 +966,7 @@ int ppa_queuecommand(Scsi_Cmnd * cmd, void (*done) (Scsi_Cmnd *)) { - int host_no = cmd->host->unique_id; + int host_no = cmd->device->host->unique_id; if (ppa_hosts[host_no].cur_cmd) { printk("PPA: bug in ppa_queuecommand\n"); @@ -1011,7 +1011,7 @@ int ppa_abort(Scsi_Cmnd * cmd) { - int host_no = cmd->host->unique_id; + int host_no = cmd->device->host->unique_id; /* * There is no method for aborting commands since Iomega * have tied the SCSI_MESSAGE line high in the interface @@ -1039,7 +1039,7 @@ int ppa_reset(Scsi_Cmnd * cmd) { - int host_no = cmd->host->unique_id; + int host_no = cmd->device->host->unique_id; if (cmd->SCp.phase) ppa_disconnect(host_no); - 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/