|
@@ -76,6 +76,7 @@
|
|
|
#include <net/route.h>
|
|
|
#include <net/net_namespace.h>
|
|
|
#include <net/netns/generic.h>
|
|
|
+#include <net/pkt_sched.h>
|
|
|
#include "bonding.h"
|
|
|
#include "bond_3ad.h"
|
|
|
#include "bond_alb.h"
|
|
@@ -381,8 +382,6 @@ struct vlan_entry *bond_next_vlan(struct bonding *bond, struct vlan_entry *curr)
|
|
|
return next;
|
|
|
}
|
|
|
|
|
|
-#define bond_queue_mapping(skb) (*(u16 *)((skb)->cb))
|
|
|
-
|
|
|
/**
|
|
|
* bond_dev_queue_xmit - Prepare skb for xmit.
|
|
|
*
|
|
@@ -395,7 +394,9 @@ int bond_dev_queue_xmit(struct bonding *bond, struct sk_buff *skb,
|
|
|
{
|
|
|
skb->dev = slave_dev;
|
|
|
|
|
|
- skb->queue_mapping = bond_queue_mapping(skb);
|
|
|
+ BUILD_BUG_ON(sizeof(skb->queue_mapping) !=
|
|
|
+ sizeof(qdisc_skb_cb(skb)->bond_queue_mapping));
|
|
|
+ skb->queue_mapping = qdisc_skb_cb(skb)->bond_queue_mapping;
|
|
|
|
|
|
if (unlikely(netpoll_tx_running(slave_dev)))
|
|
|
bond_netpoll_send_skb(bond_get_slave_by_dev(bond, slave_dev), skb);
|
|
@@ -4171,7 +4172,7 @@ static u16 bond_select_queue(struct net_device *dev, struct sk_buff *skb)
|
|
|
/*
|
|
|
* Save the original txq to restore before passing to the driver
|
|
|
*/
|
|
|
- bond_queue_mapping(skb) = skb->queue_mapping;
|
|
|
+ qdisc_skb_cb(skb)->bond_queue_mapping = skb->queue_mapping;
|
|
|
|
|
|
if (unlikely(txq >= dev->real_num_tx_queues)) {
|
|
|
do {
|