aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2008-07-09 01:59:10 -0400
committerDavid S. Miller <davem@davemloft.net>2008-07-09 01:59:10 -0400
commit5aa709954a32a646c0cf14fdf7c8834db4ff1c03 (patch)
tree7aac1d47a2d49bbe27d8ad61600ede4c1a2c1b18
parentee609cb36220d18c0cf476b066a5ab7e6f6d3a69 (diff)
pkt_sched: Add qdisc_reset_all_tx().
Isolate callers that want to simply reset all the TX qdiscs from the details of TX queues. Use this in the ISDN code. Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/isdn/i4l/isdn_net.c2
-rw-r--r--include/net/sch_generic.h6
2 files changed, 7 insertions, 1 deletions
diff --git a/drivers/isdn/i4l/isdn_net.c b/drivers/isdn/i4l/isdn_net.c
index 457bbd119f9b..bb904a0a98bd 100644
--- a/drivers/isdn/i4l/isdn_net.c
+++ b/drivers/isdn/i4l/isdn_net.c
@@ -287,7 +287,7 @@ isdn_net_unbind_channel(isdn_net_local * lp)
287 BEWARE! This chunk of code cannot be called from hardware 287 BEWARE! This chunk of code cannot be called from hardware
288 interrupt handler. I hope it is true. --ANK 288 interrupt handler. I hope it is true. --ANK
289 */ 289 */
290 qdisc_reset(lp->netdev->dev->tx_queue.qdisc); 290 qdisc_reset_all_tx(lp->netdev->dev);
291 } 291 }
292 lp->dialstate = 0; 292 lp->dialstate = 0;
293 dev->rx_netdev[isdn_dc2minor(lp->isdn_device, lp->isdn_channel)] = NULL; 293 dev->rx_netdev[isdn_dc2minor(lp->isdn_device, lp->isdn_channel)] = NULL;
diff --git a/include/net/sch_generic.h b/include/net/sch_generic.h
index ea71705e9c77..ea33176616ff 100644
--- a/include/net/sch_generic.h
+++ b/include/net/sch_generic.h
@@ -227,6 +227,12 @@ extern struct Qdisc *qdisc_create_dflt(struct net_device *dev,
227extern void tcf_destroy(struct tcf_proto *tp); 227extern void tcf_destroy(struct tcf_proto *tp);
228extern void tcf_destroy_chain(struct tcf_proto **fl); 228extern void tcf_destroy_chain(struct tcf_proto **fl);
229 229
230/* Reset all TX qdiscs of a device. */
231static inline void qdisc_reset_all_tx(struct net_device *dev)
232{
233 qdisc_reset(dev->tx_queue.qdisc);
234}
235
230static inline int __qdisc_enqueue_tail(struct sk_buff *skb, struct Qdisc *sch, 236static inline int __qdisc_enqueue_tail(struct sk_buff *skb, struct Qdisc *sch,
231 struct sk_buff_head *list) 237 struct sk_buff_head *list)
232{ 238{