]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
igb: Fix a test with HWTSTAMP_TX_ON
authorChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Tue, 6 Feb 2018 19:47:59 +0000 (20:47 +0100)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Mon, 5 Mar 2018 17:23:37 +0000 (09:23 -0800)
'HWTSTAMP_TX_ON' should be handled as a value, not as a bit mask.
The modified code should behave the same, because HWTSTAMP_TX_ON is 1
and no other possible values of 'tx_type' would match the test.
However, this is more future-proof, should other values be allowed one day.

See 'struct hwtstamp_config' in 'include/uapi/linux/net_tstamp.h'

This fixes a warning reported by smatch:
   igb_xmit_frame_ring() warn: bit shifter 'HWTSTAMP_TX_ON' used for logical '&'

Fixes: 26bd4e2db06be ("igb: protect TX timestamping from API misuse")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/igb/igb_main.c

index 229b72aab17dbedc38f1f68f10fab8dc5b6b2b90..715bb32e69015ee67403a41c96a34f36bb86447e 100644 (file)
@@ -5749,7 +5749,7 @@ netdev_tx_t igb_xmit_frame_ring(struct sk_buff *skb,
        if (unlikely(skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP)) {
                struct igb_adapter *adapter = netdev_priv(tx_ring->netdev);
 
-               if (adapter->tstamp_config.tx_type & HWTSTAMP_TX_ON &&
+               if (adapter->tstamp_config.tx_type == HWTSTAMP_TX_ON &&
                    !test_and_set_bit_lock(__IGB_PTP_TX_IN_PROGRESS,
                                           &adapter->state)) {
                        skb_shinfo(skb)->tx_flags |= SKBTX_IN_PROGRESS;