Re: Irq context wrong for USB ACM serial driver calling PPP?

From: Vojtech Pavlik (vojtech@suse.cz)
Date: Mon Mar 06 2000 - 12:38:17 EST


On Mon, Mar 06, 2000 at 06:33:58PM +0100, Jamie Lokier wrote:

> Andi Kleen wrote:
> > > My log just filled up. Lots and lots of dubious messages about bad skbs
> > > and hard IRQs. It's a ppp link that worked fine with 2.3.40.
> >
> > The bad skbs message come from NETFILTER_DEBUG. Turn that off.
> >
> > The hard irq messages mean that the USB driver is not converted to the
> > new kfree_skb() scheme yet. Replace the kfree_skb that run in interrupt
> > context with kfree_skb_irq() (or kfree_skb_any() if you are not sure or
> > if it can run in both process/irq context)
>
> The USB driver doesn't do anything with skbs -- the PPP driver does all
> that. So the PPP driver should be changed to do kfree_skb_any(), right?
>
> > > The hard IRQ might be because I'm using a USB modem. I think the USB
> > > ACM driver might be calling ppp code from irq context which is called
> > > from bh context by the standard serial driver.
> >
> > Sounds like a bug -- the PPP driver is probably not reentrant enough for
> > that.
>
> Vojtech/Al care to comment? What should be changed: USB ACM driver to
> call PPP from bh context or PPP to accept calls from irq context?
>
> Either way, this part of the tty interface is not well documented.

Well, the USB ACM driver does just tty_flip_buffer_push() from an
interrupt, which I think is normal even for other drivers? Well, if not,
I can change it ...

Hmm, it also calls a tty->ldisc.write_wakeup from an interrupt. Might
this be the cause?

-- 
Vojtech Pavlik
SuSE Labs

- 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 : Tue Mar 07 2000 - 21:00:20 EST