patch-2.4.0-test3 linux/net/atm/clip.c
Next file: linux/net/atm/common.c
Previous file: linux/net/atm/Makefile
Back to the patch index
Back to the overall index
- Lines: 77
- Date:
Thu Jul 6 21:37:24 2000
- Orig file:
v2.4.0-test2/linux/net/atm/clip.c
- Orig date:
Thu May 11 15:30:08 2000
diff -u --recursive --new-file v2.4.0-test2/linux/net/atm/clip.c linux/net/atm/clip.c
@@ -274,14 +274,14 @@
static struct neigh_ops clip_neigh_ops = {
- AF_INET, /* family */
- clip_neigh_destroy, /* destructor */
- clip_neigh_solicit, /* solicit */
- clip_neigh_error, /* error_report */
- dev_queue_xmit, /* output */
- dev_queue_xmit, /* connected_output */
- dev_queue_xmit, /* hh_output */
- dev_queue_xmit /* queue_xmit */
+ family: AF_INET,
+ destructor: clip_neigh_destroy,
+ solicit: clip_neigh_solicit,
+ error_report: clip_neigh_error,
+ output: dev_queue_xmit,
+ connected_output: dev_queue_xmit,
+ hh_output: dev_queue_xmit,
+ queue_xmit: dev_queue_xmit,
};
@@ -384,6 +384,7 @@
if (!skb->dst) {
printk(KERN_ERR "clip_start_xmit: skb->dst == NULL\n");
dev_kfree_skb(skb);
+ clip_priv->stats.tx_dropped++;
return 0;
}
if (!skb->dst->neighbour) {
@@ -395,8 +396,10 @@
return 0;
}
#endif
-printk("clip_start_xmit: NO NEIGHBOUR !\n");
-return 0;
+ printk(KERN_ERR "clip_start_xmit: NO NEIGHBOUR !\n");
+ dev_kfree_skb(skb);
+ clip_priv->stats.tx_dropped++;
+ return 0;
}
entry = NEIGH2ENTRY(skb->dst->neighbour);
if (!entry->vccs) {
@@ -440,7 +443,6 @@
entry->vccs->xoff = 0;
return 0;
}
- if (old) return 0;
spin_lock_irqsave(&clip_priv->xoff_lock,flags);
netif_stop_queue(dev); /* XOFF -> throttle immediately */
barrier();
@@ -482,6 +484,7 @@
clip_vcc->old_pop = vcc->pop;
vcc->push = clip_push;
vcc->pop = clip_pop;
+ skb_queue_head_init(©);
skb_migrate(&vcc->recvq,©);
/* re-process everything received between connection setup and MKIP */
while ((skb = skb_dequeue(©)))
@@ -622,7 +625,7 @@
DPRINTK("clip_device_event NETDEV_UP\n");
(void) to_atmarpd(act_up,PRIV(dev)->number,0);
break;
- case NETDEV_DOWN:
+ case NETDEV_GOING_DOWN:
DPRINTK("clip_device_event NETDEV_DOWN\n");
(void) to_atmarpd(act_down,PRIV(dev)->number,0);
break;
@@ -633,6 +636,7 @@
break;
case NETDEV_REBOOT:
case NETDEV_REGISTER:
+ case NETDEV_DOWN:
DPRINTK("clip_device_event %ld\n",event);
/* ignore */
break;
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)