aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEmil Tantilov <emil.s.tantilov@intel.com>2013-07-22 21:56:58 -0400
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>2013-09-13 12:41:33 -0400
commit91ffdc842b8ac0f96b5283b0f0b72927b7dfa8c7 (patch)
tree865e30895773682eec5f79ddc27f79b52bcc1cf9
parent6dcc28b93e9675df0f30c063c30d05c1073f1efc (diff)
ixgbe: fix ethtool loopback diagnostic with DCB enabled
This patch disables DCB prior to running the loopback test. When DCB is enabled the frames may be modified on Tx (by adding vlan tag) which will fail the check on Rx. Signed-off-by: Emil Tantilov <emil.s.tantilov@intel.com> Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com> Tested-by: Jack Morgan <jack.morgan@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
-rw-r--r--drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
index 0e1b973659b0..08efc253fb8d 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
@@ -1805,6 +1805,10 @@ static int ixgbe_run_loopback_test(struct ixgbe_adapter *adapter)
1805 unsigned int size = 1024; 1805 unsigned int size = 1024;
1806 netdev_tx_t tx_ret_val; 1806 netdev_tx_t tx_ret_val;
1807 struct sk_buff *skb; 1807 struct sk_buff *skb;
1808 u32 flags_orig = adapter->flags;
1809
1810 /* DCB can modify the frames on Tx */
1811 adapter->flags &= ~IXGBE_FLAG_DCB_ENABLED;
1808 1812
1809 /* allocate test skb */ 1813 /* allocate test skb */
1810 skb = alloc_skb(size, GFP_KERNEL); 1814 skb = alloc_skb(size, GFP_KERNEL);
@@ -1857,6 +1861,7 @@ static int ixgbe_run_loopback_test(struct ixgbe_adapter *adapter)
1857 1861
1858 /* free the original skb */ 1862 /* free the original skb */
1859 kfree_skb(skb); 1863 kfree_skb(skb);
1864 adapter->flags = flags_orig;
1860 1865
1861 return ret_val; 1866 return ret_val;
1862} 1867}