* [net-next 00/10][pull request] Intel Wired LAN Driver Update
@ 2011-08-29 8:40 Jeff Kirsher
2011-08-29 8:40 ` [net-next 01/10] ixgbe: Add support for setting CC bit when SR-IOV is enabled Jeff Kirsher
` (10 more replies)
0 siblings, 11 replies; 12+ messages in thread
From: Jeff Kirsher @ 2011-08-29 8:40 UTC (permalink / raw)
To: davem; +Cc: Jeff Kirsher, netdev, gospo
The following series contains updates to ixgbe only. Many are cleanup's
and fixes.
The following are changes since commit 7ac2ed0ceeafa130f85aa947b271b571c68b9e75:
caif: Remove OOM messages, use kzalloc
and are available in the git repository at:
master.kernel.org:/pub/scm/linux/kernel/git/jkirsher/net-next master
Alexander Duyck (2):
ixgbe: Add support for setting CC bit when SR-IOV is enabled
ixgbe: Always tag VLAN tagged packets
Don Skidmore (2):
ixgbe: cleanup feature flags in ixgbe_probe
ixgbe: fix ixgbe_fc_autoneg_fiber bug
Emil Tantilov (2):
ixgbe: add check for supported modes
ixgbe: clear RNBC only for 82598
John Fastabend (4):
ixgbe: fixup remaining call sites for arbitrary TCs
ixgbe: remove unneeded fdir pb alloc case
ixgbe: consolidate, setup for multiple traffic classes
ixgbe: PFC not cleared on X540 devices
drivers/net/ethernet/intel/ixgbe/ixgbe.h | 3 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c | 87 --------------------
drivers/net/ethernet/intel/ixgbe/ixgbe_common.c | 9 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_82599.c | 4 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c | 46 +----------
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c | 10 ++-
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 53 +++++++++---
drivers/net/ethernet/intel/ixgbe/ixgbe_type.h | 1 +
8 files changed, 63 insertions(+), 150 deletions(-)
--
1.7.6
^ permalink raw reply [flat|nested] 12+ messages in thread
* [net-next 01/10] ixgbe: Add support for setting CC bit when SR-IOV is enabled
2011-08-29 8:40 [net-next 00/10][pull request] Intel Wired LAN Driver Update Jeff Kirsher
@ 2011-08-29 8:40 ` Jeff Kirsher
2011-08-29 8:41 ` [net-next 02/10] ixgbe: Always tag VLAN tagged packets Jeff Kirsher
` (9 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: Jeff Kirsher @ 2011-08-29 8:40 UTC (permalink / raw)
To: davem; +Cc: Alexander Duyck, netdev, gospo, Jeff Kirsher
From: Alexander Duyck <alexander.h.duyck@intel.com>
This change makes it so that the CC bit in the descriptor is set when
SR-IOV is enabled. This is needed in order to support offloading
functionality when passing traffic over the internal TX switch.
Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/ixgbe/ixgbe.h | 3 ++-
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 15 ++++++++++++++-
2 files changed, 16 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe.h b/drivers/net/ethernet/intel/ixgbe/ixgbe.h
index dc3b12e..58482fc 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe.h
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe.h
@@ -97,7 +97,8 @@
#define IXGBE_TX_FLAGS_IPV4 (u32)(1 << 4)
#define IXGBE_TX_FLAGS_FCOE (u32)(1 << 5)
#define IXGBE_TX_FLAGS_FSO (u32)(1 << 6)
-#define IXGBE_TX_FLAGS_MAPPED_AS_PAGE (u32)(1 << 7)
+#define IXGBE_TX_FLAGS_TXSW (u32)(1 << 7)
+#define IXGBE_TX_FLAGS_MAPPED_AS_PAGE (u32)(1 << 8)
#define IXGBE_TX_FLAGS_VLAN_MASK 0xffff0000
#define IXGBE_TX_FLAGS_VLAN_PRIO_MASK 0xe0000000
#define IXGBE_TX_FLAGS_VLAN_PRIO_SHIFT 29
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
index bb54d3d..d587967 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
@@ -6295,7 +6295,8 @@ static bool ixgbe_tx_csum(struct ixgbe_ring *tx_ring,
u32 type_tucmd = 0;
if (skb->ip_summed != CHECKSUM_PARTIAL) {
- if (!(tx_flags & IXGBE_TX_FLAGS_HW_VLAN))
+ if (!(tx_flags & IXGBE_TX_FLAGS_HW_VLAN) &&
+ !(tx_flags & IXGBE_TX_FLAGS_TXSW))
return false;
} else {
u8 l4_hdr = 0;
@@ -6398,6 +6399,13 @@ static __le32 ixgbe_tx_olinfo_status(u32 tx_flags, unsigned int paylen)
(1 << IXGBE_ADVTXD_IDX_SHIFT));
#endif
+ /*
+ * Check Context must be set if Tx switch is enabled, which it
+ * always is for case where virtual functions are running
+ */
+ if (tx_flags & IXGBE_TX_FLAGS_TXSW)
+ olinfo_status |= cpu_to_le32(IXGBE_ADVTXD_CC);
+
return olinfo_status;
}
@@ -6732,6 +6740,11 @@ netdev_tx_t ixgbe_xmit_frame_ring(struct sk_buff *skb,
return NETDEV_TX_BUSY;
}
+#ifdef CONFIG_PCI_IOV
+ if (adapter->flags & IXGBE_FLAG_SRIOV_ENABLED)
+ tx_flags |= IXGBE_TX_FLAGS_TXSW;
+
+#endif
/* if we have a HW VLAN tag being added default to the HW one */
if (vlan_tx_tag_present(skb)) {
tx_flags |= vlan_tx_tag_get(skb) << IXGBE_TX_FLAGS_VLAN_SHIFT;
--
1.7.6
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [net-next 02/10] ixgbe: Always tag VLAN tagged packets
2011-08-29 8:40 [net-next 00/10][pull request] Intel Wired LAN Driver Update Jeff Kirsher
2011-08-29 8:40 ` [net-next 01/10] ixgbe: Add support for setting CC bit when SR-IOV is enabled Jeff Kirsher
@ 2011-08-29 8:41 ` Jeff Kirsher
2011-08-29 8:41 ` [net-next 03/10] ixgbe: fixup remaining call sites for arbitrary TCs Jeff Kirsher
` (8 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: Jeff Kirsher @ 2011-08-29 8:41 UTC (permalink / raw)
To: davem; +Cc: Alexander Duyck, netdev, gospo, Jeff Kirsher
From: Alexander Duyck <alexander.h.duyck@intel.com>
This change is meant to fix the patch:
ixgbe: Cleanup FCOE and VLAN handling in xmit_frame_ring
And can be rolled into it if needed.
What this fixes is that VLAN tagged packets were not being tagged if they
were prio 7 which matches up with TC_PRIO_CONTROL. In order to fix it I am
just setting things up so that we always tag VLAN tagged packets.
Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Tested-by: Ross Brattain <ross.b.brattain@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
index d587967..f095a3b 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
@@ -6762,7 +6762,8 @@ netdev_tx_t ixgbe_xmit_frame_ring(struct sk_buff *skb,
}
if ((adapter->flags & IXGBE_FLAG_DCB_ENABLED) &&
- skb->priority != TC_PRIO_CONTROL) {
+ ((tx_flags & (IXGBE_TX_FLAGS_HW_VLAN | IXGBE_TX_FLAGS_SW_VLAN)) ||
+ (skb->priority != TC_PRIO_CONTROL))) {
tx_flags &= ~IXGBE_TX_FLAGS_VLAN_PRIO_MASK;
tx_flags |= tx_ring->dcb_tc <<
IXGBE_TX_FLAGS_VLAN_PRIO_SHIFT;
--
1.7.6
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [net-next 03/10] ixgbe: fixup remaining call sites for arbitrary TCs
2011-08-29 8:40 [net-next 00/10][pull request] Intel Wired LAN Driver Update Jeff Kirsher
2011-08-29 8:40 ` [net-next 01/10] ixgbe: Add support for setting CC bit when SR-IOV is enabled Jeff Kirsher
2011-08-29 8:41 ` [net-next 02/10] ixgbe: Always tag VLAN tagged packets Jeff Kirsher
@ 2011-08-29 8:41 ` Jeff Kirsher
2011-08-29 8:41 ` [net-next 04/10] ixgbe: remove unneeded fdir pb alloc case Jeff Kirsher
` (7 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: Jeff Kirsher @ 2011-08-29 8:41 UTC (permalink / raw)
To: davem; +Cc: John Fastabend, netdev, gospo, Jeff Kirsher
From: John Fastabend <john.r.fastabend@intel.com>
One existing call sites still expect either 4 or 8 traffic
classes to be specified. This fixes this allowing arbitrary
values up to 8 to work as expected.
Signed-off-by: John Fastabend <john.r.fastabend@intel.com>
Tested-by: Ross Brattain <ross.b.brattain@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
index f095a3b..2b1bb60 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
@@ -4481,7 +4481,7 @@ static void ixgbe_get_first_reg_idx(struct ixgbe_adapter *adapter, u8 tc,
break;
case ixgbe_mac_82599EB:
case ixgbe_mac_X540:
- if (num_tcs == 8) {
+ if (num_tcs > 4) {
if (tc < 3) {
*tx = tc << 5;
*rx = tc << 4;
@@ -4492,7 +4492,7 @@ static void ixgbe_get_first_reg_idx(struct ixgbe_adapter *adapter, u8 tc,
*tx = ((tc + 8) << 3);
*rx = tc << 4;
}
- } else if (num_tcs == 4) {
+ } else {
*rx = tc << 5;
switch (tc) {
case 0:
--
1.7.6
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [net-next 04/10] ixgbe: remove unneeded fdir pb alloc case
2011-08-29 8:40 [net-next 00/10][pull request] Intel Wired LAN Driver Update Jeff Kirsher
` (2 preceding siblings ...)
2011-08-29 8:41 ` [net-next 03/10] ixgbe: fixup remaining call sites for arbitrary TCs Jeff Kirsher
@ 2011-08-29 8:41 ` Jeff Kirsher
2011-08-29 8:41 ` [net-next 05/10] ixgbe: consolidate, setup for multiple traffic classes Jeff Kirsher
` (6 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: Jeff Kirsher @ 2011-08-29 8:41 UTC (permalink / raw)
To: davem; +Cc: John Fastabend, netdev, gospo
From: John Fastabend <john.r.fastabend@intel.com>
The packet buffer is correctly allocated by generic pb allocation
path in ixgbe_configure() there is no need to do the allocation
here as well.
Signed-off-by: John Fastabend <john.r.fastabend@intel.com>
Tested-by: Ross Brattain <ross.b.brattain@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
---
drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c | 87 ------------------------
1 files changed, 0 insertions(+), 87 deletions(-)
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c
index 34f30ec..f193fc2 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c
@@ -1108,79 +1108,6 @@ s32 ixgbe_reinit_fdir_tables_82599(struct ixgbe_hw *hw)
}
/**
- * ixgbe_set_fdir_rxpba_82599 - Initialize Flow Director Rx packet buffer
- * @hw: pointer to hardware structure
- * @pballoc: which mode to allocate filters with
- **/
-static s32 ixgbe_set_fdir_rxpba_82599(struct ixgbe_hw *hw, const u32 pballoc)
-{
- u32 fdir_pbsize = hw->mac.rx_pb_size << IXGBE_RXPBSIZE_SHIFT;
- u32 current_rxpbsize = 0;
- int i;
-
- /* reserve space for Flow Director filters */
- switch (pballoc) {
- case IXGBE_FDIR_PBALLOC_256K:
- fdir_pbsize -= 256 << IXGBE_RXPBSIZE_SHIFT;
- break;
- case IXGBE_FDIR_PBALLOC_128K:
- fdir_pbsize -= 128 << IXGBE_RXPBSIZE_SHIFT;
- break;
- case IXGBE_FDIR_PBALLOC_64K:
- fdir_pbsize -= 64 << IXGBE_RXPBSIZE_SHIFT;
- break;
- case IXGBE_FDIR_PBALLOC_NONE:
- default:
- return IXGBE_ERR_PARAM;
- }
-
- /* determine current RX packet buffer size */
- for (i = 0; i < 8; i++)
- current_rxpbsize += IXGBE_READ_REG(hw, IXGBE_RXPBSIZE(i));
-
- /* if there is already room for the filters do nothing */
- if (current_rxpbsize <= fdir_pbsize)
- return 0;
-
- if (current_rxpbsize > hw->mac.rx_pb_size) {
- /*
- * if rxpbsize is greater than max then HW max the Rx buffer
- * sizes are unconfigured or misconfigured since HW default is
- * to give the full buffer to each traffic class resulting in
- * the total size being buffer size 8x actual size
- *
- * This assumes no DCB since the RXPBSIZE registers appear to
- * be unconfigured.
- */
- IXGBE_WRITE_REG(hw, IXGBE_RXPBSIZE(0), fdir_pbsize);
- for (i = 1; i < 8; i++)
- IXGBE_WRITE_REG(hw, IXGBE_RXPBSIZE(i), 0);
- } else {
- /*
- * Since the Rx packet buffer appears to have already been
- * configured we need to shrink each packet buffer by enough
- * to make room for the filters. As such we take each rxpbsize
- * value and multiply it by a fraction representing the size
- * needed over the size we currently have.
- *
- * We need to reduce fdir_pbsize and current_rxpbsize to
- * 1/1024 of their original values in order to avoid
- * overflowing the u32 being used to store rxpbsize.
- */
- fdir_pbsize >>= IXGBE_RXPBSIZE_SHIFT;
- current_rxpbsize >>= IXGBE_RXPBSIZE_SHIFT;
- for (i = 0; i < 8; i++) {
- u32 rxpbsize = IXGBE_READ_REG(hw, IXGBE_RXPBSIZE(i));
- rxpbsize *= fdir_pbsize;
- rxpbsize /= current_rxpbsize;
- IXGBE_WRITE_REG(hw, IXGBE_RXPBSIZE(i), rxpbsize);
- }
- }
-
- return 0;
-}
-
-/**
* ixgbe_fdir_enable_82599 - Initialize Flow Director control registers
* @hw: pointer to hardware structure
* @fdirctrl: value to write to flow director control register
@@ -1227,13 +1154,6 @@ static void ixgbe_fdir_enable_82599(struct ixgbe_hw *hw, u32 fdirctrl)
**/
s32 ixgbe_init_fdir_signature_82599(struct ixgbe_hw *hw, u32 fdirctrl)
{
- s32 err;
-
- /* Before enabling Flow Director, verify the Rx Packet Buffer size */
- err = ixgbe_set_fdir_rxpba_82599(hw, fdirctrl);
- if (err)
- return err;
-
/*
* Continue setup of fdirctrl register bits:
* Move the flexible bytes to use the ethertype - shift 6 words
@@ -1258,13 +1178,6 @@ s32 ixgbe_init_fdir_signature_82599(struct ixgbe_hw *hw, u32 fdirctrl)
**/
s32 ixgbe_init_fdir_perfect_82599(struct ixgbe_hw *hw, u32 fdirctrl)
{
- s32 err;
-
- /* Before enabling Flow Director, verify the Rx Packet Buffer size */
- err = ixgbe_set_fdir_rxpba_82599(hw, fdirctrl);
- if (err)
- return err;
-
/*
* Continue setup of fdirctrl register bits:
* Turn perfect match filtering on
--
1.7.6
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [net-next 05/10] ixgbe: consolidate, setup for multiple traffic classes
2011-08-29 8:40 [net-next 00/10][pull request] Intel Wired LAN Driver Update Jeff Kirsher
` (3 preceding siblings ...)
2011-08-29 8:41 ` [net-next 04/10] ixgbe: remove unneeded fdir pb alloc case Jeff Kirsher
@ 2011-08-29 8:41 ` Jeff Kirsher
2011-08-29 8:41 ` [net-next 06/10] ixgbe: PFC not cleared on X540 devices Jeff Kirsher
` (5 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: Jeff Kirsher @ 2011-08-29 8:41 UTC (permalink / raw)
To: davem; +Cc: John Fastabend, netdev, gospo, Jeff Kirsher
From: John Fastabend <john.r.fastabend@intel.com>
This consolidates setup code for multiple traffic classes in
the setup_tc routine.
Prep work to allow IEEE DCBX to optimize for number of traffic
classes. Also simplifies code paths.
Signed-off-by: John Fastabend <john.r.fastabend@intel.com>
Tested-by: Ross Brattain <ross.b.brattain@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c | 46 ++---------------------
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 30 +++++++++++---
2 files changed, 27 insertions(+), 49 deletions(-)
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c
index da6d53e..0422e35 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c
@@ -118,49 +118,11 @@ static u8 ixgbe_dcbnl_set_state(struct net_device *netdev, u8 state)
if (!!state != !(adapter->flags & IXGBE_FLAG_DCB_ENABLED))
return err;
- if (state > 0) {
- /* Turn on DCB */
- if (!(adapter->flags & IXGBE_FLAG_MSIX_ENABLED)) {
- e_err(drv, "Enable failed, needs MSI-X\n");
- err = 1;
- goto out;
- }
-
- adapter->flags |= IXGBE_FLAG_DCB_ENABLED;
-
- switch (adapter->hw.mac.type) {
- case ixgbe_mac_82598EB:
- adapter->last_lfc_mode = adapter->hw.fc.current_mode;
- adapter->hw.fc.requested_mode = ixgbe_fc_none;
- break;
- case ixgbe_mac_82599EB:
- case ixgbe_mac_X540:
- adapter->flags &= ~IXGBE_FLAG_FDIR_HASH_CAPABLE;
- break;
- default:
- break;
- }
-
- ixgbe_setup_tc(netdev, MAX_TRAFFIC_CLASS);
- } else {
- /* Turn off DCB */
- adapter->hw.fc.requested_mode = adapter->last_lfc_mode;
- adapter->temp_dcb_cfg.pfc_mode_enable = false;
- adapter->dcb_cfg.pfc_mode_enable = false;
- adapter->flags &= ~IXGBE_FLAG_DCB_ENABLED;
- switch (adapter->hw.mac.type) {
- case ixgbe_mac_82599EB:
- case ixgbe_mac_X540:
- if (!(adapter->flags & IXGBE_FLAG_FDIR_PERFECT_CAPABLE))
- adapter->flags |= IXGBE_FLAG_FDIR_HASH_CAPABLE;
- break;
- default:
- break;
- }
- ixgbe_setup_tc(netdev, 0);
- }
+ if (state > 0)
+ err = ixgbe_setup_tc(netdev, MAX_TRAFFIC_CLASS);
+ else
+ err = ixgbe_setup_tc(netdev, 0);
-out:
return err;
}
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
index 2b1bb60..3932cd0 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
@@ -7065,11 +7065,11 @@ int ixgbe_setup_tc(struct net_device *dev, u8 tc)
struct ixgbe_adapter *adapter = netdev_priv(dev);
struct ixgbe_hw *hw = &adapter->hw;
- /* If DCB is anabled do not remove traffic classes, multiple
- * traffic classes are required to implement DCB
- */
- if (!tc && (adapter->flags & IXGBE_FLAG_DCB_ENABLED))
- return 0;
+ /* Multiple traffic classes requires multiple queues */
+ if (!(adapter->flags & IXGBE_FLAG_MSIX_ENABLED)) {
+ e_err(drv, "Enable failed, needs MSI-X\n");
+ return -EINVAL;
+ }
/* Hardware supports up to 8 traffic classes */
if (tc > MAX_TRAFFIC_CLASS ||
@@ -7084,11 +7084,27 @@ int ixgbe_setup_tc(struct net_device *dev, u8 tc)
ixgbe_close(dev);
ixgbe_clear_interrupt_scheme(adapter);
- if (tc)
+ if (tc) {
netdev_set_num_tc(dev, tc);
- else
+ adapter->last_lfc_mode = adapter->hw.fc.current_mode;
+
+ adapter->flags |= IXGBE_FLAG_DCB_ENABLED;
+ adapter->flags &= ~IXGBE_FLAG_FDIR_HASH_CAPABLE;
+
+ if (adapter->hw.mac.type == ixgbe_mac_82598EB)
+ adapter->hw.fc.requested_mode = ixgbe_fc_none;
+ } else {
netdev_reset_tc(dev);
+ adapter->hw.fc.requested_mode = adapter->last_lfc_mode;
+
+ adapter->flags &= ~IXGBE_FLAG_DCB_ENABLED;
+ adapter->flags |= IXGBE_FLAG_FDIR_HASH_CAPABLE;
+
+ adapter->temp_dcb_cfg.pfc_mode_enable = false;
+ adapter->dcb_cfg.pfc_mode_enable = false;
+ }
+
ixgbe_init_interrupt_scheme(adapter);
ixgbe_validate_rtr(adapter, tc);
if (netif_running(dev))
--
1.7.6
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [net-next 06/10] ixgbe: PFC not cleared on X540 devices
2011-08-29 8:40 [net-next 00/10][pull request] Intel Wired LAN Driver Update Jeff Kirsher
` (4 preceding siblings ...)
2011-08-29 8:41 ` [net-next 05/10] ixgbe: consolidate, setup for multiple traffic classes Jeff Kirsher
@ 2011-08-29 8:41 ` Jeff Kirsher
2011-08-29 8:41 ` [net-next 07/10] ixgbe: cleanup feature flags in ixgbe_probe Jeff Kirsher
` (4 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: Jeff Kirsher @ 2011-08-29 8:41 UTC (permalink / raw)
To: davem; +Cc: John Fastabend, netdev, gospo, Jeff Kirsher
From: John Fastabend <john.r.fastabend@intel.com>
X540 devices do not clear PFC before sets. This results in
the device possibly responding to PFC frames that the user
has disabled. Although it would also be wrong for the peer
to be transmitting these frames. Now we clear the register
before set.
Signed-off-by: John Fastabend <john.r.fastabend@intel.com>
Tested-by: Ross Brattain <ross.b.brattain@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_82599.c | 4 +++-
drivers/net/ethernet/intel/ixgbe/ixgbe_type.h | 1 +
2 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_82599.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_82599.c
index ade9820..d64fb87 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_82599.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_82599.c
@@ -252,8 +252,10 @@ s32 ixgbe_dcb_config_pfc_82599(struct ixgbe_hw *hw, u8 pfc_en)
reg &= ~IXGBE_MFLCN_RFCE;
reg |= IXGBE_MFLCN_RPFCE | IXGBE_MFLCN_DPF;
- if (hw->mac.type == ixgbe_mac_X540)
+ if (hw->mac.type == ixgbe_mac_X540) {
+ reg &= ~IXGBE_MFLCN_RPFCE_MASK;
reg |= pfc_en << IXGBE_MFLCN_RPFCE_SHIFT;
+ }
IXGBE_WRITE_REG(hw, IXGBE_MFLCN, reg);
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_type.h b/drivers/net/ethernet/intel/ixgbe/ixgbe_type.h
index e0d970e..9f618ee 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_type.h
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_type.h
@@ -1834,6 +1834,7 @@ enum {
#define IXGBE_MFLCN_DPF 0x00000002 /* Discard Pause Frame */
#define IXGBE_MFLCN_RPFCE 0x00000004 /* Receive Priority FC Enable */
#define IXGBE_MFLCN_RFCE 0x00000008 /* Receive FC Enable */
+#define IXGBE_MFLCN_RPFCE_MASK 0x00000FE0 /* Receive FC Mask */
#define IXGBE_MFLCN_RPFCE_SHIFT 4
--
1.7.6
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [net-next 07/10] ixgbe: cleanup feature flags in ixgbe_probe
2011-08-29 8:40 [net-next 00/10][pull request] Intel Wired LAN Driver Update Jeff Kirsher
` (5 preceding siblings ...)
2011-08-29 8:41 ` [net-next 06/10] ixgbe: PFC not cleared on X540 devices Jeff Kirsher
@ 2011-08-29 8:41 ` Jeff Kirsher
2011-08-29 8:41 ` [net-next 08/10] ixgbe: fix ixgbe_fc_autoneg_fiber bug Jeff Kirsher
` (3 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: Jeff Kirsher @ 2011-08-29 8:41 UTC (permalink / raw)
To: davem; +Cc: Don Skidmore, netdev, gospo, Jeff Kirsher
From: Don Skidmore <donald.c.skidmore@intel.com>
I'm removing NETIF_F_GRO from being initialed in the feature flags during
ixgbe_probe() bases on a comment from Michal Miroslaw
<mirq-linux@rere.qmqm.pl> that it is always set by network code now.
Signed-off-by: Don Skidmore <donald.c.skidmore@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 1 -
1 files changed, 0 insertions(+), 1 deletions(-)
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
index 3932cd0..a30f826 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
@@ -7510,7 +7510,6 @@ static int __devinit ixgbe_probe(struct pci_dev *pdev,
NETIF_F_HW_VLAN_FILTER |
NETIF_F_TSO |
NETIF_F_TSO6 |
- NETIF_F_GRO |
NETIF_F_RXHASH |
NETIF_F_RXCSUM;
--
1.7.6
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [net-next 08/10] ixgbe: fix ixgbe_fc_autoneg_fiber bug
2011-08-29 8:40 [net-next 00/10][pull request] Intel Wired LAN Driver Update Jeff Kirsher
` (6 preceding siblings ...)
2011-08-29 8:41 ` [net-next 07/10] ixgbe: cleanup feature flags in ixgbe_probe Jeff Kirsher
@ 2011-08-29 8:41 ` Jeff Kirsher
2011-08-29 8:41 ` [net-next 09/10] ixgbe: add check for supported modes Jeff Kirsher
` (2 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: Jeff Kirsher @ 2011-08-29 8:41 UTC (permalink / raw)
To: davem; +Cc: Don Skidmore, netdev, gospo, Jeff Kirsher
From: Don Skidmore <donald.c.skidmore@intel.com>
A logic error in ixgbe_fc_autoneg_fiber() that treated a masked u32 as a
boolean would make it so we would never fall hit a error check case. So
now I force the u32 to a boolean value with '!!'.
Signed-off-by: Don Skidmore <donald.c.skidmore@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/ixgbe/ixgbe_common.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c
index fc1375f..90a04e2 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c
@@ -2121,8 +2121,8 @@ static s32 ixgbe_fc_autoneg_fiber(struct ixgbe_hw *hw)
*/
linkstat = IXGBE_READ_REG(hw, IXGBE_PCS1GLSTA);
- if (((linkstat & IXGBE_PCS1GLSTA_AN_COMPLETE) == 0) ||
- ((linkstat & IXGBE_PCS1GLSTA_AN_TIMED_OUT) == 1)) {
+ if ((!!(linkstat & IXGBE_PCS1GLSTA_AN_COMPLETE) == 0) ||
+ (!!(linkstat & IXGBE_PCS1GLSTA_AN_TIMED_OUT) == 1)) {
ret_val = IXGBE_ERR_FC_NOT_NEGOTIATED;
goto out;
}
--
1.7.6
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [net-next 09/10] ixgbe: add check for supported modes
2011-08-29 8:40 [net-next 00/10][pull request] Intel Wired LAN Driver Update Jeff Kirsher
` (7 preceding siblings ...)
2011-08-29 8:41 ` [net-next 08/10] ixgbe: fix ixgbe_fc_autoneg_fiber bug Jeff Kirsher
@ 2011-08-29 8:41 ` Jeff Kirsher
2011-08-29 8:41 ` [net-next 10/10] ixgbe: clear RNBC only for 82598 Jeff Kirsher
2011-08-29 16:26 ` [net-next 00/10][pull request] Intel Wired LAN Driver Update David Miller
10 siblings, 0 replies; 12+ messages in thread
From: Jeff Kirsher @ 2011-08-29 8:41 UTC (permalink / raw)
To: davem; +Cc: Emil Tantilov, netdev, gospo, Jeff Kirsher
From: Emil Tantilov <emil.s.tantilov@intel.com>
When setting advertised speed/duplex with ethtool.
Also cleaned up the comment since we also support 100/F.
Signed-off-by: Emil Tantilov <emil.s.tantilov@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c | 10 +++++++---
1 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
index 82d4244..9c12b35 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
@@ -324,12 +324,16 @@ static int ixgbe_set_settings(struct net_device *netdev,
if ((hw->phy.media_type == ixgbe_media_type_copper) ||
(hw->phy.multispeed_fiber)) {
- /* 10000/copper and 1000/copper must autoneg
- * this function does not support any duplex forcing, but can
- * limit the advertising of the adapter to only 10000 or 1000 */
+ /*
+ * this function does not support duplex forcing, but can
+ * limit the advertising of the adapter to the specified speed
+ */
if (ecmd->autoneg == AUTONEG_DISABLE)
return -EINVAL;
+ if (ecmd->advertising & ~ecmd->supported)
+ return -EINVAL;
+
old = hw->phy.autoneg_advertised;
advertised = 0;
if (ecmd->advertising & ADVERTISED_10000baseT_Full)
--
1.7.6
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [net-next 10/10] ixgbe: clear RNBC only for 82598
2011-08-29 8:40 [net-next 00/10][pull request] Intel Wired LAN Driver Update Jeff Kirsher
` (8 preceding siblings ...)
2011-08-29 8:41 ` [net-next 09/10] ixgbe: add check for supported modes Jeff Kirsher
@ 2011-08-29 8:41 ` Jeff Kirsher
2011-08-29 16:26 ` [net-next 00/10][pull request] Intel Wired LAN Driver Update David Miller
10 siblings, 0 replies; 12+ messages in thread
From: Jeff Kirsher @ 2011-08-29 8:41 UTC (permalink / raw)
To: davem; +Cc: Emil Tantilov, netdev, gospo, Jeff Kirsher
From: Emil Tantilov <emil.s.tantilov@intel.com>
RNBC (0x03FC0) is only for 82598 and has different meaning
on newer HW. Make sure to only clear it for 82598.
Signed-off-by: Emil Tantilov <emil.s.tantilov@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/ixgbe/ixgbe_common.c | 5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c
index 90a04e2..91986af 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c
@@ -225,8 +225,9 @@ s32 ixgbe_clear_hw_cntrs_generic(struct ixgbe_hw *hw)
IXGBE_READ_REG(hw, IXGBE_GORCH);
IXGBE_READ_REG(hw, IXGBE_GOTCL);
IXGBE_READ_REG(hw, IXGBE_GOTCH);
- for (i = 0; i < 8; i++)
- IXGBE_READ_REG(hw, IXGBE_RNBC(i));
+ if (hw->mac.type == ixgbe_mac_82598EB)
+ for (i = 0; i < 8; i++)
+ IXGBE_READ_REG(hw, IXGBE_RNBC(i));
IXGBE_READ_REG(hw, IXGBE_RUC);
IXGBE_READ_REG(hw, IXGBE_RFC);
IXGBE_READ_REG(hw, IXGBE_ROC);
--
1.7.6
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [net-next 00/10][pull request] Intel Wired LAN Driver Update
2011-08-29 8:40 [net-next 00/10][pull request] Intel Wired LAN Driver Update Jeff Kirsher
` (9 preceding siblings ...)
2011-08-29 8:41 ` [net-next 10/10] ixgbe: clear RNBC only for 82598 Jeff Kirsher
@ 2011-08-29 16:26 ` David Miller
10 siblings, 0 replies; 12+ messages in thread
From: David Miller @ 2011-08-29 16:26 UTC (permalink / raw)
To: jeffrey.t.kirsher; +Cc: netdev, gospo
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Mon, 29 Aug 2011 01:40:58 -0700
> The following series contains updates to ixgbe only. Many are cleanup's
> and fixes.
>
> The following are changes since commit 7ac2ed0ceeafa130f85aa947b271b571c68b9e75:
> caif: Remove OOM messages, use kzalloc
> and are available in the git repository at:
> master.kernel.org:/pub/scm/linux/kernel/git/jkirsher/net-next master
Pulled, thanks Jeff.
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2011-08-29 16:27 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-08-29 8:40 [net-next 00/10][pull request] Intel Wired LAN Driver Update Jeff Kirsher
2011-08-29 8:40 ` [net-next 01/10] ixgbe: Add support for setting CC bit when SR-IOV is enabled Jeff Kirsher
2011-08-29 8:41 ` [net-next 02/10] ixgbe: Always tag VLAN tagged packets Jeff Kirsher
2011-08-29 8:41 ` [net-next 03/10] ixgbe: fixup remaining call sites for arbitrary TCs Jeff Kirsher
2011-08-29 8:41 ` [net-next 04/10] ixgbe: remove unneeded fdir pb alloc case Jeff Kirsher
2011-08-29 8:41 ` [net-next 05/10] ixgbe: consolidate, setup for multiple traffic classes Jeff Kirsher
2011-08-29 8:41 ` [net-next 06/10] ixgbe: PFC not cleared on X540 devices Jeff Kirsher
2011-08-29 8:41 ` [net-next 07/10] ixgbe: cleanup feature flags in ixgbe_probe Jeff Kirsher
2011-08-29 8:41 ` [net-next 08/10] ixgbe: fix ixgbe_fc_autoneg_fiber bug Jeff Kirsher
2011-08-29 8:41 ` [net-next 09/10] ixgbe: add check for supported modes Jeff Kirsher
2011-08-29 8:41 ` [net-next 10/10] ixgbe: clear RNBC only for 82598 Jeff Kirsher
2011-08-29 16:26 ` [net-next 00/10][pull request] Intel Wired LAN Driver Update David Miller
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).