patch-2.4.20 linux-2.4.20/drivers/isdn/isdn_net.h
Next file: linux-2.4.20/drivers/isdn/isdn_ppp.c
Previous file: linux-2.4.20/drivers/isdn/isdn_net.c
Back to the patch index
Back to the overall index
- Lines: 39
- Date:
Thu Nov 28 15:53:13 2002
- Orig file:
linux-2.4.19/drivers/isdn/isdn_net.h
- Orig date:
Fri Dec 21 09:41:54 2001
diff -urN linux-2.4.19/drivers/isdn/isdn_net.h linux-2.4.20/drivers/isdn/isdn_net.h
@@ -26,7 +26,6 @@
#define CISCO_ADDR_BROADCAST 0x8f
#define CISCO_CTRL 0x00
#define CISCO_TYPE_CDP 0x2000
-#define CISCO_TYPE_INET 0x0800
#define CISCO_TYPE_SLARP 0x8035
#define CISCO_SLARP_REQUEST 0
#define CISCO_SLARP_REPLY 1
@@ -107,6 +106,8 @@
spin_lock_irqsave(&nd->queue_lock, flags);
lp = nd->queue;
+// printk(KERN_DEBUG __FUNCTION__": lp:%s(%p) nlp:%s(%p) last(%p)\n",
+// lp->name, lp, nlp->name, nlp, lp->last);
nlp->last = lp->last;
lp->last->next = nlp;
lp->last = nlp;
@@ -126,12 +127,20 @@
if (lp->master)
master_lp = (isdn_net_local *) lp->master->priv;
+// printk(KERN_DEBUG __FUNCTION__": lp:%s(%p) mlp:%s(%p) last(%p) next(%p) mndq(%p)\n",
+// lp->name, lp, master_lp->name, master_lp, lp->last, lp->next, master_lp->netdev->queue);
spin_lock_irqsave(&master_lp->netdev->queue_lock, flags);
lp->last->next = lp->next;
lp->next->last = lp->last;
- if (master_lp->netdev->queue == lp)
+ if (master_lp->netdev->queue == lp) {
master_lp->netdev->queue = lp->next;
+ if (lp->next == lp) { /* last in queue */
+ master_lp->netdev->queue = master_lp->netdev->local;
+ }
+ }
lp->next = lp->last = lp; /* (re)set own pointers */
+// printk(KERN_DEBUG __FUNCTION__": mndq(%p)\n",
+// master_lp->netdev->queue);
spin_unlock_irqrestore(&master_lp->netdev->queue_lock, flags);
}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)