bonding: slight optimization for bond xmit path
authordingtianhong <dingtianhong@huawei.com>
Tue, 25 Mar 2014 09:00:09 +0000 (17:00 +0800)
committerDavid S. Miller <davem@davemloft.net>
Wed, 26 Mar 2014 20:40:24 +0000 (16:40 -0400)
Add unlikely() micro to the unlikely conditions in the bond
xmit path for slight optimization.

Signed-off-by: Ding Tianhong <dingtianhong@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/bonding/bond_main.c

index e717db301d4659b5dc4cd0255e57bd2d5157435a..ee17c246326e5c68d59dee64a319b67d124a4008 100644 (file)
@@ -2957,7 +2957,7 @@ static bool bond_flow_dissect(struct bonding *bond, struct sk_buff *skb,
        fk->ports = 0;
        noff = skb_network_offset(skb);
        if (skb->protocol == htons(ETH_P_IP)) {
-               if (!pskb_may_pull(skb, noff + sizeof(*iph)))
+               if (unlikely(!pskb_may_pull(skb, noff + sizeof(*iph))))
                        return false;
                iph = ip_hdr(skb);
                fk->src = iph->saddr;
@@ -2966,7 +2966,7 @@ static bool bond_flow_dissect(struct bonding *bond, struct sk_buff *skb,
                if (!ip_is_fragment(iph))
                        proto = iph->protocol;
        } else if (skb->protocol == htons(ETH_P_IPV6)) {
-               if (!pskb_may_pull(skb, noff + sizeof(*iph6)))
+               if (unlikely(!pskb_may_pull(skb, noff + sizeof(*iph6))))
                        return false;
                iph6 = ipv6_hdr(skb);
                fk->src = (__force __be32)ipv6_addr_hash(&iph6->saddr);
@@ -3768,7 +3768,7 @@ static netdev_tx_t bond_start_xmit(struct sk_buff *skb, struct net_device *dev)
         * If we risk deadlock from transmitting this in the
         * netpoll path, tell netpoll to queue the frame for later tx
         */
-       if (is_netpoll_tx_blocked(dev))
+       if (unlikely(is_netpoll_tx_blocked(dev)))
                return NETDEV_TX_BUSY;
 
        rcu_read_lock();