Re: smp dead lock of io_request_lock/queue_lock patch

From: Doug Ledford
Date: Sat Jan 17 2004 - 14:28:43 EST


On Sat, 2004-01-17 at 14:17, Christoph Hellwig wrote:
> On Sat, Jan 17, 2004 at 02:07:33PM -0500, Doug Ledford wrote:
> > #ifdef SCSI_HAS_HOST_LOCK
> > #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
> > adapter->lock_ptr = &adapter->lock;
> > host->lock = &adapter->lock;
> > #else
> > adapter->lock_ptr = &adapter->lock;
> > host->host_lock = &adapter->lock;
> > #endif
> > #else
> > adapter->lock_ptr = &io_request_lock;
> > #endif
>
> Still looks wrong for the 2.6 case which should just be;
>
> adapter->lock_ptr = shost->host_lock;
>
> as I just stated in the review for the megaraid update.

I should pay more attention to what goes on in 2.6. That was a crap
decision. There are drivers out there that use global data and need one
lock across all controllers. Putting a lock in the scsi host struct for
per controller locks is a waste of space. Let the driver decide if it
needs a global driver lock, a per controller lock (in which case it
should be part of the driver private host struct), or just the global
io_request_lock. It really is up to the driver and putting it into the
scsi host struct doesn't make sense.

--
Doug Ledford <dledford@xxxxxxxxxx> 919-754-3700 x44233
Red Hat, Inc.
1801 Varsity Dr.
Raleigh, NC 27606


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/