Messages in this thread | | | Subject | Re: Patch for reset in ini9100u [Initio 9100U(W)] | From | James Bottomley <> | Date | 07 Jan 2004 18:56:04 -0600 |
| |
On Tue, 2004-01-06 at 17:14, Jonathan McDowell wrote: > I have an IWill 2935UW SCSI controller which uses the ini9100u driver. > This has been working fine under 2.4 but I've recently built up a box of > spare bits including the controller and installed 2.6 on it. The driver > is marked broken in 2.6, apparently because of a lack of reset/abort > functionality as it compiles and runs ok. So I've taken a stab at > getting reset support back. Patch is below and it's received minimal > testing - it boots, removes the callback trace and error message and > doesn't seem to cause problems (the only disk in the machine is on this > card).
I think it's a good beginning. However, there are some things that could be done to improve it.
> +int i91u_bus_reset(Scsi_Cmnd * SCpnt) > +{ > + HCS *pHCB; > + > + pHCB = (HCS *) SCpnt->device->host->base; > + tul_reset_scsi_bus(pHCB);
This won't quite do beacuse tul_reset_scsi_bus() has some really nasty properties
Under the old error handler, the reset routine was responsible for resetting the bus, waiting the timeout (which tul_reset_scsi_bus() does with a busy wait) and flushing the queue.
In the new scheme, the eh thread takes care of all of this (including a nice thread based wait).
I think this may all work correctly if you change this call to:
tul_reset_scsi(pHCB, 0);
instead. That should simply reset the bus and not busy wait at all, which is really what the error handler is expecting.
James
- 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/
| |