diff -ru kernel-source-2.4.25.orig/net/atm/br2684.c kernel-source-2.4.25/net/atm/br2684.c --- kernel-source-2.4.25.orig/net/atm/br2684.c 2004-04-01 14:17:51 +0300 +++ kernel-source-2.4.25/net/atm/br2684.c 2004-04-01 15:05:58 +0300 @@ -559,11 +559,12 @@ atmvcc->push = br2684_push; skb_queue_head_init(©); skb_migrate(&atmvcc->sk->receive_queue, ©); - while ((skb = skb_dequeue(©))) { - BRPRIV(skb->dev)->stats.rx_bytes -= skb->len; - BRPRIV(skb->dev)->stats.rx_packets--; - br2684_push(atmvcc, skb); - } + while ((skb = skb_dequeue(©))) + if( skb->dev ) { + BRPRIV(skb->dev)->stats.rx_bytes -= skb->len; + BRPRIV(skb->dev)->stats.rx_packets--; + br2684_push(atmvcc, skb); + } return 0; error: write_unlock_irq(&devs_lock);