OSDN Git Service

bonding: use the skb_get/set_queue_mapping
authorTonghao Zhang <xiangxia.m.yue@gmail.com>
Fri, 11 May 2018 09:53:11 +0000 (02:53 -0700)
committerDavid S. Miller <davem@davemloft.net>
Fri, 11 May 2018 20:08:44 +0000 (16:08 -0400)
Use the skb_get_queue_mapping, skb_set_queue_mapping
and skb_rx_queue_recorded for skb queue_mapping in bonding
driver, but not use it directly.

Signed-off-by: Tonghao Zhang <xiangxia.m.yue@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/bonding/bond_main.c

index 01bca86..966d091 100644 (file)
@@ -247,7 +247,7 @@ void bond_dev_queue_xmit(struct bonding *bond, struct sk_buff *skb,
 
        BUILD_BUG_ON(sizeof(skb->queue_mapping) !=
                     sizeof(qdisc_skb_cb(skb)->slave_dev_queue_mapping));
-       skb->queue_mapping = qdisc_skb_cb(skb)->slave_dev_queue_mapping;
+       skb_set_queue_mapping(skb, qdisc_skb_cb(skb)->slave_dev_queue_mapping);
 
        if (unlikely(netpoll_tx_running(bond->dev)))
                bond_netpoll_send_skb(bond_get_slave_by_dev(bond, slave_dev), skb);
@@ -4040,12 +4040,12 @@ static inline int bond_slave_override(struct bonding *bond,
        struct slave *slave = NULL;
        struct list_head *iter;
 
-       if (!skb->queue_mapping)
+       if (!skb_rx_queue_recorded(skb))
                return 1;
 
        /* Find out if any slaves have the same mapping as this skb. */
        bond_for_each_slave_rcu(bond, slave, iter) {
-               if (slave->queue_id == skb->queue_mapping) {
+               if (slave->queue_id == skb_get_queue_mapping(skb)) {
                        if (bond_slave_is_up(slave) &&
                            slave->link == BOND_LINK_UP) {
                                bond_dev_queue_xmit(bond, skb, slave->dev);
@@ -4071,7 +4071,7 @@ static u16 bond_select_queue(struct net_device *dev, struct sk_buff *skb,
        u16 txq = skb_rx_queue_recorded(skb) ? skb_get_rx_queue(skb) : 0;
 
        /* Save the original txq to restore before passing to the driver */
-       qdisc_skb_cb(skb)->slave_dev_queue_mapping = skb->queue_mapping;
+       qdisc_skb_cb(skb)->slave_dev_queue_mapping = skb_get_queue_mapping(skb);
 
        if (unlikely(txq >= dev->real_num_tx_queues)) {
                do {