2002-01-16 04:14:36

by John Weber

[permalink] [raw]
Subject: linux 2.5 and ppa.c

This is one of those drivers still broken due to the BIO changes
(it still calls io_request_lock()).

Unfortunately, I only know enough to
s/io_request_lock/host->host_lock/g.

I am afraid this requires a little more than this.

What's the status on this?
Just a heads up...


2002-01-16 04:48:10

by Douglas Gilbert

[permalink] [raw]
Subject: Re: linux 2.5 and ppa.c

John Weber <[email protected]> wrote:

> This is one of those drivers still broken due to
> the BIO changes (it still calls io_request_lock()).
>
> Unfortunately, I only know enough to
> s/io_request_lock/host->host_lock/g.
>
> I am afraid this requires a little more than this.

John,
The ppa_detect() must _not_ take the host_lock semaphore
as it is already taken by the mid level before it calls
ppa_detect(). [This will cause a lock up on an SMP
machine.]

The ppa_interrupt() should take the host_lock semaphore
before it calls scsi_done() (which calls up the scsi
driver stack).

The imm driver has been built by the same firm (Tim Waugh?)
and it looks correctly patched.

Doug Gilbert

2002-01-16 07:13:08

by Jens Axboe

[permalink] [raw]
Subject: Re: linux 2.5 and ppa.c

On Tue, Jan 15 2002, Douglas Gilbert wrote:
> John Weber <[email protected]> wrote:
>
> > This is one of those drivers still broken due to
> > the BIO changes (it still calls io_request_lock()).
> >
> > Unfortunately, I only know enough to
> > s/io_request_lock/host->host_lock/g.
> >
> > I am afraid this requires a little more than this.
>
> John,
> The ppa_detect() must _not_ take the host_lock semaphore
> as it is already taken by the mid level before it calls
> ppa_detect(). [This will cause a lock up on an SMP
> machine.]

Not true in 2.5, detect is called without any locks held.

> The ppa_interrupt() should take the host_lock semaphore
> before it calls scsi_done() (which calls up the scsi
> driver stack).

True

--
Jens Axboe