Re: eepro100.c

From: Andrey Savochkin (saw@saw.sw.com.sg)
Date: Mon Mar 27 2000 - 06:03:49 EST


On Mon, Mar 27, 2000 at 05:17:14AM +0000, Andrew Morton wrote:
> Andrey Savochkin wrote:
> > I know about mdio_read() problem.
> > mdio_read() is used only in
> > - initialization code (no special care is needed)
> > - timer routine
> > - TX timeout routine (these two are exclusive against each other)
> > - ioctl
> > The easiest solution is to make reading ioctl being privileged too.
>
> What do you mean by "privileged"? The global cli would protect the
> ioctl - otherwise it would need to share a lock with the timer and tx
> timeout?

Global cli() is ugly. I'll think what can be done here.

> > > tx_timeout() appears to be unprotected from the ISR.
> >
> > Any specific example?
>
> In the 2.3 driver tx_timeout() does serious stuff with both the tx and
> rx hardware. I'm wondering if there's some way in which
> speedo_interrupt() can be invoked during this. An rx interrupt would do
> it. A spinlock_irqsave() in tx_timeout() would prevent this.

spinlock_irqsave() can't be taken in tx_timeout() because it does a lot of
long-lasting stuff. So I tried to achieve the same results by other means:
removing timer and masking card's interrupts.

Best regards
                                        Andrey V.
                                        Savochkin

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



This archive was generated by hypermail 2b29 : Fri Mar 31 2000 - 21:00:19 EST