diff options
Diffstat (limited to 'net/sched/sch_teql.c')
-rw-r--r-- | net/sched/sch_teql.c | 24 |
1 files changed, 7 insertions, 17 deletions
diff --git a/net/sched/sch_teql.c b/net/sched/sch_teql.c index f05ad9a30b4c..0968184ea6be 100644 --- a/net/sched/sch_teql.c +++ b/net/sched/sch_teql.c | |||
@@ -9,30 +9,17 @@ | |||
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <linux/module.h> | 11 | #include <linux/module.h> |
12 | #include <asm/uaccess.h> | ||
13 | #include <asm/system.h> | ||
14 | #include <linux/bitops.h> | ||
15 | #include <linux/types.h> | 12 | #include <linux/types.h> |
16 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
17 | #include <linux/string.h> | 14 | #include <linux/string.h> |
18 | #include <linux/mm.h> | ||
19 | #include <linux/socket.h> | ||
20 | #include <linux/sockios.h> | ||
21 | #include <linux/in.h> | ||
22 | #include <linux/errno.h> | 15 | #include <linux/errno.h> |
23 | #include <linux/interrupt.h> | ||
24 | #include <linux/if_arp.h> | 16 | #include <linux/if_arp.h> |
25 | #include <linux/if_ether.h> | ||
26 | #include <linux/inet.h> | ||
27 | #include <linux/netdevice.h> | 17 | #include <linux/netdevice.h> |
28 | #include <linux/etherdevice.h> | ||
29 | #include <linux/notifier.h> | ||
30 | #include <linux/init.h> | 18 | #include <linux/init.h> |
31 | #include <net/ip.h> | ||
32 | #include <net/route.h> | ||
33 | #include <linux/skbuff.h> | 19 | #include <linux/skbuff.h> |
34 | #include <linux/moduleparam.h> | 20 | #include <linux/moduleparam.h> |
35 | #include <net/sock.h> | 21 | #include <net/dst.h> |
22 | #include <net/neighbour.h> | ||
36 | #include <net/pkt_sched.h> | 23 | #include <net/pkt_sched.h> |
37 | 24 | ||
38 | /* | 25 | /* |
@@ -225,7 +212,6 @@ static int teql_qdisc_init(struct Qdisc *sch, struct rtattr *opt) | |||
225 | return 0; | 212 | return 0; |
226 | } | 213 | } |
227 | 214 | ||
228 | /* "teql*" netdevice routines */ | ||
229 | 215 | ||
230 | static int | 216 | static int |
231 | __teql_resolve(struct sk_buff *skb, struct sk_buff *skb_res, struct net_device *dev) | 217 | __teql_resolve(struct sk_buff *skb, struct sk_buff *skb_res, struct net_device *dev) |
@@ -277,6 +263,7 @@ static int teql_master_xmit(struct sk_buff *skb, struct net_device *dev) | |||
277 | int busy; | 263 | int busy; |
278 | int nores; | 264 | int nores; |
279 | int len = skb->len; | 265 | int len = skb->len; |
266 | int subq = skb->queue_mapping; | ||
280 | struct sk_buff *skb_res = NULL; | 267 | struct sk_buff *skb_res = NULL; |
281 | 268 | ||
282 | start = master->slaves; | 269 | start = master->slaves; |
@@ -293,7 +280,9 @@ restart: | |||
293 | 280 | ||
294 | if (slave->qdisc_sleeping != q) | 281 | if (slave->qdisc_sleeping != q) |
295 | continue; | 282 | continue; |
296 | if (netif_queue_stopped(slave) || ! netif_running(slave)) { | 283 | if (netif_queue_stopped(slave) || |
284 | netif_subqueue_stopped(slave, subq) || | ||
285 | !netif_running(slave)) { | ||
297 | busy = 1; | 286 | busy = 1; |
298 | continue; | 287 | continue; |
299 | } | 288 | } |
@@ -302,6 +291,7 @@ restart: | |||
302 | case 0: | 291 | case 0: |
303 | if (netif_tx_trylock(slave)) { | 292 | if (netif_tx_trylock(slave)) { |
304 | if (!netif_queue_stopped(slave) && | 293 | if (!netif_queue_stopped(slave) && |
294 | !netif_subqueue_stopped(slave, subq) && | ||
305 | slave->hard_start_xmit(skb, slave) == 0) { | 295 | slave->hard_start_xmit(skb, slave) == 0) { |
306 | netif_tx_unlock(slave); | 296 | netif_tx_unlock(slave); |
307 | master->slaves = NEXT_SLAVE(q); | 297 | master->slaves = NEXT_SLAVE(q); |