if (in_irq()) {
// we can't grab the lock from irq context,
// so we just queue the packet
- skb_queue_tail(&lp->super_tx_queue, skb);
- schedule_work(&lp->tqueue);
+ skb_queue_tail(&idev->super_tx_queue, skb);
++
+ tasklet_schedule(&idev->tlet);
return;
}
ulong cisco_last_slarp_in; /* jiffie of last keepalive packet we received */
char cisco_line_state; /* state of line according to keepalive packets */
char cisco_debserint; /* debugging flag of cisco hdlc with slarp */
- struct timer_list cisco_timer;
- struct work_struct tqueue;
- struct isdn_netif_ops *ops;
++
+ struct timer_list cisco_timer;
+
+ struct isdn_netif_ops *ops;
+
+ struct net_device dev; /* interface to upper levels */
} isdn_net_local;
/* the interface itself */