Re: [PATCH 2.6.12.5 1/2] lib: allow idr to be used in irq context

From: Luben Tuikov
Date: Sun Aug 21 2005 - 10:49:43 EST


--- Andrew Morton <akpm@xxxxxxxx> wrote:

> Jim Houston <jim.houston@xxxxxxxx> wrote:
> >
> > On Tue, 2005-08-16 at 18:03, Luben Tuikov wrote:
> >
> > > If idr_get_new() or idr_remove() is used in IRQ context,
> > > then we may get a lockup when idr_pre_get was called
> > > in process context and an IRQ interrupted while it held
> > > the idp lock.
> >
> > Hi Everyone,
> >
> > Luben's changes make sense please merge them.
> >
>
> Well yes, the change makes sense if there's actually a caller which needs it.
>
> If there is such a caller then Luben should identify it, please.

Hi Andrew,

The caller is the aic94xx SAS LLDD. It uses IDR to generate unique
task tag for each SCSI task being submitted. It is then used to lookup
the task given the task tag, in effect using IDR as a fast lookup table.

Yes, I'm also not aware of any other users of IDR from mixed process/IRQ
context or for SCSI Task tag purposes.

Luben

-
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/