diff options
author | David S. Miller <davem@davemloft.net> | 2008-07-09 01:59:10 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-07-09 01:59:10 -0400 |
commit | 5aa709954a32a646c0cf14fdf7c8834db4ff1c03 (patch) | |
tree | 7aac1d47a2d49bbe27d8ad61600ede4c1a2c1b18 | |
parent | ee609cb36220d18c0cf476b066a5ab7e6f6d3a69 (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.c | 2 | ||||
-rw-r--r-- | include/net/sch_generic.h | 6 |
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, | |||
227 | extern void tcf_destroy(struct tcf_proto *tp); | 227 | extern void tcf_destroy(struct tcf_proto *tp); |
228 | extern void tcf_destroy_chain(struct tcf_proto **fl); | 228 | extern void tcf_destroy_chain(struct tcf_proto **fl); |
229 | 229 | ||
230 | /* Reset all TX qdiscs of a device. */ | ||
231 | static inline void qdisc_reset_all_tx(struct net_device *dev) | ||
232 | { | ||
233 | qdisc_reset(dev->tx_queue.qdisc); | ||
234 | } | ||
235 | |||
230 | static inline int __qdisc_enqueue_tail(struct sk_buff *skb, struct Qdisc *sch, | 236 | static 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 | { |