[Linux-parport] Re: [BUG] PLIP: Badness in enable_irq and Oops

Alan Cox alan at lxorguk.ukuu.org.uk
Sat Aug 13 21:00:10 EDT 2005

On Sul, 2005-08-14 at 02:18 +0200, Jiri Slaby wrote:
> I founded out, that in plip_error (drivers/plip.c)
>                 ENABLE(dev->irq);
> is called by before not calling
>                 DISABLE(dev->irq);
> in plip_bh_timeout_error in

It used to be valid to call enable/disable indiscriminately. 

>         if (error == HS_TIMEOUT) { ...
> My opinion is, that ENABLE in plip_error should be called only if the 
> error was HS_TIMEOUT too.

Tracking the state would fix it yes

> That was badness. And what about the oops:
>         case PLIP_PK_DONE:
>                 /* Inform the upper layer for the arrival of a packet. */
>                 rcv->skb->protocol=plip_type_trans(rcv->skb, dev); <---- 
> the skb here is NULL
>                 netif_rx(rcv->skb);
> Should we inform somebody, if skb is NULL?

You should never get to PK_DONE with rcv->skb = NULL as if that is the
case you are not done. Its years since I looked at plip.

More information about the Linux-parport mailing list