sym53c8xx driver tries to lock io_request_lock before calling done 
routine. Also, scsi mid-layer routine scsi_done tries to acquire
the same lock. Won't the system hang at that point ?

-hiren

> -----Original Message-----
> From: Gérard Roudier [mailto:[EMAIL PROTECTED]]
> Sent: Saturday, February 10, 2001 11:48 AM
> To: Jens Axboe
> Cc: Justin T. Gibbs; Alan Cox; [EMAIL PROTECTED];
> [EMAIL PROTECTED]; [EMAIL PROTECTED]
> Subject: Re: scsi_unjam_host and scsi_try to abort_command
> 
> 
> 
> 
> On Sat, 10 Feb 2001, Jens Axboe wrote:
> 
> > On Sat, Feb 10 2001, Justin T. Gibbs wrote:
> > > >Well the driver isnt allowed to hold interrupts off for 
> > 1 tick because
> > > >that messes up the clock, and at 1 second the watchdog 
> nmi will reboot
> > > >
> > > >scsi driver authors therefore need to adjust their drivers
> > > 
> > > If you ask me, it is a bug that the io_request lock is 
> forced on low
> > > level drivers at all.  90% of the aic7xxx driver pretends that the
> > > io_request_lock doesn't exist, relying instead on a 
> per-controller instance
> > > lock.  The interrupt handler only aquires the io_request 
> lock for calls back
> > > into the mid-layer as it is expected to be held (although 
> the mid-layer
> > > almost instantly releases it again).  I also immediately 
> release the
> > > io_request_lock in all of my error recovery entry points 
> because I don't
> > > need the protection and, as you say, we can't lock up the 
> system while we're
> > > waiting for recovery actions to complete.
> > 
> > You are doing the Right Thing, the io_request_lock will die in the
> > next devel series. And no doubt the hardest part of that is not the
> > actual i/o layers, it's the SCSI low level drivers that do all sorts
> > of funnies with it.
> 
> It is not the low level drivers that have invented the offending
> io_request_lock. They have been forced to live with it. For 
> example, the
> ncr53c8xx and sym53c8xx have their instance lock since day 
> one and as a
> result they have been for years uselessly doubly locked in 
> some places.
> But I didn't want the drivers to rely on the io_request_lock. 
> They just
> are forced to live with it and this was enough.
> 
> Indeed the io_request_lock reaching low-level driver is ugly 
> and nobody
> ever said it was different. _But_, if we consider the mess-up 
> that existed
> notably the SCSI mid-layer when the SMP race in the block+scsi+drivers
> stack has been discovered, it probably has been a very quick 
> and smart fix
> to use the io_request_lock this way.
> 
> One can criticize everything if one just ignores history.
> 
>   Gérard.
> 
> PS: This smart fix was from Linus, if I remember correctly.
> 
-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [EMAIL PROTECTED]

Reply via email to