Re: 3c59x vortex_timer rt hack (was: rt20 patch question)

From: Andrew Morton
Date: Fri May 12 2006 - 10:19:55 EST


Steven Rostedt <rostedt@xxxxxxxxxxx> wrote:
>
>
>
> On Fri, 12 May 2006, Ingo Molnar wrote:
>
> > --- linux-rt.q.orig/drivers/net/3c59x.c
> > +++ linux-rt.q/drivers/net/3c59x.c
> > @@ -1897,7 +1897,8 @@ vortex_timer(unsigned long data)
> >
> > if (vp->medialock)
> > goto leave_media_alone;
> > - disable_irq(dev->irq);
> > + /* hack! */
> > + disable_irq_nosync(dev->irq);
> > old_window = ioread16(ioaddr + EL3_CMD) >> 13;
> > EL3WINDOW(4);
> > media_status = ioread16(ioaddr + Wn4_Media);
>
> BTW, I originally thought about having Mark do this, but I'm nervious
> about the side effects that this might have. Basically, it's doing
> ioreads from the device while the interrupt could be doing iowrites.
>
> I don't know the device well enough to know if this is a problem.
> I've added Andrew Morton to the CC list, since his name is all over the
> code.
>
> Andrew,
>
> Do you know off hand what the side-effects to the vortex card might be
> if we use disable_irq_nosync instead of disable_irq?
>

ooh, ow, sorry, that's lost in the mists of time. I don't know why we're
doing disable_irq() in there.

Whatever it does, I think you could take vp->lock instead - that'll stop
the interrupt handler from doing anything if it does get entered while this
CPU is running vortex_timer().

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