* [net-next 00/15][pull request] Intel Wired LAN Driver Updates
@ 2014-05-27 9:12 Jeff Kirsher
2014-05-27 9:12 ` [net-next 01/15] ixgbe: fix linking at 100Mbps on copper devices with MNG FW enabled Jeff Kirsher
` (15 more replies)
0 siblings, 16 replies; 55+ messages in thread
From: Jeff Kirsher @ 2014-05-27 9:12 UTC (permalink / raw)
To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann
This series contains updates to e1000, e1000e, ixgbe and i40evf.
Emil provides a fix for ixgbe so that non-fiber devices with MNG FW enabled
are able to link at 100Mbps.
Jacob provides several changes for ixgbe, most of which are PTP related.
Renames ixgbe_ptp_enable() to ixgbe_ptp_feature_enable() to better reflect
the functions purpose. Extracts the hardware setup logic for the PTP
hardware bits from the ixgbe_ptp_set_ts_config() to enable future work for
the ixgbe_ptp_reset(). Maintain the hwstamp configuration through a reset
and extracts the creation of the PTP clock device from ptp_init() in order
to properly handle a suspend/resume cycle and only calls it if we don't
already have a ptp_clock pointer.
David provides a patch to expend the e1000e driver to turn on unicast
PROMISC when there is failure to write to a shared receive address register.
The fix update_phy_task() for 82579 is expanded to include newer PHYs as well
so that the dev_spec->eee_lp_ability has the correct value when going into
SX states.
Todd provides a e1000e fix an errata for 82574/82583 where it is possible
bad bits are read from SYSTIMH/L so check to see that the time is
incrementing at a reasonable rate and is a multiple of the time incremental
value. Removes a redundant igb PHY power down register write.
Andi Kleen out of lines two write functions for e1000e to save 30k text size.
Tobias Klauser converts the e1000 and i40evf drivers to use the
is_broadcast_ether_addr() and is_multicast_ether_addr().
The following are changes since commit 3bea8eddfebe1c61ea824dd2880d4368791edc1f:
Merge branch 'net-sysfs-docs'
and are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
Andi Kleen (1):
e1000e: Out of line __ew32_prepare/__ew32
David Ertman (3):
e1000e: Failure to write SHRA turns on PROMISC mode
e1000e: Cleanup parenthesis around return value
e1000e: Fix expand setting EEE link info to all affected parts
Emil Tantilov (1):
ixgbe: fix linking at 100Mbps on copper devices with MNG FW enabled
Jacob Keller (6):
ixgbe: rename ixgbe_ptp_enable to ixgbe_ptp_feature_enable
ixgbe: extract the hardware setup from the ixgbe_ptp_set_ts_config
ixgbe: allow ixgbe_ptp_reset to maintain current hwtstamp config
ixgbe: extract PTP clock device from ptp_init
ixgbe: separate the PTP suspend and stop actions
ixgbe: avoid duplicate code in suspend and stop paths
Tobias Klauser (2):
e1000: Use is_broadcast_ether_addr/is_multicast_ether_addr helpers
i40evf: Use is_multicast_ether_addr helper
Todd Fujinaka (2):
e1000e: 82574/82583 TimeSync errata for SYSTIM read
igb: remove redundant PHY power down register write
drivers/net/ethernet/intel/e1000/e1000_hw.c | 4 +-
drivers/net/ethernet/intel/e1000e/80003es2lan.c | 1 +
drivers/net/ethernet/intel/e1000e/82571.c | 1 +
drivers/net/ethernet/intel/e1000e/e1000.h | 33 +----
drivers/net/ethernet/intel/e1000e/hw.h | 3 +-
drivers/net/ethernet/intel/e1000e/ich8lan.c | 61 +++++++--
drivers/net/ethernet/intel/e1000e/mac.c | 9 +-
drivers/net/ethernet/intel/e1000e/mac.h | 3 +-
drivers/net/ethernet/intel/e1000e/netdev.c | 69 +++++++++-
drivers/net/ethernet/intel/i40evf/i40evf_main.c | 2 +-
drivers/net/ethernet/intel/igb/e1000_phy.c | 14 --
drivers/net/ethernet/intel/igb/e1000_phy.h | 1 -
drivers/net/ethernet/intel/ixgbe/ixgbe.h | 1 +
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 29 +++--
drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c | 163 ++++++++++++++++++------
15 files changed, 277 insertions(+), 117 deletions(-)
--
1.9.3
^ permalink raw reply [flat|nested] 55+ messages in thread
* [net-next 01/15] ixgbe: fix linking at 100Mbps on copper devices with MNG FW enabled
2014-05-27 9:12 [net-next 00/15][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
@ 2014-05-27 9:12 ` Jeff Kirsher
2014-05-27 9:12 ` [net-next 02/15] ixgbe: rename ixgbe_ptp_enable to ixgbe_ptp_feature_enable Jeff Kirsher
` (14 subsequent siblings)
15 siblings, 0 replies; 55+ messages in thread
From: Jeff Kirsher @ 2014-05-27 9:12 UTC (permalink / raw)
To: davem; +Cc: Emil Tantilov, netdev, gospo, sassmann, Jeff Kirsher
From: Emil Tantilov <emil.s.tantilov@intel.com>
Driver was calling setup_link to make sure that fiber interfaces with MNG FW
enabled will get link on probe because the laser was most likely turned off.
This prevented non-fiber devices with MNG FW from linking at 100Mbps.
This patch adds a check to only call setup_link for fiber devices.
Reported-and-by: Tony Luck <tony.luck@intel.com>
Signed-off-by: Emil Tantilov <emil.s.tantilov@intel.com>
Tested-by: Tony Luck <tony.luck@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 | 4 ++--
1 file 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 3d66602..cf9956a 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
@@ -8449,8 +8449,8 @@ skip_sriov:
ixgbe_dbg_adapter_init(adapter);
- /* Need link setup for MNG FW, else wait for IXGBE_UP */
- if (ixgbe_mng_enabled(hw) && hw->mac.ops.setup_link)
+ /* setup link for SFP devices with MNG FW, else wait for IXGBE_UP */
+ if (ixgbe_mng_enabled(hw) && ixgbe_is_sfp(hw) && hw->mac.ops.setup_link)
hw->mac.ops.setup_link(hw,
IXGBE_LINK_SPEED_10GB_FULL | IXGBE_LINK_SPEED_1GB_FULL,
true);
--
1.9.3
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [net-next 02/15] ixgbe: rename ixgbe_ptp_enable to ixgbe_ptp_feature_enable
2014-05-27 9:12 [net-next 00/15][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
2014-05-27 9:12 ` [net-next 01/15] ixgbe: fix linking at 100Mbps on copper devices with MNG FW enabled Jeff Kirsher
@ 2014-05-27 9:12 ` Jeff Kirsher
2014-05-27 9:12 ` [net-next 03/15] ixgbe: extract the hardware setup from the ixgbe_ptp_set_ts_config Jeff Kirsher
` (13 subsequent siblings)
15 siblings, 0 replies; 55+ messages in thread
From: Jeff Kirsher @ 2014-05-27 9:12 UTC (permalink / raw)
To: davem; +Cc: Jacob Keller, netdev, gospo, sassmann, Jeff Kirsher
From: Jacob Keller <jacob.e.keller@intel.com>
Since the name ixgbe_ptp_enable could be misconstrued as a function
which enables the whole PTP core, rename this function so that it is
clear the function is for enabling of the extra features such as PPS
signal.
Signed-off-by: Jacob Keller <jacob.e.keller@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_ptp.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c
index 8902ae6..1a88609 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c
@@ -334,7 +334,7 @@ static int ixgbe_ptp_settime(struct ptp_clock_info *ptp,
}
/**
- * ixgbe_ptp_enable
+ * ixgbe_ptp_feature_enable
* @ptp: the ptp clock structure
* @rq: the requested feature to change
* @on: whether to enable or disable the feature
@@ -342,8 +342,8 @@ static int ixgbe_ptp_settime(struct ptp_clock_info *ptp,
* enable (or disable) ancillary features of the phc subsystem.
* our driver only supports the PPS feature on the X540
*/
-static int ixgbe_ptp_enable(struct ptp_clock_info *ptp,
- struct ptp_clock_request *rq, int on)
+static int ixgbe_ptp_feature_enable(struct ptp_clock_info *ptp,
+ struct ptp_clock_request *rq, int on)
{
struct ixgbe_adapter *adapter =
container_of(ptp, struct ixgbe_adapter, ptp_caps);
@@ -851,7 +851,7 @@ void ixgbe_ptp_init(struct ixgbe_adapter *adapter)
adapter->ptp_caps.adjtime = ixgbe_ptp_adjtime;
adapter->ptp_caps.gettime = ixgbe_ptp_gettime;
adapter->ptp_caps.settime = ixgbe_ptp_settime;
- adapter->ptp_caps.enable = ixgbe_ptp_enable;
+ adapter->ptp_caps.enable = ixgbe_ptp_feature_enable;
break;
case ixgbe_mac_82599EB:
snprintf(adapter->ptp_caps.name,
@@ -867,7 +867,7 @@ void ixgbe_ptp_init(struct ixgbe_adapter *adapter)
adapter->ptp_caps.adjtime = ixgbe_ptp_adjtime;
adapter->ptp_caps.gettime = ixgbe_ptp_gettime;
adapter->ptp_caps.settime = ixgbe_ptp_settime;
- adapter->ptp_caps.enable = ixgbe_ptp_enable;
+ adapter->ptp_caps.enable = ixgbe_ptp_feature_enable;
break;
default:
adapter->ptp_clock = NULL;
--
1.9.3
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [net-next 03/15] ixgbe: extract the hardware setup from the ixgbe_ptp_set_ts_config
2014-05-27 9:12 [net-next 00/15][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
2014-05-27 9:12 ` [net-next 01/15] ixgbe: fix linking at 100Mbps on copper devices with MNG FW enabled Jeff Kirsher
2014-05-27 9:12 ` [net-next 02/15] ixgbe: rename ixgbe_ptp_enable to ixgbe_ptp_feature_enable Jeff Kirsher
@ 2014-05-27 9:12 ` Jeff Kirsher
2014-05-27 9:12 ` [net-next 04/15] ixgbe: allow ixgbe_ptp_reset to maintain current hwtstamp config Jeff Kirsher
` (12 subsequent siblings)
15 siblings, 0 replies; 55+ messages in thread
From: Jeff Kirsher @ 2014-05-27 9:12 UTC (permalink / raw)
To: davem; +Cc: Jacob Keller, netdev, gospo, sassmann, Jeff Kirsher
From: Jacob Keller <jacob.e.keller@intel.com>
Currently all of the hardware setup logic for the PTP hardware bits is
buried inside of the ioctl which sets the timestamp configuration. This
makes it hard to use this logic in other places (primarily reset), and
this means we can't restore current timestamp mode upon a MAC reset.
Extracting this logic into a separate function will enable future work
for the ixgbe_ptp_reset function.
Signed-off-by: Jacob Keller <jacob.e.keller@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_ptp.c | 50 ++++++++++++++++++++--------
1 file changed, 36 insertions(+), 14 deletions(-)
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c
index 1a88609..5a75dd5 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c
@@ -570,9 +570,9 @@ int ixgbe_ptp_get_ts_config(struct ixgbe_adapter *adapter, struct ifreq *ifr)
}
/**
- * ixgbe_ptp_set_ts_config - control hardware time stamping
- * @adapter: pointer to adapter struct
- * @ifreq: ioctl data
+ * ixgbe_ptp_set_timestamp_mode - setup the hardware for the requested mode
+ * @adapter: the private ixgbe adapter structure
+ * @config: the hwtstamp configuration requested
*
* Outgoing time stamping can be enabled and disabled. Play nice and
* disable it when requested, although it shouldn't cause any overhead
@@ -590,25 +590,25 @@ int ixgbe_ptp_get_ts_config(struct ixgbe_adapter *adapter, struct ifreq *ifr)
* packets, regardless of the type specified in the register, only use V2
* Event mode. This more accurately tells the user what the hardware is going
* to do anyways.
+ *
+ * Note: this may modify the hwtstamp configuration towards a more general
+ * mode, if required to support the specifically requested mode.
*/
-int ixgbe_ptp_set_ts_config(struct ixgbe_adapter *adapter, struct ifreq *ifr)
+static int ixgbe_ptp_set_timestamp_mode(struct ixgbe_adapter *adapter,
+ struct hwtstamp_config *config)
{
struct ixgbe_hw *hw = &adapter->hw;
- struct hwtstamp_config config;
u32 tsync_tx_ctl = IXGBE_TSYNCTXCTL_ENABLED;
u32 tsync_rx_ctl = IXGBE_TSYNCRXCTL_ENABLED;
u32 tsync_rx_mtrl = PTP_EV_PORT << 16;
bool is_l2 = false;
u32 regval;
- if (copy_from_user(&config, ifr->ifr_data, sizeof(config)))
- return -EFAULT;
-
/* reserved for future extensions */
- if (config.flags)
+ if (config->flags)
return -EINVAL;
- switch (config.tx_type) {
+ switch (config->tx_type) {
case HWTSTAMP_TX_OFF:
tsync_tx_ctl = 0;
case HWTSTAMP_TX_ON:
@@ -617,7 +617,7 @@ int ixgbe_ptp_set_ts_config(struct ixgbe_adapter *adapter, struct ifreq *ifr)
return -ERANGE;
}
- switch (config.rx_filter) {
+ switch (config->rx_filter) {
case HWTSTAMP_FILTER_NONE:
tsync_rx_ctl = 0;
tsync_rx_mtrl = 0;
@@ -641,7 +641,7 @@ int ixgbe_ptp_set_ts_config(struct ixgbe_adapter *adapter, struct ifreq *ifr)
case HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ:
tsync_rx_ctl |= IXGBE_TSYNCRXCTL_TYPE_EVENT_V2;
is_l2 = true;
- config.rx_filter = HWTSTAMP_FILTER_PTP_V2_EVENT;
+ config->rx_filter = HWTSTAMP_FILTER_PTP_V2_EVENT;
break;
case HWTSTAMP_FILTER_PTP_V1_L4_EVENT:
case HWTSTAMP_FILTER_ALL:
@@ -652,7 +652,7 @@ int ixgbe_ptp_set_ts_config(struct ixgbe_adapter *adapter, struct ifreq *ifr)
* Delay_Req messages and hardware does not support
* timestamping all packets => return error
*/
- config.rx_filter = HWTSTAMP_FILTER_NONE;
+ config->rx_filter = HWTSTAMP_FILTER_NONE;
return -ERANGE;
}
@@ -671,7 +671,6 @@ int ixgbe_ptp_set_ts_config(struct ixgbe_adapter *adapter, struct ifreq *ifr)
else
IXGBE_WRITE_REG(hw, IXGBE_ETQF(IXGBE_ETQF_FILTER_1588), 0);
-
/* enable/disable TX */
regval = IXGBE_READ_REG(hw, IXGBE_TSYNCTXCTL);
regval &= ~IXGBE_TSYNCTXCTL_ENABLED;
@@ -693,6 +692,29 @@ int ixgbe_ptp_set_ts_config(struct ixgbe_adapter *adapter, struct ifreq *ifr)
regval = IXGBE_READ_REG(hw, IXGBE_TXSTMPH);
regval = IXGBE_READ_REG(hw, IXGBE_RXSTMPH);
+ return 0;
+}
+
+/**
+ * ixgbe_ptp_set_ts_config - user entry point for timestamp mode
+ * @adapter: pointer to adapter struct
+ * @ifreq: ioctl data
+ *
+ * Set hardware to requested mode. If unsupported, return an error with no
+ * changes. Otherwise, store the mode for future reference.
+ */
+int ixgbe_ptp_set_ts_config(struct ixgbe_adapter *adapter, struct ifreq *ifr)
+{
+ struct hwtstamp_config config;
+ int err;
+
+ if (copy_from_user(&config, ifr->ifr_data, sizeof(config)))
+ return -EFAULT;
+
+ err = ixgbe_ptp_set_timestamp_mode(adapter, &config);
+ if (err)
+ return err;
+
/* save these settings for future reference */
memcpy(&adapter->tstamp_config, &config,
sizeof(adapter->tstamp_config));
--
1.9.3
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [net-next 04/15] ixgbe: allow ixgbe_ptp_reset to maintain current hwtstamp config
2014-05-27 9:12 [net-next 00/15][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (2 preceding siblings ...)
2014-05-27 9:12 ` [net-next 03/15] ixgbe: extract the hardware setup from the ixgbe_ptp_set_ts_config Jeff Kirsher
@ 2014-05-27 9:12 ` Jeff Kirsher
2014-05-27 9:12 ` [net-next 05/15] ixgbe: extract PTP clock device from ptp_init Jeff Kirsher
` (11 subsequent siblings)
15 siblings, 0 replies; 55+ messages in thread
From: Jeff Kirsher @ 2014-05-27 9:12 UTC (permalink / raw)
To: davem; +Cc: Jacob Keller, netdev, gospo, sassmann, Jeff Kirsher
From: Jacob Keller <jacob.e.keller@intel.com>
Rather than clearing the hwtstamp configuration, we should use the known
configuration requested by the user and call the function which has now
been separated from the ioctl. This means that after a reset, the
timestamp mode will be maintained rather than lost. We still can't
maintain the clock value, however.
Signed-off-by: Jacob Keller <jacob.e.keller@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_ptp.c | 16 +++++++++++-----
1 file changed, 11 insertions(+), 5 deletions(-)
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c
index 5a75dd5..9d329f5 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c
@@ -812,9 +812,13 @@ void ixgbe_ptp_start_cyclecounter(struct ixgbe_adapter *adapter)
* ixgbe_ptp_reset
* @adapter: the ixgbe private board structure
*
- * When the MAC resets, all timesync features are reset. This function should be
- * called to re-enable the PTP clock structure. It will re-init the timecounter
- * structure based on the kernel time as well as setup the cycle counter data.
+ * When the MAC resets, all the hardware bits for timesync are reset. This
+ * function is used to re-enable the device for PTP based on current settings.
+ * We do lose the current clock time, so just reset the cyclecounter to the
+ * system real clock time.
+ *
+ * This function will maintain hwtstamp_config settings, and resets the SDP
+ * output if it was enabled.
*/
void ixgbe_ptp_reset(struct ixgbe_adapter *adapter)
{
@@ -826,8 +830,8 @@ void ixgbe_ptp_reset(struct ixgbe_adapter *adapter)
IXGBE_WRITE_REG(hw, IXGBE_SYSTIMH, 0x00000000);
IXGBE_WRITE_FLUSH(hw);
- /* Reset the saved tstamp_config */
- memset(&adapter->tstamp_config, 0, sizeof(adapter->tstamp_config));
+ /* reset the hardware timestamping mode */
+ ixgbe_ptp_set_timestamp_mode(adapter, &adapter->tstamp_config);
ixgbe_ptp_start_cyclecounter(adapter);
@@ -907,6 +911,8 @@ void ixgbe_ptp_init(struct ixgbe_adapter *adapter)
} else
e_dev_info("registered PHC device on %s\n", netdev->name);
+ adapter->tstamp_config.rx_filter = HWTSTAMP_FILTER_NONE;
+ adapter->tstamp_config.tx_type = HWTSTAMP_TX_OFF;
ixgbe_ptp_reset(adapter);
/* enter the IXGBE_PTP_RUNNING state */
--
1.9.3
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [net-next 05/15] ixgbe: extract PTP clock device from ptp_init
2014-05-27 9:12 [net-next 00/15][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (3 preceding siblings ...)
2014-05-27 9:12 ` [net-next 04/15] ixgbe: allow ixgbe_ptp_reset to maintain current hwtstamp config Jeff Kirsher
@ 2014-05-27 9:12 ` Jeff Kirsher
2014-05-27 9:12 ` [net-next 06/15] ixgbe: separate the PTP suspend and stop actions Jeff Kirsher
` (10 subsequent siblings)
15 siblings, 0 replies; 55+ messages in thread
From: Jeff Kirsher @ 2014-05-27 9:12 UTC (permalink / raw)
To: davem; +Cc: Jacob Keller, netdev, gospo, sassmann, Jeff Kirsher
From: Jacob Keller <jacob.e.keller@intel.com>
In order to properly handle a suspend/resume cycle, we cannot destroy
the PTP clock device. As part of this, we should only re-create the
device on first initialization. After a resume, when ixgbe_ptp_init is
called, we won't create a new clock, and we will use the old clock
device. To that end, this patch extracts the clock creation out of
ptp_init, and only calls it if we don't already have a ptp_clock
pointer.
Signed-off-by: Jacob Keller <jacob.e.keller@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_ptp.c | 56 +++++++++++++++++++++++-----
1 file changed, 47 insertions(+), 9 deletions(-)
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c
index 9d329f5..9df7e57 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c
@@ -851,16 +851,23 @@ void ixgbe_ptp_reset(struct ixgbe_adapter *adapter)
}
/**
- * ixgbe_ptp_init
+ * ixgbe_ptp_create_clock
* @adapter: the ixgbe private adapter structure
*
- * This function performs the required steps for enabling ptp
- * support. If ptp support has already been loaded it simply calls the
- * cyclecounter init routine and exits.
+ * This function performs setup of the user entry point function table and
+ * initializes the PTP clock device, which is used to access the clock-like
+ * features of the PTP core. It will be called by ixgbe_ptp_init, only if
+ * there isn't already a clock device (such as after a suspend/resume cycle,
+ * where the clock device wasn't destroyed).
*/
-void ixgbe_ptp_init(struct ixgbe_adapter *adapter)
+static int ixgbe_ptp_create_clock(struct ixgbe_adapter *adapter)
{
struct net_device *netdev = adapter->netdev;
+ long err;
+
+ /* do nothing if we already have a clock device */
+ if (!IS_ERR_OR_NULL(adapter->ptp_clock))
+ return 0;
switch (adapter->hw.mac.type) {
case ixgbe_mac_X540:
@@ -897,22 +904,53 @@ void ixgbe_ptp_init(struct ixgbe_adapter *adapter)
break;
default:
adapter->ptp_clock = NULL;
- return;
+ return -EOPNOTSUPP;
}
- spin_lock_init(&adapter->tmreg_lock);
- INIT_WORK(&adapter->ptp_tx_work, ixgbe_ptp_tx_hwtstamp_work);
-
adapter->ptp_clock = ptp_clock_register(&adapter->ptp_caps,
&adapter->pdev->dev);
if (IS_ERR(adapter->ptp_clock)) {
+ err = PTR_ERR(adapter->ptp_clock);
adapter->ptp_clock = NULL;
e_dev_err("ptp_clock_register failed\n");
+ return err;
} else
e_dev_info("registered PHC device on %s\n", netdev->name);
+ /* set default timestamp mode to disabled here. We do this in
+ * create_clock instead of init, because we don't want to override the
+ * previous settings during a resume cycle.
+ */
adapter->tstamp_config.rx_filter = HWTSTAMP_FILTER_NONE;
adapter->tstamp_config.tx_type = HWTSTAMP_TX_OFF;
+
+ return 0;
+}
+
+/**
+ * ixgbe_ptp_init
+ * @adapter: the ixgbe private adapter structure
+ *
+ * This function performs the required steps for enabling PTP
+ * support. If PTP support has already been loaded it simply calls the
+ * cyclecounter init routine and exits.
+ */
+void ixgbe_ptp_init(struct ixgbe_adapter *adapter)
+{
+ /* initialize the spin lock first since we can't control when a user
+ * will call the entry functions once we have initialized the clock
+ * device
+ */
+ spin_lock_init(&adapter->tmreg_lock);
+
+ /* obtain a PTP device, or re-use an existing device */
+ if (ixgbe_ptp_create_clock(adapter))
+ return;
+
+ /* we have a clock so we can initialize work now */
+ INIT_WORK(&adapter->ptp_tx_work, ixgbe_ptp_tx_hwtstamp_work);
+
+ /* reset the PTP related hardware bits */
ixgbe_ptp_reset(adapter);
/* enter the IXGBE_PTP_RUNNING state */
--
1.9.3
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [net-next 06/15] ixgbe: separate the PTP suspend and stop actions
2014-05-27 9:12 [net-next 00/15][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (4 preceding siblings ...)
2014-05-27 9:12 ` [net-next 05/15] ixgbe: extract PTP clock device from ptp_init Jeff Kirsher
@ 2014-05-27 9:12 ` Jeff Kirsher
2014-05-27 9:12 ` [net-next 07/15] ixgbe: avoid duplicate code in suspend and stop paths Jeff Kirsher
` (9 subsequent siblings)
15 siblings, 0 replies; 55+ messages in thread
From: Jeff Kirsher @ 2014-05-27 9:12 UTC (permalink / raw)
To: davem; +Cc: Jacob Keller, netdev, gospo, sassmann, Jeff Kirsher
From: Jacob Keller <jacob.e.keller@intel.com>
Since we are adding proper support for suspend of PTP, extract out of
ixgbe_ptp_stop those things relevant to suspend. Then, have
ixgbe_ptp_stop call ixgbe_ptp_suspend. The next patch in the series will
have ixgbe_ptp_suspend called from the ixgbe_suspend path.
Signed-off-by: Jacob Keller <jacob.e.keller@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.h | 1 +
drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c | 31 +++++++++++++++++++++-------
2 files changed, 25 insertions(+), 7 deletions(-)
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe.h b/drivers/net/ethernet/intel/ixgbe/ixgbe.h
index 4c0203b..ac9f214 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe.h
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe.h
@@ -957,6 +957,7 @@ static inline struct netdev_queue *txring_txq(const struct ixgbe_ring *ring)
}
void ixgbe_ptp_init(struct ixgbe_adapter *adapter);
+void ixgbe_ptp_suspend(struct ixgbe_adapter *adapter);
void ixgbe_ptp_stop(struct ixgbe_adapter *adapter);
void ixgbe_ptp_overflow_check(struct ixgbe_adapter *adapter);
void ixgbe_ptp_rx_hang(struct ixgbe_adapter *adapter);
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c
index 9df7e57..b3266b7 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c
@@ -960,28 +960,45 @@ void ixgbe_ptp_init(struct ixgbe_adapter *adapter)
}
/**
- * ixgbe_ptp_stop - disable ptp device and stop the overflow check
- * @adapter: pointer to adapter struct
+ * ixgbe_ptp_suspend - stop PTP work items
+ * @ adapter: pointer to adapter struct
*
- * this function stops the ptp support, and cancels the delayed work.
+ * this function suspends PTP activity, and prevents more PTP work from being
+ * generated, but does not destroy the PTP clock device.
*/
-void ixgbe_ptp_stop(struct ixgbe_adapter *adapter)
+void ixgbe_ptp_suspend(struct ixgbe_adapter *adapter)
{
/* Leave the IXGBE_PTP_RUNNING state. */
if (!test_and_clear_bit(__IXGBE_PTP_RUNNING, &adapter->state))
return;
- /* stop the PPS signal */
- adapter->flags2 &= ~IXGBE_FLAG2_PTP_PPS_ENABLED;
- ixgbe_ptp_setup_sdp(adapter);
+ /* since this might be called in suspend, we don't clear the state,
+ * but simply reset the auxiliary PPS signal control register
+ */
+ IXGBE_WRITE_REG(&adapter->hw, IXGBE_TSAUXC, 0x0);
+ /* ensure that we cancel any pending PTP Tx work item in progress */
cancel_work_sync(&adapter->ptp_tx_work);
if (adapter->ptp_tx_skb) {
dev_kfree_skb_any(adapter->ptp_tx_skb);
adapter->ptp_tx_skb = NULL;
clear_bit_unlock(__IXGBE_PTP_TX_IN_PROGRESS, &adapter->state);
}
+}
+
+/**
+ * ixgbe_ptp_stop - close the PTP device
+ * @adapter: pointer to adapter struct
+ *
+ * completely destroy the PTP device, should only be called when the device is
+ * being fully closed.
+ */
+void ixgbe_ptp_stop(struct ixgbe_adapter *adapter)
+{
+ /* first, suspend PTP activity */
+ ixgbe_ptp_suspend(adapter);
+ /* disable the PTP clock device */
if (adapter->ptp_clock) {
ptp_clock_unregister(adapter->ptp_clock);
adapter->ptp_clock = NULL;
--
1.9.3
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [net-next 07/15] ixgbe: avoid duplicate code in suspend and stop paths
2014-05-27 9:12 [net-next 00/15][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (5 preceding siblings ...)
2014-05-27 9:12 ` [net-next 06/15] ixgbe: separate the PTP suspend and stop actions Jeff Kirsher
@ 2014-05-27 9:12 ` Jeff Kirsher
2014-05-27 9:12 ` [net-next 08/15] e1000e: Failure to write SHRA turns on PROMISC mode Jeff Kirsher
` (8 subsequent siblings)
15 siblings, 0 replies; 55+ messages in thread
From: Jeff Kirsher @ 2014-05-27 9:12 UTC (permalink / raw)
To: davem; +Cc: Jacob Keller, netdev, gospo, sassmann, Jakub Kicinski,
Jeff Kirsher
From: Jacob Keller <jacob.e.keller@intel.com>
Resume path calls .open but suspend path cannot call .stop because
fdirs should not be freed and control over hardware should not be
released until WoL is configured. To avoid having to duplicate all
changes made in .stop on suspend path split out part of .stop that
is relevant during suspend and call it from .stop and during suspend.
This fix also ensures that ixgbe_ptp_suspend is called during the
suspend path, and helps avoid similar errors. We can't call
ixgbe_ptp_stop, since it will free the PTP clock device, which we
shouldn't be doing during a suspend path.
Signed-off-by: Jakub Kicinski <kubakici@wp.pl>
Signed-off-by: Jacob Keller <jacob.e.keller@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 | 25 ++++++++++++++-----------
1 file changed, 14 insertions(+), 11 deletions(-)
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
index cf9956a..ea11e2c 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
@@ -5659,6 +5659,17 @@ err_setup_tx:
return err;
}
+static void ixgbe_close_suspend(struct ixgbe_adapter *adapter)
+{
+ ixgbe_ptp_suspend(adapter);
+
+ ixgbe_down(adapter);
+ ixgbe_free_irq(adapter);
+
+ ixgbe_free_all_tx_resources(adapter);
+ ixgbe_free_all_rx_resources(adapter);
+}
+
/**
* ixgbe_close - Disables a network interface
* @netdev: network interface device structure
@@ -5676,14 +5687,10 @@ static int ixgbe_close(struct net_device *netdev)
ixgbe_ptp_stop(adapter);
- ixgbe_down(adapter);
- ixgbe_free_irq(adapter);
+ ixgbe_close_suspend(adapter);
ixgbe_fdir_filter_exit(adapter);
- ixgbe_free_all_tx_resources(adapter);
- ixgbe_free_all_rx_resources(adapter);
-
ixgbe_release_hw_control(adapter);
return 0;
@@ -5750,12 +5757,8 @@ static int __ixgbe_shutdown(struct pci_dev *pdev, bool *enable_wake)
netif_device_detach(netdev);
rtnl_lock();
- if (netif_running(netdev)) {
- ixgbe_down(adapter);
- ixgbe_free_irq(adapter);
- ixgbe_free_all_tx_resources(adapter);
- ixgbe_free_all_rx_resources(adapter);
- }
+ if (netif_running(netdev))
+ ixgbe_close_suspend(adapter);
rtnl_unlock();
ixgbe_clear_interrupt_scheme(adapter);
--
1.9.3
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [net-next 08/15] e1000e: Failure to write SHRA turns on PROMISC mode
2014-05-27 9:12 [net-next 00/15][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (6 preceding siblings ...)
2014-05-27 9:12 ` [net-next 07/15] ixgbe: avoid duplicate code in suspend and stop paths Jeff Kirsher
@ 2014-05-27 9:12 ` Jeff Kirsher
2014-05-28 14:06 ` Vlad Yasevich
2014-05-27 9:12 ` [net-next 09/15] e1000e: 82574/82583 TimeSync errata for SYSTIM read Jeff Kirsher
` (7 subsequent siblings)
15 siblings, 1 reply; 55+ messages in thread
From: Jeff Kirsher @ 2014-05-27 9:12 UTC (permalink / raw)
To: davem; +Cc: David Ertman, netdev, gospo, sassmann, Vlad Yasevich,
Jeff Kirsher
From: David Ertman <davidx.m.ertman@intel.com>
Previously, the check to turn on promiscuous mode only took into account
the total number of SHared Receive Address (SHRA) registers and if the
request was for a register within that range. It is possible that the
Management Engine might have locked a number of SHRA and not allowed a
new address to be written to the requested register.
Add a function to determine the number of unlocked SHRA registers. Then
determine if the number of registers available is sufficient for our needs,
if not then return -ENOMEM so that UNICAST PROMISC mode is activated.
Since the method by which ME claims SHRA registers is non-deterministic,
also add a return value to the function attempting to write an address
to a SHRA, and return a -E1000_ERR_CONFIG if the write fails. The error
will be passed up the function chain and allow the driver to also set
UNICAST PROMISC when this happens.
Cc: Vlad Yasevich <vyasevic@redhat.com>
Signed-off-by: Dave Ertman <davidx.m.ertman@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/e1000e/80003es2lan.c | 1 +
drivers/net/ethernet/intel/e1000e/82571.c | 1 +
drivers/net/ethernet/intel/e1000e/hw.h | 3 +-
drivers/net/ethernet/intel/e1000e/ich8lan.c | 57 +++++++++++++++++++++----
drivers/net/ethernet/intel/e1000e/mac.c | 9 +++-
drivers/net/ethernet/intel/e1000e/mac.h | 3 +-
drivers/net/ethernet/intel/e1000e/netdev.c | 10 ++++-
7 files changed, 71 insertions(+), 13 deletions(-)
diff --git a/drivers/net/ethernet/intel/e1000e/80003es2lan.c b/drivers/net/ethernet/intel/e1000e/80003es2lan.c
index a5f6b11..08f22f3 100644
--- a/drivers/net/ethernet/intel/e1000e/80003es2lan.c
+++ b/drivers/net/ethernet/intel/e1000e/80003es2lan.c
@@ -1365,6 +1365,7 @@ static const struct e1000_mac_operations es2_mac_ops = {
.setup_led = e1000e_setup_led_generic,
.config_collision_dist = e1000e_config_collision_dist_generic,
.rar_set = e1000e_rar_set_generic,
+ .rar_get_count = e1000e_rar_get_count_generic,
};
static const struct e1000_phy_operations es2_phy_ops = {
diff --git a/drivers/net/ethernet/intel/e1000e/82571.c b/drivers/net/ethernet/intel/e1000e/82571.c
index e0aa7f1..218481e 100644
--- a/drivers/net/ethernet/intel/e1000e/82571.c
+++ b/drivers/net/ethernet/intel/e1000e/82571.c
@@ -1896,6 +1896,7 @@ static const struct e1000_mac_operations e82571_mac_ops = {
.config_collision_dist = e1000e_config_collision_dist_generic,
.read_mac_addr = e1000_read_mac_addr_82571,
.rar_set = e1000e_rar_set_generic,
+ .rar_get_count = e1000e_rar_get_count_generic,
};
static const struct e1000_phy_operations e82_phy_ops_igp = {
diff --git a/drivers/net/ethernet/intel/e1000e/hw.h b/drivers/net/ethernet/intel/e1000e/hw.h
index 6b3de5f..72f5475 100644
--- a/drivers/net/ethernet/intel/e1000e/hw.h
+++ b/drivers/net/ethernet/intel/e1000e/hw.h
@@ -469,8 +469,9 @@ struct e1000_mac_operations {
s32 (*setup_led)(struct e1000_hw *);
void (*write_vfta)(struct e1000_hw *, u32, u32);
void (*config_collision_dist)(struct e1000_hw *);
- void (*rar_set)(struct e1000_hw *, u8 *, u32);
+ int (*rar_set)(struct e1000_hw *, u8 *, u32);
s32 (*read_mac_addr)(struct e1000_hw *);
+ u32 (*rar_get_count)(struct e1000_hw *);
};
/* When to use various PHY register access functions:
diff --git a/drivers/net/ethernet/intel/e1000e/ich8lan.c b/drivers/net/ethernet/intel/e1000e/ich8lan.c
index 5f55395..b75862d 100644
--- a/drivers/net/ethernet/intel/e1000e/ich8lan.c
+++ b/drivers/net/ethernet/intel/e1000e/ich8lan.c
@@ -139,8 +139,9 @@ static s32 e1000_k1_gig_workaround_hv(struct e1000_hw *hw, bool link);
static s32 e1000_set_mdio_slow_mode_hv(struct e1000_hw *hw);
static bool e1000_check_mng_mode_ich8lan(struct e1000_hw *hw);
static bool e1000_check_mng_mode_pchlan(struct e1000_hw *hw);
-static void e1000_rar_set_pch2lan(struct e1000_hw *hw, u8 *addr, u32 index);
-static void e1000_rar_set_pch_lpt(struct e1000_hw *hw, u8 *addr, u32 index);
+static int e1000_rar_set_pch2lan(struct e1000_hw *hw, u8 *addr, u32 index);
+static int e1000_rar_set_pch_lpt(struct e1000_hw *hw, u8 *addr, u32 index);
+static u32 e1000_rar_get_count_pch_lpt(struct e1000_hw *hw);
static s32 e1000_k1_workaround_lv(struct e1000_hw *hw);
static void e1000_gate_hw_phy_config_ich8lan(struct e1000_hw *hw, bool gate);
static s32 e1000_disable_ulp_lpt_lp(struct e1000_hw *hw, bool force);
@@ -704,6 +705,7 @@ static s32 e1000_init_mac_params_ich8lan(struct e1000_hw *hw)
mac->ops.rar_set = e1000_rar_set_pch_lpt;
mac->ops.setup_physical_interface =
e1000_setup_copper_link_pch_lpt;
+ mac->ops.rar_get_count = e1000_rar_get_count_pch_lpt;
}
/* Enable PCS Lock-loss workaround for ICH8 */
@@ -1668,7 +1670,7 @@ static bool e1000_check_mng_mode_pchlan(struct e1000_hw *hw)
* contain the MAC address but RAR[1-6] are reserved for manageability (ME).
* Use SHRA[0-3] in place of those reserved for ME.
**/
-static void e1000_rar_set_pch2lan(struct e1000_hw *hw, u8 *addr, u32 index)
+static int e1000_rar_set_pch2lan(struct e1000_hw *hw, u8 *addr, u32 index)
{
u32 rar_low, rar_high;
@@ -1690,7 +1692,7 @@ static void e1000_rar_set_pch2lan(struct e1000_hw *hw, u8 *addr, u32 index)
e1e_flush();
ew32(RAH(index), rar_high);
e1e_flush();
- return;
+ return 0;
}
/* RAR[1-6] are owned by manageability. Skip those and program the
@@ -1713,7 +1715,7 @@ static void e1000_rar_set_pch2lan(struct e1000_hw *hw, u8 *addr, u32 index)
/* verify the register updates */
if ((er32(SHRAL(index - 1)) == rar_low) &&
(er32(SHRAH(index - 1)) == rar_high))
- return;
+ return 0;
e_dbg("SHRA[%d] might be locked by ME - FWSM=0x%8.8x\n",
(index - 1), er32(FWSM));
@@ -1721,6 +1723,43 @@ static void e1000_rar_set_pch2lan(struct e1000_hw *hw, u8 *addr, u32 index)
out:
e_dbg("Failed to write receive address at index %d\n", index);
+ return -E1000_ERR_CONFIG;
+}
+
+/**
+ * e1000_rar_get_count_pch_lpt - Get the number of available SHRA
+ * @hw: pointer to the HW structure
+ *
+ * Get the number of available receive registers that the Host can
+ * program. SHRA[0-10] are the shared receive address registers
+ * that are shared between the Host and manageability engine (ME).
+ * ME can reserve any number of addresses and the host needs to be
+ * able to tell how many available registers it has access to.
+ **/
+static u32 e1000_rar_get_count_pch_lpt(struct e1000_hw *hw)
+{
+ u32 wlock_mac;
+ u32 num_entries;
+
+ wlock_mac = er32(FWSM) & E1000_FWSM_WLOCK_MAC_MASK;
+ wlock_mac >>= E1000_FWSM_WLOCK_MAC_SHIFT;
+
+ switch (wlock_mac) {
+ case 0:
+ /* All SHRA[0..10] and RAR[0] available */
+ num_entries = hw->mac.rar_entry_count;
+ break;
+ case 1:
+ /* Only RAR[0] available */
+ num_entries = 1;
+ break;
+ default:
+ /* SHRA[0..(wlock_mac - 1)] available + RAR[0] */
+ num_entries = wlock_mac + 1;
+ break;
+ }
+
+ return num_entries;
}
/**
@@ -1734,7 +1773,7 @@ out:
* contain the MAC address. SHRA[0-10] are the shared receive address
* registers that are shared between the Host and manageability engine (ME).
**/
-static void e1000_rar_set_pch_lpt(struct e1000_hw *hw, u8 *addr, u32 index)
+static int e1000_rar_set_pch_lpt(struct e1000_hw *hw, u8 *addr, u32 index)
{
u32 rar_low, rar_high;
u32 wlock_mac;
@@ -1756,7 +1795,7 @@ static void e1000_rar_set_pch_lpt(struct e1000_hw *hw, u8 *addr, u32 index)
e1e_flush();
ew32(RAH(index), rar_high);
e1e_flush();
- return;
+ return 0;
}
/* The manageability engine (ME) can lock certain SHRAR registers that
@@ -1788,12 +1827,13 @@ static void e1000_rar_set_pch_lpt(struct e1000_hw *hw, u8 *addr, u32 index)
/* verify the register updates */
if ((er32(SHRAL_PCH_LPT(index - 1)) == rar_low) &&
(er32(SHRAH_PCH_LPT(index - 1)) == rar_high))
- return;
+ return 0;
}
}
out:
e_dbg("Failed to write receive address at index %d\n", index);
+ return -E1000_ERR_CONFIG;
}
/**
@@ -4977,6 +5017,7 @@ static const struct e1000_mac_operations ich8_mac_ops = {
/* id_led_init dependent on mac type */
.config_collision_dist = e1000e_config_collision_dist_generic,
.rar_set = e1000e_rar_set_generic,
+ .rar_get_count = e1000e_rar_get_count_generic,
};
static const struct e1000_phy_operations ich8_phy_ops = {
diff --git a/drivers/net/ethernet/intel/e1000e/mac.c b/drivers/net/ethernet/intel/e1000e/mac.c
index baa0a46..8c386f3a 100644
--- a/drivers/net/ethernet/intel/e1000e/mac.c
+++ b/drivers/net/ethernet/intel/e1000e/mac.c
@@ -211,6 +211,11 @@ s32 e1000_check_alt_mac_addr_generic(struct e1000_hw *hw)
return 0;
}
+u32 e1000e_rar_get_count_generic(struct e1000_hw *hw)
+{
+ return hw->mac.rar_entry_count;
+}
+
/**
* e1000e_rar_set_generic - Set receive address register
* @hw: pointer to the HW structure
@@ -220,7 +225,7 @@ s32 e1000_check_alt_mac_addr_generic(struct e1000_hw *hw)
* Sets the receive address array register at index to the address passed
* in by addr.
**/
-void e1000e_rar_set_generic(struct e1000_hw *hw, u8 *addr, u32 index)
+int e1000e_rar_set_generic(struct e1000_hw *hw, u8 *addr, u32 index)
{
u32 rar_low, rar_high;
@@ -244,6 +249,8 @@ void e1000e_rar_set_generic(struct e1000_hw *hw, u8 *addr, u32 index)
e1e_flush();
ew32(RAH(index), rar_high);
e1e_flush();
+
+ return 0;
}
/**
diff --git a/drivers/net/ethernet/intel/e1000e/mac.h b/drivers/net/ethernet/intel/e1000e/mac.h
index 4e81c28..0513d90 100644
--- a/drivers/net/ethernet/intel/e1000e/mac.h
+++ b/drivers/net/ethernet/intel/e1000e/mac.h
@@ -61,7 +61,8 @@ void e1000e_update_adaptive(struct e1000_hw *hw);
void e1000_write_vfta_generic(struct e1000_hw *hw, u32 offset, u32 value);
void e1000_set_lan_id_multi_port_pcie(struct e1000_hw *hw);
-void e1000e_rar_set_generic(struct e1000_hw *hw, u8 *addr, u32 index);
+u32 e1000e_rar_get_count_generic(struct e1000_hw *hw);
+int e1000e_rar_set_generic(struct e1000_hw *hw, u8 *addr, u32 index);
void e1000e_config_collision_dist_generic(struct e1000_hw *hw);
#endif
diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
index e4207ef..6084e6b 100644
--- a/drivers/net/ethernet/intel/e1000e/netdev.c
+++ b/drivers/net/ethernet/intel/e1000e/netdev.c
@@ -3311,9 +3311,11 @@ static int e1000e_write_uc_addr_list(struct net_device *netdev)
{
struct e1000_adapter *adapter = netdev_priv(netdev);
struct e1000_hw *hw = &adapter->hw;
- unsigned int rar_entries = hw->mac.rar_entry_count;
+ unsigned int rar_entries;
int count = 0;
+ rar_entries = hw->mac.ops.rar_get_count(hw);
+
/* save a rar entry for our hardware address */
rar_entries--;
@@ -3332,9 +3334,13 @@ static int e1000e_write_uc_addr_list(struct net_device *netdev)
* combining
*/
netdev_for_each_uc_addr(ha, netdev) {
+ int rval;
+
if (!rar_entries)
break;
- hw->mac.ops.rar_set(hw, ha->addr, rar_entries--);
+ rval = hw->mac.ops.rar_set(hw, ha->addr, rar_entries--);
+ if (rval < 0)
+ return -ENOMEM;
count++;
}
}
--
1.9.3
^ permalink raw reply related [flat|nested] 55+ messages in thread
* Re: [net-next 08/15] e1000e: Failure to write SHRA turns on PROMISC mode
2014-05-27 9:12 ` [net-next 08/15] e1000e: Failure to write SHRA turns on PROMISC mode Jeff Kirsher
@ 2014-05-28 14:06 ` Vlad Yasevich
0 siblings, 0 replies; 55+ messages in thread
From: Vlad Yasevich @ 2014-05-28 14:06 UTC (permalink / raw)
To: Jeff Kirsher, davem; +Cc: David Ertman, netdev, gospo, sassmann
On 05/27/2014 05:12 AM, Jeff Kirsher wrote:
> From: David Ertman <davidx.m.ertman@intel.com>
>
> Previously, the check to turn on promiscuous mode only took into account
> the total number of SHared Receive Address (SHRA) registers and if the
> request was for a register within that range. It is possible that the
> Management Engine might have locked a number of SHRA and not allowed a
> new address to be written to the requested register.
>
> Add a function to determine the number of unlocked SHRA registers. Then
> determine if the number of registers available is sufficient for our needs,
> if not then return -ENOMEM so that UNICAST PROMISC mode is activated.
>
> Since the method by which ME claims SHRA registers is non-deterministic,
> also add a return value to the function attempting to write an address
> to a SHRA, and return a -E1000_ERR_CONFIG if the write fails. The error
> will be passed up the function chain and allow the driver to also set
> UNICAST PROMISC when this happens.
>
> Cc: Vlad Yasevich <vyasevic@redhat.com>
Acked-by: Vlad Yasevich <vyasevic@redhat.com>
-vlad
> Signed-off-by: Dave Ertman <davidx.m.ertman@intel.com>
> Tested-by: Aaron Brown <aaron.f.brown@intel.com>
> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
> ---
> drivers/net/ethernet/intel/e1000e/80003es2lan.c | 1 +
> drivers/net/ethernet/intel/e1000e/82571.c | 1 +
> drivers/net/ethernet/intel/e1000e/hw.h | 3 +-
> drivers/net/ethernet/intel/e1000e/ich8lan.c | 57 +++++++++++++++++++++----
> drivers/net/ethernet/intel/e1000e/mac.c | 9 +++-
> drivers/net/ethernet/intel/e1000e/mac.h | 3 +-
> drivers/net/ethernet/intel/e1000e/netdev.c | 10 ++++-
> 7 files changed, 71 insertions(+), 13 deletions(-)
>
> diff --git a/drivers/net/ethernet/intel/e1000e/80003es2lan.c b/drivers/net/ethernet/intel/e1000e/80003es2lan.c
> index a5f6b11..08f22f3 100644
> --- a/drivers/net/ethernet/intel/e1000e/80003es2lan.c
> +++ b/drivers/net/ethernet/intel/e1000e/80003es2lan.c
> @@ -1365,6 +1365,7 @@ static const struct e1000_mac_operations es2_mac_ops = {
> .setup_led = e1000e_setup_led_generic,
> .config_collision_dist = e1000e_config_collision_dist_generic,
> .rar_set = e1000e_rar_set_generic,
> + .rar_get_count = e1000e_rar_get_count_generic,
> };
>
> static const struct e1000_phy_operations es2_phy_ops = {
> diff --git a/drivers/net/ethernet/intel/e1000e/82571.c b/drivers/net/ethernet/intel/e1000e/82571.c
> index e0aa7f1..218481e 100644
> --- a/drivers/net/ethernet/intel/e1000e/82571.c
> +++ b/drivers/net/ethernet/intel/e1000e/82571.c
> @@ -1896,6 +1896,7 @@ static const struct e1000_mac_operations e82571_mac_ops = {
> .config_collision_dist = e1000e_config_collision_dist_generic,
> .read_mac_addr = e1000_read_mac_addr_82571,
> .rar_set = e1000e_rar_set_generic,
> + .rar_get_count = e1000e_rar_get_count_generic,
> };
>
> static const struct e1000_phy_operations e82_phy_ops_igp = {
> diff --git a/drivers/net/ethernet/intel/e1000e/hw.h b/drivers/net/ethernet/intel/e1000e/hw.h
> index 6b3de5f..72f5475 100644
> --- a/drivers/net/ethernet/intel/e1000e/hw.h
> +++ b/drivers/net/ethernet/intel/e1000e/hw.h
> @@ -469,8 +469,9 @@ struct e1000_mac_operations {
> s32 (*setup_led)(struct e1000_hw *);
> void (*write_vfta)(struct e1000_hw *, u32, u32);
> void (*config_collision_dist)(struct e1000_hw *);
> - void (*rar_set)(struct e1000_hw *, u8 *, u32);
> + int (*rar_set)(struct e1000_hw *, u8 *, u32);
> s32 (*read_mac_addr)(struct e1000_hw *);
> + u32 (*rar_get_count)(struct e1000_hw *);
> };
>
> /* When to use various PHY register access functions:
> diff --git a/drivers/net/ethernet/intel/e1000e/ich8lan.c b/drivers/net/ethernet/intel/e1000e/ich8lan.c
> index 5f55395..b75862d 100644
> --- a/drivers/net/ethernet/intel/e1000e/ich8lan.c
> +++ b/drivers/net/ethernet/intel/e1000e/ich8lan.c
> @@ -139,8 +139,9 @@ static s32 e1000_k1_gig_workaround_hv(struct e1000_hw *hw, bool link);
> static s32 e1000_set_mdio_slow_mode_hv(struct e1000_hw *hw);
> static bool e1000_check_mng_mode_ich8lan(struct e1000_hw *hw);
> static bool e1000_check_mng_mode_pchlan(struct e1000_hw *hw);
> -static void e1000_rar_set_pch2lan(struct e1000_hw *hw, u8 *addr, u32 index);
> -static void e1000_rar_set_pch_lpt(struct e1000_hw *hw, u8 *addr, u32 index);
> +static int e1000_rar_set_pch2lan(struct e1000_hw *hw, u8 *addr, u32 index);
> +static int e1000_rar_set_pch_lpt(struct e1000_hw *hw, u8 *addr, u32 index);
> +static u32 e1000_rar_get_count_pch_lpt(struct e1000_hw *hw);
> static s32 e1000_k1_workaround_lv(struct e1000_hw *hw);
> static void e1000_gate_hw_phy_config_ich8lan(struct e1000_hw *hw, bool gate);
> static s32 e1000_disable_ulp_lpt_lp(struct e1000_hw *hw, bool force);
> @@ -704,6 +705,7 @@ static s32 e1000_init_mac_params_ich8lan(struct e1000_hw *hw)
> mac->ops.rar_set = e1000_rar_set_pch_lpt;
> mac->ops.setup_physical_interface =
> e1000_setup_copper_link_pch_lpt;
> + mac->ops.rar_get_count = e1000_rar_get_count_pch_lpt;
> }
>
> /* Enable PCS Lock-loss workaround for ICH8 */
> @@ -1668,7 +1670,7 @@ static bool e1000_check_mng_mode_pchlan(struct e1000_hw *hw)
> * contain the MAC address but RAR[1-6] are reserved for manageability (ME).
> * Use SHRA[0-3] in place of those reserved for ME.
> **/
> -static void e1000_rar_set_pch2lan(struct e1000_hw *hw, u8 *addr, u32 index)
> +static int e1000_rar_set_pch2lan(struct e1000_hw *hw, u8 *addr, u32 index)
> {
> u32 rar_low, rar_high;
>
> @@ -1690,7 +1692,7 @@ static void e1000_rar_set_pch2lan(struct e1000_hw *hw, u8 *addr, u32 index)
> e1e_flush();
> ew32(RAH(index), rar_high);
> e1e_flush();
> - return;
> + return 0;
> }
>
> /* RAR[1-6] are owned by manageability. Skip those and program the
> @@ -1713,7 +1715,7 @@ static void e1000_rar_set_pch2lan(struct e1000_hw *hw, u8 *addr, u32 index)
> /* verify the register updates */
> if ((er32(SHRAL(index - 1)) == rar_low) &&
> (er32(SHRAH(index - 1)) == rar_high))
> - return;
> + return 0;
>
> e_dbg("SHRA[%d] might be locked by ME - FWSM=0x%8.8x\n",
> (index - 1), er32(FWSM));
> @@ -1721,6 +1723,43 @@ static void e1000_rar_set_pch2lan(struct e1000_hw *hw, u8 *addr, u32 index)
>
> out:
> e_dbg("Failed to write receive address at index %d\n", index);
> + return -E1000_ERR_CONFIG;
> +}
> +
> +/**
> + * e1000_rar_get_count_pch_lpt - Get the number of available SHRA
> + * @hw: pointer to the HW structure
> + *
> + * Get the number of available receive registers that the Host can
> + * program. SHRA[0-10] are the shared receive address registers
> + * that are shared between the Host and manageability engine (ME).
> + * ME can reserve any number of addresses and the host needs to be
> + * able to tell how many available registers it has access to.
> + **/
> +static u32 e1000_rar_get_count_pch_lpt(struct e1000_hw *hw)
> +{
> + u32 wlock_mac;
> + u32 num_entries;
> +
> + wlock_mac = er32(FWSM) & E1000_FWSM_WLOCK_MAC_MASK;
> + wlock_mac >>= E1000_FWSM_WLOCK_MAC_SHIFT;
> +
> + switch (wlock_mac) {
> + case 0:
> + /* All SHRA[0..10] and RAR[0] available */
> + num_entries = hw->mac.rar_entry_count;
> + break;
> + case 1:
> + /* Only RAR[0] available */
> + num_entries = 1;
> + break;
> + default:
> + /* SHRA[0..(wlock_mac - 1)] available + RAR[0] */
> + num_entries = wlock_mac + 1;
> + break;
> + }
> +
> + return num_entries;
> }
>
> /**
> @@ -1734,7 +1773,7 @@ out:
> * contain the MAC address. SHRA[0-10] are the shared receive address
> * registers that are shared between the Host and manageability engine (ME).
> **/
> -static void e1000_rar_set_pch_lpt(struct e1000_hw *hw, u8 *addr, u32 index)
> +static int e1000_rar_set_pch_lpt(struct e1000_hw *hw, u8 *addr, u32 index)
> {
> u32 rar_low, rar_high;
> u32 wlock_mac;
> @@ -1756,7 +1795,7 @@ static void e1000_rar_set_pch_lpt(struct e1000_hw *hw, u8 *addr, u32 index)
> e1e_flush();
> ew32(RAH(index), rar_high);
> e1e_flush();
> - return;
> + return 0;
> }
>
> /* The manageability engine (ME) can lock certain SHRAR registers that
> @@ -1788,12 +1827,13 @@ static void e1000_rar_set_pch_lpt(struct e1000_hw *hw, u8 *addr, u32 index)
> /* verify the register updates */
> if ((er32(SHRAL_PCH_LPT(index - 1)) == rar_low) &&
> (er32(SHRAH_PCH_LPT(index - 1)) == rar_high))
> - return;
> + return 0;
> }
> }
>
> out:
> e_dbg("Failed to write receive address at index %d\n", index);
> + return -E1000_ERR_CONFIG;
> }
>
> /**
> @@ -4977,6 +5017,7 @@ static const struct e1000_mac_operations ich8_mac_ops = {
> /* id_led_init dependent on mac type */
> .config_collision_dist = e1000e_config_collision_dist_generic,
> .rar_set = e1000e_rar_set_generic,
> + .rar_get_count = e1000e_rar_get_count_generic,
> };
>
> static const struct e1000_phy_operations ich8_phy_ops = {
> diff --git a/drivers/net/ethernet/intel/e1000e/mac.c b/drivers/net/ethernet/intel/e1000e/mac.c
> index baa0a46..8c386f3a 100644
> --- a/drivers/net/ethernet/intel/e1000e/mac.c
> +++ b/drivers/net/ethernet/intel/e1000e/mac.c
> @@ -211,6 +211,11 @@ s32 e1000_check_alt_mac_addr_generic(struct e1000_hw *hw)
> return 0;
> }
>
> +u32 e1000e_rar_get_count_generic(struct e1000_hw *hw)
> +{
> + return hw->mac.rar_entry_count;
> +}
> +
> /**
> * e1000e_rar_set_generic - Set receive address register
> * @hw: pointer to the HW structure
> @@ -220,7 +225,7 @@ s32 e1000_check_alt_mac_addr_generic(struct e1000_hw *hw)
> * Sets the receive address array register at index to the address passed
> * in by addr.
> **/
> -void e1000e_rar_set_generic(struct e1000_hw *hw, u8 *addr, u32 index)
> +int e1000e_rar_set_generic(struct e1000_hw *hw, u8 *addr, u32 index)
> {
> u32 rar_low, rar_high;
>
> @@ -244,6 +249,8 @@ void e1000e_rar_set_generic(struct e1000_hw *hw, u8 *addr, u32 index)
> e1e_flush();
> ew32(RAH(index), rar_high);
> e1e_flush();
> +
> + return 0;
> }
>
> /**
> diff --git a/drivers/net/ethernet/intel/e1000e/mac.h b/drivers/net/ethernet/intel/e1000e/mac.h
> index 4e81c28..0513d90 100644
> --- a/drivers/net/ethernet/intel/e1000e/mac.h
> +++ b/drivers/net/ethernet/intel/e1000e/mac.h
> @@ -61,7 +61,8 @@ void e1000e_update_adaptive(struct e1000_hw *hw);
> void e1000_write_vfta_generic(struct e1000_hw *hw, u32 offset, u32 value);
>
> void e1000_set_lan_id_multi_port_pcie(struct e1000_hw *hw);
> -void e1000e_rar_set_generic(struct e1000_hw *hw, u8 *addr, u32 index);
> +u32 e1000e_rar_get_count_generic(struct e1000_hw *hw);
> +int e1000e_rar_set_generic(struct e1000_hw *hw, u8 *addr, u32 index);
> void e1000e_config_collision_dist_generic(struct e1000_hw *hw);
>
> #endif
> diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
> index e4207ef..6084e6b 100644
> --- a/drivers/net/ethernet/intel/e1000e/netdev.c
> +++ b/drivers/net/ethernet/intel/e1000e/netdev.c
> @@ -3311,9 +3311,11 @@ static int e1000e_write_uc_addr_list(struct net_device *netdev)
> {
> struct e1000_adapter *adapter = netdev_priv(netdev);
> struct e1000_hw *hw = &adapter->hw;
> - unsigned int rar_entries = hw->mac.rar_entry_count;
> + unsigned int rar_entries;
> int count = 0;
>
> + rar_entries = hw->mac.ops.rar_get_count(hw);
> +
> /* save a rar entry for our hardware address */
> rar_entries--;
>
> @@ -3332,9 +3334,13 @@ static int e1000e_write_uc_addr_list(struct net_device *netdev)
> * combining
> */
> netdev_for_each_uc_addr(ha, netdev) {
> + int rval;
> +
> if (!rar_entries)
> break;
> - hw->mac.ops.rar_set(hw, ha->addr, rar_entries--);
> + rval = hw->mac.ops.rar_set(hw, ha->addr, rar_entries--);
> + if (rval < 0)
> + return -ENOMEM;
> count++;
> }
> }
>
^ permalink raw reply [flat|nested] 55+ messages in thread
* [net-next 09/15] e1000e: 82574/82583 TimeSync errata for SYSTIM read
2014-05-27 9:12 [net-next 00/15][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (7 preceding siblings ...)
2014-05-27 9:12 ` [net-next 08/15] e1000e: Failure to write SHRA turns on PROMISC mode Jeff Kirsher
@ 2014-05-27 9:12 ` Jeff Kirsher
2014-05-27 9:12 ` [net-next 10/15] e1000e: Cleanup parenthesis around return value Jeff Kirsher
` (6 subsequent siblings)
15 siblings, 0 replies; 55+ messages in thread
From: Jeff Kirsher @ 2014-05-27 9:12 UTC (permalink / raw)
To: davem; +Cc: Todd Fujinaka, netdev, gospo, sassmann, Jeff Kirsher
From: Todd Fujinaka <todd.fujinaka@intel.com>
Due to a synchronization error, the value read from SYSTIML/SYSTIMH
might be incorrect.
Signed-off-by: Todd Fujinaka <todd.fujinaka@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/e1000e/e1000.h | 2 ++
drivers/net/ethernet/intel/e1000e/netdev.c | 27 ++++++++++++++++++++++++++-
2 files changed, 28 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/intel/e1000e/e1000.h b/drivers/net/ethernet/intel/e1000e/e1000.h
index e27e609..63bde99 100644
--- a/drivers/net/ethernet/intel/e1000e/e1000.h
+++ b/drivers/net/ethernet/intel/e1000e/e1000.h
@@ -391,6 +391,8 @@ s32 e1000e_get_base_timinca(struct e1000_adapter *adapter, u32 *timinca);
* 25MHz 46-bit 2^46 / 10^9 / 3600 = 19.55 hours
*/
#define E1000_SYSTIM_OVERFLOW_PERIOD (HZ * 60 * 60 * 4)
+#define E1000_MAX_82574_SYSTIM_REREADS 50
+#define E1000_82574_SYSTIM_EPSILON (1ULL << 35ULL)
/* hardware capability, feature, and workaround flags */
#define FLAG_HAS_AMT (1 << 0)
diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
index 6084e6b..95cf482 100644
--- a/drivers/net/ethernet/intel/e1000e/netdev.c
+++ b/drivers/net/ethernet/intel/e1000e/netdev.c
@@ -4099,12 +4099,37 @@ static cycle_t e1000e_cyclecounter_read(const struct cyclecounter *cc)
struct e1000_adapter *adapter = container_of(cc, struct e1000_adapter,
cc);
struct e1000_hw *hw = &adapter->hw;
- cycle_t systim;
+ cycle_t systim, systim_next;
/* latch SYSTIMH on read of SYSTIML */
systim = (cycle_t)er32(SYSTIML);
systim |= (cycle_t)er32(SYSTIMH) << 32;
+ if ((hw->mac.type == e1000_82574) || (hw->mac.type == e1000_82583)) {
+ u64 incvalue, time_delta, rem, temp;
+ int i;
+
+ /* errata for 82574/82583 possible bad bits read from SYSTIMH/L
+ * check to see that the time is incrementing at a reasonable
+ * rate and is a multiple of incvalue
+ */
+ incvalue = er32(TIMINCA) & E1000_TIMINCA_INCVALUE_MASK;
+ for (i = 0; i < E1000_MAX_82574_SYSTIM_REREADS; i++) {
+ /* latch SYSTIMH on read of SYSTIML */
+ systim_next = (cycle_t)er32(SYSTIML);
+ systim_next |= (cycle_t)er32(SYSTIMH) << 32;
+
+ time_delta = systim_next - systim;
+ temp = time_delta;
+ rem = do_div(temp, incvalue);
+
+ systim = systim_next;
+
+ if ((time_delta < E1000_82574_SYSTIM_EPSILON) &&
+ (rem == 0))
+ break;
+ }
+ }
return systim;
}
--
1.9.3
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [net-next 10/15] e1000e: Cleanup parenthesis around return value
2014-05-27 9:12 [net-next 00/15][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (8 preceding siblings ...)
2014-05-27 9:12 ` [net-next 09/15] e1000e: 82574/82583 TimeSync errata for SYSTIM read Jeff Kirsher
@ 2014-05-27 9:12 ` Jeff Kirsher
2014-05-27 9:12 ` [net-next 11/15] e1000e: Fix expand setting EEE link info to all affected parts Jeff Kirsher
` (5 subsequent siblings)
15 siblings, 0 replies; 55+ messages in thread
From: Jeff Kirsher @ 2014-05-27 9:12 UTC (permalink / raw)
To: davem; +Cc: David Ertman, netdev, gospo, sassmann, Jeff Kirsher
From: David Ertman <davidx.m.ertman@intel.com>
Signed-off-by: Dave Ertman <davidx.m.ertman@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/e1000e/ich8lan.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/intel/e1000e/ich8lan.c b/drivers/net/ethernet/intel/e1000e/ich8lan.c
index b75862d..8894ab8 100644
--- a/drivers/net/ethernet/intel/e1000e/ich8lan.c
+++ b/drivers/net/ethernet/intel/e1000e/ich8lan.c
@@ -1637,9 +1637,9 @@ static bool e1000_check_mng_mode_ich8lan(struct e1000_hw *hw)
u32 fwsm;
fwsm = er32(FWSM);
- return ((fwsm & E1000_ICH_FWSM_FW_VALID) &&
+ return (fwsm & E1000_ICH_FWSM_FW_VALID) &&
((fwsm & E1000_FWSM_MODE_MASK) ==
- (E1000_ICH_MNG_IAMT_MODE << E1000_FWSM_MODE_SHIFT)));
+ (E1000_ICH_MNG_IAMT_MODE << E1000_FWSM_MODE_SHIFT));
}
/**
--
1.9.3
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [net-next 11/15] e1000e: Fix expand setting EEE link info to all affected parts
2014-05-27 9:12 [net-next 00/15][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (9 preceding siblings ...)
2014-05-27 9:12 ` [net-next 10/15] e1000e: Cleanup parenthesis around return value Jeff Kirsher
@ 2014-05-27 9:12 ` Jeff Kirsher
2014-05-27 9:12 ` [net-next 12/15] e1000e: Out of line __ew32_prepare/__ew32 Jeff Kirsher
` (4 subsequent siblings)
15 siblings, 0 replies; 55+ messages in thread
From: Jeff Kirsher @ 2014-05-27 9:12 UTC (permalink / raw)
To: davem; +Cc: David Ertman, netdev, gospo, sassmann, Jeff Kirsher
From: David Ertman <davidx.m.ertman@intel.com>
Previously, the update_phy_task was only calling e1000_set_eee_pchlan()
for phy.type 82579. This patch is to cause this function to be called
for 82579 and newer phy.types. This causes the dev_spec->eee_lp_ability
to have the correct value when going into SX states.
Signed-off-by: Dave Ertman <davidx.m.ertman@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/e1000e/netdev.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
index 95cf482..e00144a 100644
--- a/drivers/net/ethernet/intel/e1000e/netdev.c
+++ b/drivers/net/ethernet/intel/e1000e/netdev.c
@@ -4530,7 +4530,7 @@ static void e1000e_update_phy_task(struct work_struct *work)
e1000_get_phy_info(hw);
/* Enable EEE on 82579 after link up */
- if (hw->phy.type == e1000_phy_82579)
+ if (hw->phy.type >= e1000_phy_82579)
e1000_set_eee_pchlan(hw);
}
--
1.9.3
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [net-next 12/15] e1000e: Out of line __ew32_prepare/__ew32
2014-05-27 9:12 [net-next 00/15][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (10 preceding siblings ...)
2014-05-27 9:12 ` [net-next 11/15] e1000e: Fix expand setting EEE link info to all affected parts Jeff Kirsher
@ 2014-05-27 9:12 ` Jeff Kirsher
2014-05-27 9:12 ` [net-next 13/15] igb: remove redundant PHY power down register write Jeff Kirsher
` (3 subsequent siblings)
15 siblings, 0 replies; 55+ messages in thread
From: Jeff Kirsher @ 2014-05-27 9:12 UTC (permalink / raw)
To: davem; +Cc: Andi Kleen, netdev, gospo, sassmann, Jeff Kirsher
From: Andi Kleen <ak@linux.intel.com>
Out of lining these two common inlines saves about 30k text size,
due to their errata workarounds.
14131431 2008136 1507328 17646895 10d452f vmlinux-before-e1000e
14101415 2004040 1507328 17612783 10cbfef vmlinux-e1000e
Signed-off-by: Andi Kleen <ak@linux.intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/e1000e/e1000.h | 31 ++----------------------------
drivers/net/ethernet/intel/e1000e/netdev.c | 30 +++++++++++++++++++++++++++++
2 files changed, 32 insertions(+), 29 deletions(-)
diff --git a/drivers/net/ethernet/intel/e1000e/e1000.h b/drivers/net/ethernet/intel/e1000e/e1000.h
index 63bde99..7785240 100644
--- a/drivers/net/ethernet/intel/e1000e/e1000.h
+++ b/drivers/net/ethernet/intel/e1000e/e1000.h
@@ -575,35 +575,8 @@ static inline u32 __er32(struct e1000_hw *hw, unsigned long reg)
#define er32(reg) __er32(hw, E1000_##reg)
-/**
- * __ew32_prepare - prepare to write to MAC CSR register on certain parts
- * @hw: pointer to the HW structure
- *
- * When updating the MAC CSR registers, the Manageability Engine (ME) could
- * be accessing the registers at the same time. Normally, this is handled in
- * h/w by an arbiter but on some parts there is a bug that acknowledges Host
- * accesses later than it should which could result in the register to have
- * an incorrect value. Workaround this by checking the FWSM register which
- * has bit 24 set while ME is accessing MAC CSR registers, wait if it is set
- * and try again a number of times.
- **/
-static inline s32 __ew32_prepare(struct e1000_hw *hw)
-{
- s32 i = E1000_ICH_FWSM_PCIM2PCI_COUNT;
-
- while ((er32(FWSM) & E1000_ICH_FWSM_PCIM2PCI) && --i)
- udelay(50);
-
- return i;
-}
-
-static inline void __ew32(struct e1000_hw *hw, unsigned long reg, u32 val)
-{
- if (hw->adapter->flags2 & FLAG2_PCIM2PCI_ARBITER_WA)
- __ew32_prepare(hw);
-
- writel(val, hw->hw_addr + reg);
-}
+s32 __ew32_prepare(struct e1000_hw *hw);
+void __ew32(struct e1000_hw *hw, unsigned long reg, u32 val);
#define ew32(reg, val) __ew32(hw, E1000_##reg, (val))
diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
index e00144a..201cc93 100644
--- a/drivers/net/ethernet/intel/e1000e/netdev.c
+++ b/drivers/net/ethernet/intel/e1000e/netdev.c
@@ -124,6 +124,36 @@ static const struct e1000_reg_info e1000_reg_info_tbl[] = {
};
/**
+ * __ew32_prepare - prepare to write to MAC CSR register on certain parts
+ * @hw: pointer to the HW structure
+ *
+ * When updating the MAC CSR registers, the Manageability Engine (ME) could
+ * be accessing the registers at the same time. Normally, this is handled in
+ * h/w by an arbiter but on some parts there is a bug that acknowledges Host
+ * accesses later than it should which could result in the register to have
+ * an incorrect value. Workaround this by checking the FWSM register which
+ * has bit 24 set while ME is accessing MAC CSR registers, wait if it is set
+ * and try again a number of times.
+ **/
+s32 __ew32_prepare(struct e1000_hw *hw)
+{
+ s32 i = E1000_ICH_FWSM_PCIM2PCI_COUNT;
+
+ while ((er32(FWSM) & E1000_ICH_FWSM_PCIM2PCI) && --i)
+ udelay(50);
+
+ return i;
+}
+
+void __ew32(struct e1000_hw *hw, unsigned long reg, u32 val)
+{
+ if (hw->adapter->flags2 & FLAG2_PCIM2PCI_ARBITER_WA)
+ __ew32_prepare(hw);
+
+ writel(val, hw->hw_addr + reg);
+}
+
+/**
* e1000_regdump - register printout routine
* @hw: pointer to the HW structure
* @reginfo: pointer to the register info table
--
1.9.3
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [net-next 13/15] igb: remove redundant PHY power down register write
2014-05-27 9:12 [net-next 00/15][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (11 preceding siblings ...)
2014-05-27 9:12 ` [net-next 12/15] e1000e: Out of line __ew32_prepare/__ew32 Jeff Kirsher
@ 2014-05-27 9:12 ` Jeff Kirsher
2014-05-27 9:12 ` [net-next 14/15] e1000: Use is_broadcast_ether_addr/is_multicast_ether_addr helpers Jeff Kirsher
` (2 subsequent siblings)
15 siblings, 0 replies; 55+ messages in thread
From: Jeff Kirsher @ 2014-05-27 9:12 UTC (permalink / raw)
To: davem; +Cc: Todd Fujinaka, netdev, gospo, sassmann, Jeff Kirsher
From: Todd Fujinaka <todd.fujinaka@intel.com>
One of the registers used to power down the PHY was found to be wrong
(should be bit 2 not bit 1) on further inspection it was also found to
be redundant.
Signed-off-by: Todd Fujinaka <todd.fujinaka@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/igb/e1000_phy.c | 14 --------------
drivers/net/ethernet/intel/igb/e1000_phy.h | 1 -
2 files changed, 15 deletions(-)
diff --git a/drivers/net/ethernet/intel/igb/e1000_phy.c b/drivers/net/ethernet/intel/igb/e1000_phy.c
index 424f16c..c1bb64d 100644
--- a/drivers/net/ethernet/intel/igb/e1000_phy.c
+++ b/drivers/net/ethernet/intel/igb/e1000_phy.c
@@ -2204,16 +2204,10 @@ s32 igb_phy_init_script_igp3(struct e1000_hw *hw)
void igb_power_up_phy_copper(struct e1000_hw *hw)
{
u16 mii_reg = 0;
- u16 power_reg = 0;
/* The PHY will retain its settings across a power down/up cycle */
hw->phy.ops.read_reg(hw, PHY_CONTROL, &mii_reg);
mii_reg &= ~MII_CR_POWER_DOWN;
- if (hw->phy.type == e1000_phy_i210) {
- hw->phy.ops.read_reg(hw, GS40G_COPPER_SPEC, &power_reg);
- power_reg &= ~GS40G_CS_POWER_DOWN;
- hw->phy.ops.write_reg(hw, GS40G_COPPER_SPEC, power_reg);
- }
hw->phy.ops.write_reg(hw, PHY_CONTROL, mii_reg);
}
@@ -2227,18 +2221,10 @@ void igb_power_up_phy_copper(struct e1000_hw *hw)
void igb_power_down_phy_copper(struct e1000_hw *hw)
{
u16 mii_reg = 0;
- u16 power_reg = 0;
/* The PHY will retain its settings across a power down/up cycle */
hw->phy.ops.read_reg(hw, PHY_CONTROL, &mii_reg);
mii_reg |= MII_CR_POWER_DOWN;
-
- /* i210 Phy requires an additional bit for power up/down */
- if (hw->phy.type == e1000_phy_i210) {
- hw->phy.ops.read_reg(hw, GS40G_COPPER_SPEC, &power_reg);
- power_reg |= GS40G_CS_POWER_DOWN;
- hw->phy.ops.write_reg(hw, GS40G_COPPER_SPEC, power_reg);
- }
hw->phy.ops.write_reg(hw, PHY_CONTROL, mii_reg);
usleep_range(1000, 2000);
}
diff --git a/drivers/net/ethernet/intel/igb/e1000_phy.h b/drivers/net/ethernet/intel/igb/e1000_phy.h
index fe921e2..7af4ffa 100644
--- a/drivers/net/ethernet/intel/igb/e1000_phy.h
+++ b/drivers/net/ethernet/intel/igb/e1000_phy.h
@@ -151,7 +151,6 @@ s32 igb_check_polarity_m88(struct e1000_hw *hw);
#define GS40G_MAC_LB 0x4140
#define GS40G_MAC_SPEED_1G 0X0006
#define GS40G_COPPER_SPEC 0x0010
-#define GS40G_CS_POWER_DOWN 0x0002
#define GS40G_LINE_LB 0x4000
/* SFP modules ID memory locations */
--
1.9.3
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [net-next 14/15] e1000: Use is_broadcast_ether_addr/is_multicast_ether_addr helpers
2014-05-27 9:12 [net-next 00/15][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (12 preceding siblings ...)
2014-05-27 9:12 ` [net-next 13/15] igb: remove redundant PHY power down register write Jeff Kirsher
@ 2014-05-27 9:12 ` Jeff Kirsher
2014-05-27 9:12 ` [net-next 15/15] i40evf: Use is_multicast_ether_addr helper Jeff Kirsher
2014-05-28 16:42 ` [net-next 00/15][pull request] Intel Wired LAN Driver Updates David Miller
15 siblings, 0 replies; 55+ messages in thread
From: Jeff Kirsher @ 2014-05-27 9:12 UTC (permalink / raw)
To: davem; +Cc: Tobias Klauser, netdev, gospo, sassmann, Jeff Kirsher
From: Tobias Klauser <tklauser@distanz.ch>
Use the is_broadcast_ether_addr/is_multicast_ether_addr helper functions
from linux/etherdevice.h instead of open coding them.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/e1000/e1000_hw.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/intel/e1000/e1000_hw.c b/drivers/net/ethernet/intel/e1000/e1000_hw.c
index c1d3fdb..e9b07cc 100644
--- a/drivers/net/ethernet/intel/e1000/e1000_hw.c
+++ b/drivers/net/ethernet/intel/e1000/e1000_hw.c
@@ -4877,10 +4877,10 @@ void e1000_tbi_adjust_stats(struct e1000_hw *hw, struct e1000_hw_stats *stats,
* since the test for a multicast frame will test positive on
* a broadcast frame.
*/
- if ((mac_addr[0] == (u8) 0xff) && (mac_addr[1] == (u8) 0xff))
+ if (is_broadcast_ether_addr(mac_addr))
/* Broadcast packet */
stats->bprc++;
- else if (*mac_addr & 0x01)
+ else if (is_multicast_ether_addr(mac_addr))
/* Multicast packet */
stats->mprc++;
--
1.9.3
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [net-next 15/15] i40evf: Use is_multicast_ether_addr helper
2014-05-27 9:12 [net-next 00/15][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (13 preceding siblings ...)
2014-05-27 9:12 ` [net-next 14/15] e1000: Use is_broadcast_ether_addr/is_multicast_ether_addr helpers Jeff Kirsher
@ 2014-05-27 9:12 ` Jeff Kirsher
2014-05-28 16:42 ` [net-next 00/15][pull request] Intel Wired LAN Driver Updates David Miller
15 siblings, 0 replies; 55+ messages in thread
From: Jeff Kirsher @ 2014-05-27 9:12 UTC (permalink / raw)
To: davem; +Cc: Tobias Klauser, netdev, gospo, sassmann, Jeff Kirsher
From: Tobias Klauser <tklauser@distanz.ch>
Use the is_multicast_ether_addr helper function from linux/etherdevice.h
instead of open coding the multicast address check.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
Tested-by: Sibai Li <sibai.li@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/i40evf/i40evf_main.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/intel/i40evf/i40evf_main.c b/drivers/net/ethernet/intel/i40evf/i40evf_main.c
index 8dbaa77..23c9ff6 100644
--- a/drivers/net/ethernet/intel/i40evf/i40evf_main.c
+++ b/drivers/net/ethernet/intel/i40evf/i40evf_main.c
@@ -845,7 +845,7 @@ static void i40evf_set_rx_mode(struct net_device *netdev)
list_for_each_entry_safe(f, ftmp, &adapter->mac_filter_list, list) {
bool found = false;
- if (f->macaddr[0] & 0x01) {
+ if (is_multicast_ether_addr(f->macaddr)) {
netdev_for_each_mc_addr(mca, netdev) {
if (ether_addr_equal(mca->addr, f->macaddr)) {
found = true;
--
1.9.3
^ permalink raw reply related [flat|nested] 55+ messages in thread
* Re: [net-next 00/15][pull request] Intel Wired LAN Driver Updates
2014-05-27 9:12 [net-next 00/15][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (14 preceding siblings ...)
2014-05-27 9:12 ` [net-next 15/15] i40evf: Use is_multicast_ether_addr helper Jeff Kirsher
@ 2014-05-28 16:42 ` David Miller
15 siblings, 0 replies; 55+ messages in thread
From: David Miller @ 2014-05-28 16:42 UTC (permalink / raw)
To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Tue, 27 May 2014 02:12:16 -0700
> This series contains updates to e1000, e1000e, ixgbe and i40evf.
Pulled, thanks a lot Jeff.
^ permalink raw reply [flat|nested] 55+ messages in thread
* [net-next 00/15][pull request] Intel Wired LAN Driver Updates
@ 2014-05-29 15:10 Jeff Kirsher
2014-05-31 0:53 ` David Miller
0 siblings, 1 reply; 55+ messages in thread
From: Jeff Kirsher @ 2014-05-29 15:10 UTC (permalink / raw)
To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann
This series contains updates to i40e and i40evf.
Kevin updates the i40e and i40evf driver i40e_check_asq_alive() to ensure
the length register offset is non-zero which indicates that the software
has initialized the admin queue. Also removes PCTYPE definitions which are
now reserved.
Mitch enables descriptor prefetch for rings belonging to the virtual function.
Also configures the VF minimum transmit rate to 50 Mbps rather than 0 which was
be interpreted as no limit at all. Mitch found in order for the VF to achieve
its programmed transmit rate, we need to set the max credit value to 4.
Lastly fixes a Tx hang and firmware crash that happens after setting the MTU
on a VF by not using the RESETTING state during reinit, this is because
the RESETTING state means that a catastrophic hardware bad thing is happening
and the driver needs to tiptoe around and not use the admin queue or registers.
A reinit is no big deal and we can use the admin queue (and we should) so
do not set the state to RESETTING during reinit to resolve the bug.
Akeem changes the declaration of the transmit and receive rings inside
several loops to eliminate declaring the same ring every time for the
duration of the loop and declares them just once before the loop. Also fixes
the driver to clear the recovery pending bit if pf_reset fails instead of
falling through the setup process.
Anjali makes a change based on feedback from Ben Hutchings that cmd->data
needs to be reported in ETHTOOL_GRXCLSRLCNT and use a helper function to
calculate the total filter count.
Jesse removes storm control since the storm control features are not apart
of the hardware and were mistakenly left in the code.
Greg changes tx_lpi_status and rx_lpi_status from bool to u32 to avoid
sparse errors.
Shannon adds the clear_pxe AdminQ API call to tell the firmware that the
driver is taking over from PXE. In addition, relaxes the firmware API
check to allow more flexibility in handling newer NICs and NVMs in the field.
Vasu ensures that FCoE is disabled for MFP modes since it is not supported
by overriding the hardware FCoE capability.
The following are changes since commit 6623b4194459c07859d3e3196c3994fa7be5b88e:
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next
and are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
Akeem G Abodunrin (2):
i40e: Tx/Rx rings declaration
i40e: Clear recovery pending, if reset failed
Anjali Singhai Jain (2):
i40e: Report cmd->data in ETHTOOL_GRXCLSRLCNT instead of
ETHTOOL_GRXCLSRULE
i40e: Use the new i40e_get_fd_cnt_all function in other places
Greg Rose (1):
i40e/i40evf: Change type to u32 to avoid sparse error
Jesse Brandeburg (1):
i40e/i40evf: remove storm control
Kevin Scott (2):
i40e/i40evf: Update check for AQ aliveness
i40e/i40evf: Remove reserved PCTYPE defines
Mitch Williams (4):
i40e: enable descriptor prefetch for VFs
i40evf: don't round Tx rate down to 0
i40evf: tweak Tx rate params and de-magic-ify
i40evf: don't use RESETTING state during reinit
Shannon Nelson (2):
i40e: add clear_pxe AdminQ request
i40e: relax the firmware API version check
Vasu Dev (1):
i40: disable FCoE for MFP modes
drivers/net/ethernet/intel/i40e/i40e.h | 9 +++++
drivers/net/ethernet/intel/i40e/i40e_adminq.c | 3 +-
drivers/net/ethernet/intel/i40e/i40e_common.c | 42 +++++++++++++++++++++-
drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 37 +++++++------------
drivers/net/ethernet/intel/i40e/i40e_main.c | 19 +++++-----
drivers/net/ethernet/intel/i40e/i40e_prototype.h | 2 ++
drivers/net/ethernet/intel/i40e/i40e_register.h | 4 ---
drivers/net/ethernet/intel/i40e/i40e_txrx.c | 33 +++++++----------
drivers/net/ethernet/intel/i40e/i40e_txrx.h | 7 +---
drivers/net/ethernet/intel/i40e/i40e_type.h | 14 +++-----
drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 13 +++++--
drivers/net/ethernet/intel/i40evf/i40e_common.c | 6 +++-
drivers/net/ethernet/intel/i40evf/i40e_register.h | 4 ---
drivers/net/ethernet/intel/i40evf/i40e_txrx.h | 7 +---
drivers/net/ethernet/intel/i40evf/i40e_type.h | 14 +++-----
drivers/net/ethernet/intel/i40evf/i40evf_main.c | 2 --
16 files changed, 116 insertions(+), 100 deletions(-)
--
1.9.3
^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: [net-next 00/15][pull request] Intel Wired LAN Driver Updates
2014-05-29 15:10 Jeff Kirsher
@ 2014-05-31 0:53 ` David Miller
0 siblings, 0 replies; 55+ messages in thread
From: David Miller @ 2014-05-31 0:53 UTC (permalink / raw)
To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Thu, 29 May 2014 08:10:01 -0700
> This series contains updates to i40e and i40evf.
...
> The following are changes since commit 6623b4194459c07859d3e3196c3994fa7be5b88e:
> Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next
> and are available in the git repository at:
> git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
Pulled, thanks Jeff.
And, as always, thanks for the detailed cover letter.
^ permalink raw reply [flat|nested] 55+ messages in thread
* [net-next 00/15][pull request] Intel Wired LAN Driver Updates
@ 2014-05-21 12:00 Jeff Kirsher
2014-05-22 16:05 ` David Miller
0 siblings, 1 reply; 55+ messages in thread
From: Jeff Kirsher @ 2014-05-21 12:00 UTC (permalink / raw)
To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann
This series contains updates to i40e and i40evf.
Shannon makes minor changes to the AdminQ interface to bring it up to
date. Removes the hard coding of stats struct size in ethtool, in prep
for adding data fields which are configuration dependent.
Catherine removes some unused and unneeded PCI bus defines.
Jesse fixes the copyright headers and finishes up the removal of the PTP
Tx work functionality which allows us to rely on the Tx timesync interrupt.
Mitch provides a number of fixes and cleanups for i40e/i40evf based on
suggestions from Ben Hutchings. First is to use a macro parameter for
ethtool stats instead of just assuming that a valid netdev variable
exists. Second is not to tell ethtool that the VF can do 10GbaseT, when
it really has no idea what its link speed is, so set the supported value
to 0 instead. Make the ethtool_ops structure constant since it is
extremely unlikely to change at runtime. Ethtool consistently reports
0 values for our ITR settings because we never actually use them, so
fix this by setting the default values to the specified default values.
Greg avoids a compile error by wrapping the call to i40e_alloc_vfs() in
CONFIG_PCI_IOV because the function itself is wrapped in the same
conditional compile block.
Alexander Gordeev updates the driver to use the new pci_enable_msi_range()
and pci_enable_msix_range() or pci_enable_msi_exact() and
pci_enable_msix_exact().
Jean Sacren provides a fix where the wrong error code was being passed to
i40e_open().
The following are changes since commit b6052af61a9e0dee236bcf4c69843126c0d28e4f:
Merge tag 'batman-adv-for-davem' of git://git.open-mesh.org/linux-merge
and are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
Alexander Gordeev (1):
i40evf: Use pci_enable_msix_range() instead of pci_enable_msix()
Catherine Sullivan (1):
i40evf: Remove unused defines
Greg Rose (1):
i40e: Check PCI_IOV config to avoid compile error
Jean Sacren (1):
i40e: fix passing wrong error code to i40e_open()
Jesse Brandeburg (2):
i40evf: Fix the headers and update copyright year.
i40e: remove Tx work for ptp
Mitch Williams (7):
i40e: add required include
i40evf: Use macro param for ethtool stats
i40evf: don't lie to ethtool
i40evf: make ethtool_ops const
i40e/i40evf: set proper default for ITR registers
i40e/i40evf: control auto ITR through ethtool
i40e: Don't disable SR-IOV when VFs are assigned
Shannon Nelson (2):
i40evf: Update AdminQ interface
i40e: remove hardcode of stats struct size in ethtool
drivers/net/ethernet/intel/i40e/i40e.h | 4 --
drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 63 +++++++---------
drivers/net/ethernet/intel/i40e/i40e_main.c | 8 ++-
drivers/net/ethernet/intel/i40e/i40e_ptp.c | 1 -
drivers/net/ethernet/intel/i40e/i40e_txrx.c | 1 +
drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 11 ++-
drivers/net/ethernet/intel/i40evf/Makefile | 5 +-
drivers/net/ethernet/intel/i40evf/i40e_adminq.c | 5 +-
drivers/net/ethernet/intel/i40evf/i40e_adminq.h | 5 +-
.../net/ethernet/intel/i40evf/i40e_adminq_cmd.h | 27 ++++---
drivers/net/ethernet/intel/i40evf/i40e_alloc.h | 5 +-
drivers/net/ethernet/intel/i40evf/i40e_common.c | 5 +-
drivers/net/ethernet/intel/i40evf/i40e_hmc.h | 5 +-
drivers/net/ethernet/intel/i40evf/i40e_lan_hmc.h | 5 +-
drivers/net/ethernet/intel/i40evf/i40e_osdep.h | 5 +-
drivers/net/ethernet/intel/i40evf/i40e_prototype.h | 5 +-
drivers/net/ethernet/intel/i40evf/i40e_register.h | 5 +-
drivers/net/ethernet/intel/i40evf/i40e_status.h | 5 +-
drivers/net/ethernet/intel/i40evf/i40e_txrx.c | 3 +
drivers/net/ethernet/intel/i40evf/i40e_txrx.h | 5 +-
drivers/net/ethernet/intel/i40evf/i40e_type.h | 12 +---
drivers/net/ethernet/intel/i40evf/i40e_virtchnl.h | 5 +-
drivers/net/ethernet/intel/i40evf/i40evf.h | 3 +
drivers/net/ethernet/intel/i40evf/i40evf_ethtool.c | 84 +++++++++++-----------
drivers/net/ethernet/intel/i40evf/i40evf_main.c | 40 +++++------
.../net/ethernet/intel/i40evf/i40evf_virtchnl.c | 3 +
26 files changed, 179 insertions(+), 146 deletions(-)
--
1.9.0
^ permalink raw reply [flat|nested] 55+ messages in thread
* [net-next 00/15][pull request] Intel Wired LAN Driver Updates
@ 2014-04-28 13:52 Jeff Kirsher
2014-04-28 18:53 ` David Miller
0 siblings, 1 reply; 55+ messages in thread
From: Jeff Kirsher @ 2014-04-28 13:52 UTC (permalink / raw)
To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann
This series contains updates to i40e and i40evf.
Jacob provides a i40e patch to remove ptp_tx_work() because it conflicts
with the interrupt-based handler and will cause spurious warning messages
to be displayed in the kernel log. Since the hardware can properly trigger
an interrupt, we do not need to poll for an available timestamp in a work
queue any more.
Greg provides two patches for i40e, first to retain the MAC filter list
when changing a port VLAN. Second fixes an issue where the function to
set the VF MAC address was not taking the port VLAN filter into account
when setting/clearing/resetting the VF's host administered MAC address.
Mitch provides three patches for i40evf, first adds support for getting
and setting RSS hashing options, RSS LUT entries, and getting the number
of device channels from ethtool. Fixes a panic that woudl occur in the VF
if the PF driver failed or was removed from the host kernel.
Shannon adds driver version string to the driver version command so that
can be passed down through the firmware to low-level NC-SI functions.
Neerav provides several patches, first redistributes queue vectors after
DCB reconfiguration because the total number of queues that are configured
for a VSI may change based on a change in the total number of TCs enabled
as a result of a change in the DCB configuration based on DCBX. Second,
allows the driver probe to continue when querying DCB config fails.
Lastly, provides changes to retrieve and store missing link config
information that was not being cached in the struct i40e_link_status.
Kevin provides a couple of patches, first to change a int variable type
to u16 to avoid a typecheck failure. Second to update a function
parameters to remove an argument which is no longer used.
The following are changes since commit a49eb42a341f1df8fa0f9dc4449f9dd4a3234a2f:
sched, act: allow to clear all actions as well
and are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
Anjali Singhai Jain (2):
i40e: Do not enable NTUPLE feature control in MFP mode
i40e: Do not expose fd-sb commands from debugfs
Catherine Sullivan (1):
i40e/i40evf: Bump build version
Greg Rose (2):
i40e: Retain MAC filters when changing port VLAN
i40e: Use port VLAN in MAC/VLAN filter configuration
Jacob Keller (1):
i40e: remove ptp_tx_work timestamp work item
Kevin Scott (2):
i40e: Change variable type to avoid typecheck failure
i40e: Update function formal parameters
Mitch A Williams (1):
i40evf: support ethtool RSS options
Mitch Williams (2):
i40evf: fix panic on PF driver fail
i40evf: remove debugging message
Neerav Parikh (3):
i40e: Redistribute queue vectors after DCB reconfiguration
i40e: Don't stop driver probe when querying DCB config fails
i40e/i40evf: Retrieve and store missing link config information
Shannon Nelson (1):
i40e/i40evf: add driver version string to driver version command
drivers/net/ethernet/intel/i40e/i40e.h | 2 -
drivers/net/ethernet/intel/i40e/i40e_common.c | 21 +-
drivers/net/ethernet/intel/i40e/i40e_debugfs.c | 6 -
drivers/net/ethernet/intel/i40e/i40e_main.c | 19 +-
drivers/net/ethernet/intel/i40e/i40e_prototype.h | 4 +-
drivers/net/ethernet/intel/i40e/i40e_ptp.c | 36 ---
drivers/net/ethernet/intel/i40e/i40e_txrx.c | 3 -
drivers/net/ethernet/intel/i40e/i40e_type.h | 4 +
drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 11 +-
drivers/net/ethernet/intel/i40evf/i40e_type.h | 4 +
drivers/net/ethernet/intel/i40evf/i40evf_ethtool.c | 316 +++++++++++++++++++++
drivers/net/ethernet/intel/i40evf/i40evf_main.c | 15 +-
12 files changed, 373 insertions(+), 68 deletions(-)
--
1.9.0
^ permalink raw reply [flat|nested] 55+ messages in thread
* [net-next 00/15][pull request] Intel Wired LAN Driver Updates
@ 2014-03-26 18:03 Jeff Kirsher
0 siblings, 0 replies; 55+ messages in thread
From: Jeff Kirsher @ 2014-03-26 18:03 UTC (permalink / raw)
To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann
This series contains updates to e1000e, igb, i40e and i40evf
Anjali provides i40e fix to remove the ATR filter on RST as well as FIN
packets. Cleans up add_del_fdir() because it was used and implemented
only for the add, so change the name and drop a parameter. Adds the
ability to drop a flow if we wanted to and adds a flow director
message level to be used for flow director specific messages. Provide
a fallback debug flow for i40e if the reset fails or the firmware is
unresponsive.
Mitch fixes an issue on i40evf where the Tx watchdog handler was causing
an oops when sending an admin queue message to request a reset because
the admin queue functions use spinlocks.
Greg provides a change to i40e to make the alloc and free queue vector
calls orthogonal.
Shannon fixes i40e to verify the eeprom checksum and firmware CRC status
bits, and shutdown the driver if they fail. This change stops the
processing of traffic, but does not kill the PF netdev so that the
NVMUpdate process still has a chance at fixing the image. Also provides
a fix to make sure the VSI has a netdev before trying to use it in
the debugfs netdev_ops commands.
Jakub Kicinski provides patches for e1000e and igb to fix a number issues
found in the PTP code.
The following are changes since commit e74dbb73271c5c3e822af3aa66c9a28bf7dbfbfd:
Merge branch 'bnx2x-next'
and are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
Anjali Singhai Jain (6):
i40e: Delete ATR filter on RST
i40e: Cleanup in FDIR SB ethtool code
i40e: Add functionality for FD SB to drop packets
i40e/i40evf: Add an FD message level
i40e: Use DEBUG_FD message level for an FD message
i40e: Add a fallback debug flow for the driver
Greg Rose (1):
i40e: Make the alloc and free queue vector calls orthogonal
Jakub Kicinski (4):
e1000e: add timeout for TX HW time stamping work
e1000e: remove redundant if clause from PTP work
igb: never generate both software and hardware timestamps
igb: fix race conditions on queuing skb for HW time stamp
Jesse Brandeburg (1):
i40evf: remove double space after return
Mitch Williams (1):
i40evf: fix oops in watchdog handler
Shannon Nelson (2):
i40e: eeprom integrity check on load and empr
i40e: check for netdev before debugfs use
drivers/net/ethernet/intel/e1000e/e1000.h | 2 +
drivers/net/ethernet/intel/e1000e/ethtool.c | 1 +
drivers/net/ethernet/intel/e1000e/netdev.c | 10 +-
drivers/net/ethernet/intel/i40e/i40e.h | 2 +
drivers/net/ethernet/intel/i40e/i40e_debugfs.c | 120 ++++++++++++---------
drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 39 ++++---
drivers/net/ethernet/intel/i40e/i40e_main.c | 72 ++++++++++---
drivers/net/ethernet/intel/i40e/i40e_txrx.c | 14 ++-
drivers/net/ethernet/intel/i40e/i40e_type.h | 1 +
drivers/net/ethernet/intel/i40evf/i40e_prototype.h | 2 +-
drivers/net/ethernet/intel/i40evf/i40e_type.h | 1 +
drivers/net/ethernet/intel/i40evf/i40evf.h | 1 +
drivers/net/ethernet/intel/i40evf/i40evf_main.c | 10 +-
drivers/net/ethernet/intel/igb/igb.h | 3 +-
drivers/net/ethernet/intel/igb/igb_main.c | 7 +-
drivers/net/ethernet/intel/igb/igb_ptp.c | 3 +
16 files changed, 186 insertions(+), 102 deletions(-)
--
1.8.3.1
^ permalink raw reply [flat|nested] 55+ messages in thread
* [net-next 00/15][pull request] Intel Wired LAN Driver Updates
@ 2014-03-20 8:32 Jeff Kirsher
2014-03-20 18:20 ` David Miller
0 siblings, 1 reply; 55+ messages in thread
From: Jeff Kirsher @ 2014-03-20 8:32 UTC (permalink / raw)
To: davem
Cc: Jeff Kirsher, netdev, gospo, sassmann, emil.s.tantilov, asharma,
donald.c.skidmore
This series contains updates to e100, igb, igbvf, ixgbe and ixgbevf.
Stefan adds a igb patch to enable the ability strip VLAN header information
for packets bound for a VM on i350 hardware.
Joe Perches provides patches for e100, igb, igbvf, ixgbe and ixgbevf to
convert the use of __constant_<foo> to just <foo> to align with the rest
of the kernel.
Don provides two fixes for ixgbe, first resolves a link issue with DA
cables where we were not always freeing the firmware/software semaphore
after grabbing it. Second stops caching whether the management firmware
was enabled, however since this is not static, we really need to verify
with each check.
Jacob provides six fixes/cleanups for ixgbe, most notably, correct
the stop_mac_link_on d3() to check the Core Clock Disable bit before
stopping link and to fully check to see if manage firmware is running or
could be enabled before bringing down the link. Fix flow control
auto-negation for KR/KX/K4 interfaces, since setting up MAC link, the
cached autoc value and current autoc value were being incorrectly used to
determine whether link reset is required.
Emil provides a fix for ixgbe where there was a chance for aggressive
start_ndo_zmit() callers to sneak packets between enabling the Tx queues
and the link coming up. To resolve this, move the call to enable Tx
queues to after the link is established.
The following are changes since commit a9baf10aafe7001501189099df4b91f90739e182:
qeth: Fix IP version detection for VLAN traffic
and are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
Don Skidmore (2):
ixgbe: fix errors related to protected AUTOC calls
ixgbe: Stop cacheing if the MNG FW enabled
Emil Tantilov (1):
ixgbe: enable tx queues after link up
Jacob Keller (6):
ixgbe: check Core Clock Disable bit
ixgbe: fix ixgbe_stop_mac_link_on_d3_82599 to check mng correctly
ixgbe: fix ixgbe_setup_mac_link_82599 autoc variables
ixgbe: remove unused media type
ixgbe: use ixgbe_read_pci_cfg_word
ixgbe: clean up ixgbe_atr_compute_perfect_hash_82599
Joe Perches (5):
e100: Convert uses of __constant_<foo> to <foo>
igb: Convert uses of __constant_<foo> to <foo>
igbvf: Convert uses of __constant_<foo> to <foo>
ixgbe: Convert uses of __constant_<foo> to <foo>
ixgbevf: Convert uses of __constant_<foo> to <foo>
Stefan Assmann (1):
igb: enable VLAN stripping for VMs with i350
drivers/net/ethernet/intel/e100.c | 4 +-
drivers/net/ethernet/intel/igb/e1000_82575.h | 4 +
drivers/net/ethernet/intel/igb/e1000_regs.h | 1 +
drivers/net/ethernet/intel/igb/igb_main.c | 19 ++-
drivers/net/ethernet/intel/igbvf/netdev.c | 4 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_82598.c | 1 -
drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c | 170 +++++-----------------
drivers/net/ethernet/intel/ixgbe/ixgbe_common.c | 24 +--
drivers/net/ethernet/intel/ixgbe/ixgbe_common.h | 1 +
drivers/net/ethernet/intel/ixgbe/ixgbe_fcoe.c | 8 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 68 +++++----
drivers/net/ethernet/intel/ixgbe/ixgbe_phy.h | 4 -
drivers/net/ethernet/intel/ixgbe/ixgbe_type.h | 6 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_x540.c | 1 -
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 4 +-
15 files changed, 113 insertions(+), 206 deletions(-)
--
1.8.3.1
^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: [net-next 00/15][pull request] Intel Wired LAN Driver Updates
2014-03-20 8:32 Jeff Kirsher
@ 2014-03-20 18:20 ` David Miller
0 siblings, 0 replies; 55+ messages in thread
From: David Miller @ 2014-03-20 18:20 UTC (permalink / raw)
To: jeffrey.t.kirsher
Cc: netdev, gospo, sassmann, emil.s.tantilov, asharma,
donald.c.skidmore
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Thu, 20 Mar 2014 01:32:50 -0700
> This series contains updates to e100, igb, igbvf, ixgbe and ixgbevf.
...
> git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
Pulled, thanks Jeff.
^ permalink raw reply [flat|nested] 55+ messages in thread
* [net-next 00/15][pull request] Intel Wired LAN Driver Updates
@ 2014-03-08 9:25 Jeff Kirsher
2014-03-08 23:50 ` David Miller
0 siblings, 1 reply; 55+ messages in thread
From: Jeff Kirsher @ 2014-03-08 9:25 UTC (permalink / raw)
To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann
This series contains updates to e1000e, ixgbevf and igb.
Majority of this series contains fixes and cleanups to e1000e,
most notably are:
Todd provides a fix to PTP in e1000e which adds a lock in e1000e_phc_adjfreq
to prevent concurrent changes to TIMINCA and SYSTIMH/L. Then provides an
igb fix to use ARRAY_SIZE for array size calculation.
David provides the remaining e1000e which contain:
- cleanup of pointer references that are no longer used
- fix an issue on systems with Management Engine enabled with the
ethernet cable unplugged
- fix an issue on 82579 where enabling EEE LPI sooner than one second
after link up causes link issues on some switches
- refactor the power management flows to prevent the suspend path from
being executed twice when hibernating
- refactor the runtime power management to fix interfering with the
functionality of Energy Efficient Ethernet when enabled and to fix
the device from repeatedly flip between suspend and resume with the
interface administratively downed
- enable the feature PHY Ultra Low Power Mode which is a power saving
feature that reduces the power consumption of the PHY when a cable is
not connected
- fix the ethtool offline tests for 82579 parts
- fix SHRA register access for 82579 parts which was introduced by
previous commit c3a0dce35af0 "e1000e: fix overrun of PHY RAR array"
Florian provides a fix for ixgbevf where skb->pkt_type was being checked
like a bitmask, but it is not a bitmask.
Fix an issue reported by Stephen Hemminger where there was a warning
about code defined but never used if IGB_HWMON is not defined.
The following are changes since commit 37147652cfaa20a87ead9bb04aec1834b40c5c97:
6lowpan: reassembly: fix return of init function
and are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
David Ertman (11):
e1000e: Cleanup unecessary references
e1000e: Resolve issues with Management Engine (ME) briefly blocking
PHY resets
e1000e: Fix 82579 sets LPI too early.
e1000e: Cleanup - Update GPL header and Copyright
e1000e: Add missing branding strings in ich8lan.c
e1000e: Refactor PM flows
e1000e Refactor of Runtime Power Management
e1000e: Feature Enable PHY Ultra Low Power Mode (ULP)
e1000e: Fix not generating an error on invalid load parameter
e1000e: Fix ethtool offline tests for 82579 parts
e1000e: Fix SHRA register access for 82579
Florian Fainelli (1):
ixgbevf: fix skb->pkt_type checks
Jeff Kirsher (1):
igb: fix warning if !CONFIG_IGB_HWMON
Todd Fujinaka (2):
e1000e: PTP lock in e1000e_phc_adjustfreq
igb: fix array size calculation
drivers/net/ethernet/intel/e1000e/80003es2lan.c | 47 +--
drivers/net/ethernet/intel/e1000e/80003es2lan.h | 47 +--
drivers/net/ethernet/intel/e1000e/82571.c | 47 +--
drivers/net/ethernet/intel/e1000e/82571.h | 47 +--
drivers/net/ethernet/intel/e1000e/Makefile | 7 +-
drivers/net/ethernet/intel/e1000e/defines.h | 55 ++-
drivers/net/ethernet/intel/e1000e/e1000.h | 50 ++-
drivers/net/ethernet/intel/e1000e/ethtool.c | 63 ++--
drivers/net/ethernet/intel/e1000e/hw.h | 55 +--
drivers/net/ethernet/intel/e1000e/ich8lan.c | 427 ++++++++++++++++++----
drivers/net/ethernet/intel/e1000e/ich8lan.h | 72 ++--
drivers/net/ethernet/intel/e1000e/mac.c | 47 +--
drivers/net/ethernet/intel/e1000e/mac.h | 47 +--
drivers/net/ethernet/intel/e1000e/manage.c | 47 +--
drivers/net/ethernet/intel/e1000e/manage.h | 47 +--
drivers/net/ethernet/intel/e1000e/netdev.c | 286 +++++++++------
drivers/net/ethernet/intel/e1000e/nvm.c | 47 +--
drivers/net/ethernet/intel/e1000e/nvm.h | 47 +--
drivers/net/ethernet/intel/e1000e/param.c | 53 ++-
drivers/net/ethernet/intel/e1000e/phy.c | 47 +--
drivers/net/ethernet/intel/e1000e/phy.h | 47 +--
drivers/net/ethernet/intel/e1000e/ptp.c | 52 ++-
drivers/net/ethernet/intel/e1000e/regs.h | 48 ++-
drivers/net/ethernet/intel/igb/e1000_82575.c | 6 +-
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 3 +-
25 files changed, 1003 insertions(+), 738 deletions(-)
--
1.8.3.1
^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: [net-next 00/15][pull request] Intel Wired LAN Driver Updates
2014-03-08 9:25 Jeff Kirsher
@ 2014-03-08 23:50 ` David Miller
2014-03-09 0:10 ` David Miller
0 siblings, 1 reply; 55+ messages in thread
From: David Miller @ 2014-03-08 23:50 UTC (permalink / raw)
To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Sat, 8 Mar 2014 01:25:26 -0800
> This series contains updates to e1000e, ixgbevf and igb.
...
> git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
Pulled, thanks a lot Jeff, and again welcome back.
^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: [net-next 00/15][pull request] Intel Wired LAN Driver Updates
2014-03-08 23:50 ` David Miller
@ 2014-03-09 0:10 ` David Miller
2014-03-09 1:12 ` Jeff Kirsher
0 siblings, 1 reply; 55+ messages in thread
From: David Miller @ 2014-03-09 0:10 UTC (permalink / raw)
To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann
From: David Miller <davem@davemloft.net>
Date: Sat, 08 Mar 2014 18:50:08 -0500 (EST)
> From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
> Date: Sat, 8 Mar 2014 01:25:26 -0800
>
>> This series contains updates to e1000e, ixgbevf and igb.
> ...
>> git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
>
> Pulled, thanks a lot Jeff, and again welcome back.
Jeff, please get this new warning fixed, thanks:
drivers/net/ethernet/intel/i40e/i40e_ethtool.c: In function ‘i40e_del_fdir_entry’:
drivers/net/ethernet/intel/i40e/i40e_ethtool.c:1441:18: warning: unused variable ‘pf’ [-Wunused-variable]
struct i40e_pf *pf = vsi->back;
^
^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: [net-next 00/15][pull request] Intel Wired LAN Driver Updates
2014-03-09 0:10 ` David Miller
@ 2014-03-09 1:12 ` Jeff Kirsher
0 siblings, 0 replies; 55+ messages in thread
From: Jeff Kirsher @ 2014-03-09 1:12 UTC (permalink / raw)
To: David Miller; +Cc: netdev, gospo, sassmann
[-- Attachment #1: Type: text/plain, Size: 913 bytes --]
On Sat, 2014-03-08 at 19:10 -0500, David Miller wrote:
> From: David Miller <davem@davemloft.net>
> Date: Sat, 08 Mar 2014 18:50:08 -0500 (EST)
>
> > From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
> > Date: Sat, 8 Mar 2014 01:25:26 -0800
> >
> >> This series contains updates to e1000e, ixgbevf and igb.
> > ...
> >> git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next
> master
> >
> > Pulled, thanks a lot Jeff, and again welcome back.
>
> Jeff, please get this new warning fixed, thanks:
>
> drivers/net/ethernet/intel/i40e/i40e_ethtool.c: In function
> ‘i40e_del_fdir_entry’:
> drivers/net/ethernet/intel/i40e/i40e_ethtool.c:1441:18: warning:
> unused variable ‘pf’ [-Wunused-variable]
> struct i40e_pf *pf = vsi->back;
Yeah, I noticed that as well. I have a patch in my queue already to
resolve that, should be in my next pull request. Thanks Dave!
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
^ permalink raw reply [flat|nested] 55+ messages in thread
* [net-next 00/15][pull request] Intel Wired LAN Driver Updates
@ 2014-01-09 12:52 Jeff Kirsher
2014-01-09 20:13 ` David Miller
0 siblings, 1 reply; 55+ messages in thread
From: Jeff Kirsher @ 2014-01-09 12:52 UTC (permalink / raw)
To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann
This series contains updates to i40e only.
Anjali provides a fix where interrupts were not being re-enabled on ICR0
even though they were auto masked by hardware. Then provides a fix to
cleanup RSS initialization because it was doing some extra work, so
remove the extra work and any bugs it created when managing number of
queues. Since hardware requires a full packet template to be pointed to
when adding hardware flow filters, add the template and use it for
programming filters.
Jesse provides a fix to replace the use of driver specific defines with
kernel ETH_ALEN defines. Then disables packet split because with the
use of GRO, we do not need the extra bus overhead. Fixes spelling
error in code comment.
Kamil provides a fix for the driver where the hardware expects the MAC
address in a very specific format and the driver was filing the data
incorrectly.
Mitch provides a fix to resolve a panic on reset by adding checks to
VSI->rx_rings. Then shortens alloc_rx_buff_failed and
alloc_rx_page_failed variables since both part of an RX specific
structure so just remove the _rx part of the name. Then fixes
badly formatted lines, long lines and mis-formatted lines.
Shannon provides a fix to call AQ to release any reservation held by this
PF on the NVM resource lock on startup, in order to clear anything that
might have been left over from a previous run. Then removes interrupt on
AQ error since nearly everything we do is synchronous, using the
interrupt-on-error bit is unnecessary and causing unneeded interrupts.
Adds code to handle the ability to send messages among the physical
function interfaces by the admin queue.
Catherine sets the MFP flag earlier in software init and uses that flag
to decide if other hardware work-arounds are required which turns
off flow director in MFP mode.
The following are changes since commit 54b553e2c16001d13e0186cad2531764065f9a1b:
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf-next
and are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
Anjali Singhai Jain (2):
i40e: Re-enable interrupt on ICR0
i40e: Cleanup reconfig rss path
Catherine Sullivan (1):
i40e: Turn flow director off in MFP mode
Greg Rose (2):
i40e: Fix GPL header
i40e: add a comment on barrier and fix panic on reset
Jesse Brandeburg (4):
i40e: use kernel specific defines
i40e: disable packet split
i40e: fix spelling errors
i40e: Add a dummy packet template
Kamil Krawczyk (1):
i40e: Fix MAC format in Write MAC address AQ cmd
Mitch Williams (2):
i40e: shorten wordy fields
i40e: trivial: formatting and checkpatch fixes
Shannon Nelson (3):
i40e: release NVM resource reservation on startup
i40e: remove interrupt on AQ error
i40e: accept pf to pf adminq messages
drivers/net/ethernet/intel/i40e/Makefile | 7 +--
drivers/net/ethernet/intel/i40e/i40e.h | 7 +--
drivers/net/ethernet/intel/i40e/i40e_adminq.c | 12 ++--
drivers/net/ethernet/intel/i40e/i40e_adminq.h | 7 +--
drivers/net/ethernet/intel/i40e/i40e_adminq_cmd.h | 7 +--
drivers/net/ethernet/intel/i40e/i40e_alloc.h | 7 +--
drivers/net/ethernet/intel/i40e/i40e_common.c | 14 +++--
drivers/net/ethernet/intel/i40e/i40e_debugfs.c | 13 ++---
drivers/net/ethernet/intel/i40e/i40e_diag.c | 7 +--
drivers/net/ethernet/intel/i40e/i40e_diag.h | 7 +--
drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 33 ++++++++---
drivers/net/ethernet/intel/i40e/i40e_hmc.c | 7 +--
drivers/net/ethernet/intel/i40e/i40e_hmc.h | 7 +--
drivers/net/ethernet/intel/i40e/i40e_lan_hmc.c | 7 +--
drivers/net/ethernet/intel/i40e/i40e_lan_hmc.h | 7 +--
drivers/net/ethernet/intel/i40e/i40e_main.c | 68 +++++++++++-----------
drivers/net/ethernet/intel/i40e/i40e_nvm.c | 7 +--
drivers/net/ethernet/intel/i40e/i40e_osdep.h | 7 +--
drivers/net/ethernet/intel/i40e/i40e_prototype.h | 7 +--
drivers/net/ethernet/intel/i40e/i40e_register.h | 7 +--
drivers/net/ethernet/intel/i40e/i40e_status.h | 7 +--
drivers/net/ethernet/intel/i40e/i40e_txrx.c | 44 +++++++-------
drivers/net/ethernet/intel/i40e/i40e_txrx.h | 11 ++--
drivers/net/ethernet/intel/i40e/i40e_type.h | 15 ++---
drivers/net/ethernet/intel/i40e/i40e_virtchnl.h | 11 ++--
drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 10 ++--
drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.h | 7 +--
27 files changed, 176 insertions(+), 174 deletions(-)
--
1.8.3.1
^ permalink raw reply [flat|nested] 55+ messages in thread
* [net-next 00/15][pull request] Intel Wired LAN Driver Updates
@ 2014-01-07 9:32 Jeff Kirsher
0 siblings, 0 replies; 55+ messages in thread
From: Jeff Kirsher @ 2014-01-07 9:32 UTC (permalink / raw)
To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann
This series contains updates to i40e only.
Anjali adds more functionality to debugfs to assist development and
testing of admin queue commands.
Greg makes sure broadcast promiscuous is disabled by default, otherwise
VLAN tagged packets out of the assigned VLAN domain are received. Also
provides a fix when the 8021q driver is loaded, so that VLAN 0 tagged
packets are accepted so that upper layers can interpret the priority
bits. Then provides a fix to let the VF to request the PF to set its
already assigned MAC address without generating an error. Greg also
adds helper functions to enable or disable internal switch loopback
when VFs are created or destroyed via the sysfs interface.
Shannon provides most of the changes, where he adds code to ensure
that the hardware waits to make sure that the firmware is ready as well
after reset. Also updates the code to use the new features in the
firmware. Provides a fix while in MFP mode where resources are
reduced, so use a smaller range of test registers than when in SFP mode.
Moves the PF ID initialization code to earlier in the driver
initialization function since a few operations need the information
before the first PF reset is called. Shannon adds a check for MAC
type before reading anything from the registers to ensure we dealing
with the correct MAC type. Then reworks Shadow RAM read word/buffer
functions as to not block whole NVM resources for SR read operations.
Mitch lastly provides a fix to correctly setup ARQ descriptors in
the cleanup code.
Catherine bumps the driver version due to all the recent changes.
The following are changes since commit 83111e7fe85f2dc8b61e463c71b971f4998d8e53:
netfilter: Fix build failure in nfnetlink_queue_core.c.
and are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
Anjali Singhai Jain (1):
i40e: Expose AQ debugfs hooks
Catherine Sullivan (1):
i40e: Bump version
Greg Rose (4):
i40e: Do not enable broadcast promiscuous by default
i40e: Stop accepting any VLAN tag on VLAN 0 filter set
i40e: Allow VF to set already assigned MAC address
i40e: Enable/Disable PF switch LB on SR-IOV configure changes
Kamil Krawczyk (1):
i40e: remove redundant AQ enable
Mitch Williams (1):
i40e: correctly setup ARQ descriptors
Shannon Nelson (7):
i40e: Add code to wait for FW to complete in reset path
i40e: update firmware api to 1.1
i40e: Reduce range of interrupt reg in reg test
i40e: move PF ID init from PF reset to SC init
i40e: check MAC type before any REG access
i40e: rework shadow ram read functions
i40e: whitespace paren and comment tweaks
drivers/net/ethernet/intel/i40e/i40e_adminq.c | 27 ++---
drivers/net/ethernet/intel/i40e/i40e_adminq_cmd.h | 126 +++++++++++++++------
drivers/net/ethernet/intel/i40e/i40e_common.c | 51 ++++++---
drivers/net/ethernet/intel/i40e/i40e_debugfs.c | 112 ++++++++++++++++++
drivers/net/ethernet/intel/i40e/i40e_diag.c | 6 +-
drivers/net/ethernet/intel/i40e/i40e_main.c | 29 ++---
drivers/net/ethernet/intel/i40e/i40e_nvm.c | 67 +++--------
drivers/net/ethernet/intel/i40e/i40e_register.h | 22 ++++
drivers/net/ethernet/intel/i40e/i40e_type.h | 11 +-
drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 100 +++++++++++++---
10 files changed, 395 insertions(+), 156 deletions(-)
--
1.8.3.1
^ permalink raw reply [flat|nested] 55+ messages in thread
* [net-next 00/15][pull request] Intel Wired LAN Driver Updates
@ 2014-01-06 12:30 Jeff Kirsher
2014-01-06 18:26 ` David Miller
0 siblings, 1 reply; 55+ messages in thread
From: Jeff Kirsher @ 2014-01-06 12:30 UTC (permalink / raw)
To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann
This series contains updates to i40e only.
Majority of this series contains patches from Greg and Mitch to fix
up or add functionality to the PF/VF driver interactions. Notably,
a fix for SR-IOV VF port VLAN which resolved the problem of port VLAN
configurations not being persistent across VF driver loads and unloads
and enable/disable of the feature. Also do not enable the default port
on the VEB, which is designed only to bridge the PF to an Open vSwitch
or bridge. Another fix to resolve a possible memory corruption
condition where ARQ messages are written to random memory locations.
Fix a problem where the 'ip link show' command would display stale
link address information after the link address was set via the 'ip
link set' command.
Anjali provides several patches, one which saves information that can
be used while cleaning the Tx ring and useful in detecting Tx hangs.
Then provides a fixes to the admin queue shutdown function to ensure
we are shutting down the queue in the shutdown path and ensure ASQ is
alive before issuing the admin queue command.
Shannon provides a fix for get/update vsi params where the incorrect
struct was being used.
The following are changes since commit b912b2f8fc71df4c3ffa7a9fe2c2227e8bcdaa07:
net/mlx4_core: Warn if device doesn't have enough PCI bandwidth
and are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
Anjali Singhai Jain (4):
i40e: Record dma buffer info for dummy packets
i40e: Admin queue shutdown fixes
i40e: check asq alive before notify
i40e: Do not allow AQ calls from ndo-ops
Greg Rose (4):
i40e: Fix SR-IOV VF port VLAN
i40e: Do not enable default port on the VEB
i40e: Fix VF driver MAC address configuration
i40e: Hide the Port VLAN VLAN ID
Jesse Brandeburg (1):
i40e: fix whitespace
Mitch Williams (5):
i40e: avoid unnecessary register read
i40e: use struct assign instead of memcpy
i40e: don't allocate zero size
i40e: acknowledge VFLR when disabling SR-IOV
i40e: support VFs on PFs other than 0
Shannon Nelson (1):
i40e: use correct struct for get and update vsi params
drivers/net/ethernet/intel/i40e/i40e_adminq.c | 3 +
drivers/net/ethernet/intel/i40e/i40e_common.c | 75 ++++++++------
drivers/net/ethernet/intel/i40e/i40e_debugfs.c | 1 +
drivers/net/ethernet/intel/i40e/i40e_main.c | 45 ++++----
drivers/net/ethernet/intel/i40e/i40e_prototype.h | 5 +-
drivers/net/ethernet/intel/i40e/i40e_txrx.c | 9 +-
drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 114 ++++++++++++++++-----
drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.h | 2 +
8 files changed, 169 insertions(+), 85 deletions(-)
--
1.8.3.1
^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: [net-next 00/15][pull request] Intel Wired LAN Driver Updates
2014-01-06 12:30 Jeff Kirsher
@ 2014-01-06 18:26 ` David Miller
2014-01-06 18:49 ` Jeff Kirsher
2014-01-06 20:14 ` Jeff Kirsher
0 siblings, 2 replies; 55+ messages in thread
From: David Miller @ 2014-01-06 18:26 UTC (permalink / raw)
To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Mon, 6 Jan 2014 04:30:21 -0800
> This series contains updates to i40e only.
...
> git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
Pulled, please make sure the coding style feedback does actually
get addressed.
Thanks Jeff.
^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: [net-next 00/15][pull request] Intel Wired LAN Driver Updates
2014-01-06 18:26 ` David Miller
@ 2014-01-06 18:49 ` Jeff Kirsher
2014-01-06 20:14 ` Jeff Kirsher
1 sibling, 0 replies; 55+ messages in thread
From: Jeff Kirsher @ 2014-01-06 18:49 UTC (permalink / raw)
To: David Miller; +Cc: netdev, gospo, sassmann
[-- Attachment #1: Type: text/plain, Size: 459 bytes --]
On Mon, 2014-01-06 at 13:26 -0500, David Miller wrote:
> From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
> Date: Mon, 6 Jan 2014 04:30:21 -0800
>
> > This series contains updates to i40e only.
> ...
> > git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
>
> Pulled, please make sure the coding style feedback does actually
> get addressed.
>
> Thanks Jeff.
Yes, I will make sure it is in one of the upcoming series.
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: [net-next 00/15][pull request] Intel Wired LAN Driver Updates
2014-01-06 18:26 ` David Miller
2014-01-06 18:49 ` Jeff Kirsher
@ 2014-01-06 20:14 ` Jeff Kirsher
1 sibling, 0 replies; 55+ messages in thread
From: Jeff Kirsher @ 2014-01-06 20:14 UTC (permalink / raw)
To: David Miller, Sergei Shtylyov; +Cc: netdev, gospo, sassmann
[-- Attachment #1: Type: text/plain, Size: 500 bytes --]
On Mon, 2014-01-06 at 13:26 -0500, David Miller wrote:
> From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
> Date: Mon, 6 Jan 2014 04:30:21 -0800
>
> > This series contains updates to i40e only.
> ...
> > git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
>
> Pulled, please make sure the coding style feedback does actually
> get addressed.
>
> Thanks Jeff.
Just to be clear, this coding style will be fixed in patch 13 of the
next series I am sending out.
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
^ permalink raw reply [flat|nested] 55+ messages in thread
* [net-next 00/15][pull request] Intel Wired LAN Driver Updates
@ 2014-01-05 10:46 Jeff Kirsher
2014-01-06 1:31 ` David Miller
0 siblings, 1 reply; 55+ messages in thread
From: Jeff Kirsher @ 2014-01-05 10:46 UTC (permalink / raw)
To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann
This series contains updates to i40e only.
Anjali provides two cleanups to remove unnecessary code and a fix
to resolve debugfs dumping only half the NVM. Then provides a fix
to ethtool NVM reads where shadow RAM was used instead of actual
NVM reads.
Jesse provides a couple of fixes, one removes custom i40e functions
which duplicate existing kernel functionality. Second fixes constant
cast issues by replacing __constant_htons with htons.
Mitch provides a couple of fixes for the VF interfaces in i40e. First
provides a fix to guard against VF message races with can cause a panic.
Second fix reinitializes the buffer size each time we clean the ARQ,
because subsequent messages can be truncated. Lastly adds functionality
to enable/disable ICR 0 dynamically.
Vasu adds a simple guard against multiple includes of the i40e_txrx.h
file.
Shannon provides a couple of fixes, first fix swaps a couple of lines
around in the error handling if the allocation for the VSI array fails.
Second fixes an issue where we try to free the q_vector that has not
been setup which can panic the kernel.
David provides a patch to save off the point to memory and the length
of 2 structs used in the admin queue in order to store all info about
allocated kernel memory.
Neerav fixes ring allocation where allocation and clearing of rings
for a VSI should be using the alloc_queue_pairs and not num_queue_pairs.
Then removes the unused define for multi-queue enabled.
The following are changes since commit a1d4b03a076d95edc88d070f7627a73ab80abddc:
Merge branch 'bgmac'
and are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
Anjali Singhai Jain (4):
i40e: Dump the whole NVM, not half
i40e: Change the ethtool NVM read method to use AQ
i40e: Remove unnecessary prototypes
i40e: remove un-necessary io-write
David Cassard (1):
i40e: keep allocated memory in structs
Jesse Brandeburg (2):
i40e: fix mac address checking
i40e: fix constant cast issues
Mitch Williams (3):
i40e: guard against vf message races
i40e: use functions to enable and disable icr 0
i40e: reinit buffer size each time
Neerav Parikh (2):
i40e: Fix ring allocation
i40e: I40E_FLAG_MQ_ENABLED is not used
Shannon Nelson (2):
i40e: fix error handling when alloc of vsi array fails
i40e: catch unset q_vector
Vasu Dev (1):
i40e: add header file flag _I40E_TXRX_H_
drivers/net/ethernet/intel/i40e/i40e.h | 40 +++-----
drivers/net/ethernet/intel/i40e/i40e_adminq.c | 103 +++++++++------------
drivers/net/ethernet/intel/i40e/i40e_adminq.h | 13 +--
drivers/net/ethernet/intel/i40e/i40e_common.c | 27 ------
drivers/net/ethernet/intel/i40e/i40e_debugfs.c | 8 +-
drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 68 +++++++++-----
drivers/net/ethernet/intel/i40e/i40e_main.c | 47 +++++-----
drivers/net/ethernet/intel/i40e/i40e_prototype.h | 1 -
drivers/net/ethernet/intel/i40e/i40e_txrx.c | 8 +-
drivers/net/ethernet/intel/i40e/i40e_txrx.h | 4 +
drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 28 +++---
11 files changed, 162 insertions(+), 185 deletions(-)
--
1.8.3.1
^ permalink raw reply [flat|nested] 55+ messages in thread
* [net-next 00/15][pull request] Intel Wired LAN Driver Updates
@ 2013-12-19 6:34 Jeff Kirsher
2013-12-19 19:20 ` Jeff Kirsher
0 siblings, 1 reply; 55+ messages in thread
From: Jeff Kirsher @ 2013-12-19 6:34 UTC (permalink / raw)
To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann
This series contains updates to i40e only.
Anjali provides a patch to prevent messages from stray HMC events, except
at interrupt message level, and refactors the HMC error handling.
Catherine adds routines in probe to populate/check PCI bus speed and width,
then verify we are in a 8GT/s x8 PCIe slot and warn when we are not.
Shannon adds Wake-on-LAN support for i40e, fixes curly brace use as well as
return type for i40e_vsi_clear_rings(). Lastly implements the set_settings
and set_pauseparam ethtool functionality.
Joseph implements receive offload for VXLAN for i40e, where the hardware
supports checksum offload/verification of the inner/outer header.
Mitch provides the bulk of the changes, where he refactors the VF reset
code so that it works on real hardware. Then does code cleanup by
calling existing functions to enable and disable queues for VFs and
remove unused functions. Removes a unnecessary log messages that are
seen at every VF reset, for example complaining about disabling queues
that are already disabled. Fixes an error return when the VF asks to
add an invalid MAC address and if the VF sends a bad message, make it
more informative about what is actually going on.
Jesse refactors the LED function to flash LED lights correctly.
The following are changes since commit 020e867c755610fa5a2a08a69707e636cf368b55:
isdn: use strlcpy() instead strcpy()
and are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
Anjali Singhai Jain (1):
i40e: Suppress HMC error to Interrupt message level
Catherine Sullivan (1):
i40e: Populate and check pci bus speed and width
Jesse Brandeburg (1):
i40e: update led set args
Joseph Gasparakis (1):
i40e: Rx checksum offload for VXLAN
Mitch Williams (8):
i40e: move i40e_reset_vf
i40e: refactor VF reset flow
i40e: remove redundant code
i40e: remove chatty log messages
i40e: fix error return
i40e: be more informative
i40e: make a define from a large constant
i40e: report VF MAC addresses correctly
Shannon Nelson (3):
i40e: add wake-on-lan support
i40e: fix curly brace use and return type
i40e: add set settings and pauseparam
drivers/net/ethernet/intel/i40e/i40e.h | 3 +
drivers/net/ethernet/intel/i40e/i40e_common.c | 136 ++++-
drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 145 +++++-
drivers/net/ethernet/intel/i40e/i40e_main.c | 105 ++--
drivers/net/ethernet/intel/i40e/i40e_prototype.h | 3 +-
drivers/net/ethernet/intel/i40e/i40e_txrx.c | 56 ++-
drivers/net/ethernet/intel/i40e/i40e_txrx.h | 20 +
drivers/net/ethernet/intel/i40e/i40e_type.h | 61 ++-
drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 559 ++++++---------------
drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.h | 2 +-
10 files changed, 572 insertions(+), 518 deletions(-)
--
1.8.3.1
^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: [net-next 00/15][pull request] Intel Wired LAN Driver Updates
2013-12-19 6:34 Jeff Kirsher
@ 2013-12-19 19:20 ` Jeff Kirsher
2013-12-19 19:47 ` David Miller
0 siblings, 1 reply; 55+ messages in thread
From: Jeff Kirsher @ 2013-12-19 19:20 UTC (permalink / raw)
To: davem; +Cc: netdev, gospo, sassmann
[-- Attachment #1: Type: text/plain, Size: 1897 bytes --]
On Wed, 2013-12-18 at 22:34 -0800, Jeff Kirsher wrote:
> This series contains updates to i40e only.
>
> Anjali provides a patch to prevent messages from stray HMC events,
> except
> at interrupt message level, and refactors the HMC error handling.
>
> Catherine adds routines in probe to populate/check PCI bus speed and
> width,
> then verify we are in a 8GT/s x8 PCIe slot and warn when we are not.
>
> Shannon adds Wake-on-LAN support for i40e, fixes curly brace use as
> well as
> return type for i40e_vsi_clear_rings(). Lastly implements the
> set_settings
> and set_pauseparam ethtool functionality.
>
> Joseph implements receive offload for VXLAN for i40e, where the
> hardware
> supports checksum offload/verification of the inner/outer header.
>
> Mitch provides the bulk of the changes, where he refactors the VF
> reset
> code so that it works on real hardware. Then does code cleanup by
> calling existing functions to enable and disable queues for VFs and
> remove unused functions. Removes a unnecessary log messages that are
> seen at every VF reset, for example complaining about disabling queues
> that are already disabled. Fixes an error return when the VF asks to
> add an invalid MAC address and if the VF sends a bad message, make it
> more informative about what is actually going on.
>
> Jesse refactors the LED function to flash LED lights correctly.
>
> The following are changes since commit
> 020e867c755610fa5a2a08a69707e636cf368b55:
> isdn: use strlcpy() instead strcpy()
> and are available in the git repository at:
> git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next
> master
Dave-
Disregard this pull request. I overlooked a patch that needs to either
precede this series or get added to the series for VXLAN.
I will be sending out a v2 with the necessary patch added.
Cheers,
Jeff
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: [net-next 00/15][pull request] Intel Wired LAN Driver Updates
2013-12-19 19:20 ` Jeff Kirsher
@ 2013-12-19 19:47 ` David Miller
0 siblings, 0 replies; 55+ messages in thread
From: David Miller @ 2013-12-19 19:47 UTC (permalink / raw)
To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Thu, 19 Dec 2013 11:20:36 -0800
> Disregard this pull request. I overlooked a patch that needs to either
> precede this series or get added to the series for VXLAN.
>
> I will be sending out a v2 with the necessary patch added.
Ok.
^ permalink raw reply [flat|nested] 55+ messages in thread
* [net-next 00/15][pull request] Intel Wired LAN Driver Updates
@ 2013-12-12 12:40 Jeff Kirsher
0 siblings, 0 replies; 55+ messages in thread
From: Jeff Kirsher @ 2013-12-12 12:40 UTC (permalink / raw)
To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann
This series contains updates to i40e only (again).
Jesse provides a fix for when tx_rings structure is NULL and we do not want
to panic. Then refactors the flow control set up and disables L2 flow control
by default. Provides some trivial fixes as well as prevent compiler warnings.
Then to align to similar behaviour in ixgbe, use the total number of CPUs in
the system to suggest the number of transmit and receive queue pairs.
Shannon provides a i40e ethtool fix to get some more reasonable information
reports back out to the ethtool. In addition, fixes PF reset after offline
test, where it reorders the test to put the register test last as it is the
only one that needs a reset, and we wait to trigger the reset until after we
clear the testing bit. Lastly provides basic support for handling suspend
and resume for now, later on Wake-On-LAN support will be added.
Elizabeth Kappler adds netdev ops helper function.
Anjali provides changes to tell the stack about our actual number of queues
in order for RFS/RPS/XFS to work correctly. Then provides several patches to
implement dynamically changing the queue count for the main VSI. Adds
basic support for get/set channels for RSS so that the number of receive and
transmit queue pair can be changed via ethtool. Cleans up the use of
rtnl_lock in the reset patch since it runs from a work time.
Neerav Parikh cleans up the VF interface to remove FCoE code as this
feature will not be supported on VF interfaces.
The following are changes since commit c45f812f0280c13f1b7992be5e0de512312a9e8f:
8390 : Replace ei_debug with msg_enable/NETIF_MSG_* feature
and are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
Anjali Singhai Jain (6):
i40e: Tell the stack about our actual number of queues
i40e: reinit flow for the main VSI
i40e: function to reconfigure RSS queues and rebuild
i40e: debugfs command to change RSS queue count
i40e: Add basic support for get/set channels for RSS
i40e: rtnl_lock in reset path fixes
Elizabeth Kappler (1):
i40e: add netdev ops helper function
Jesse Brandeburg (5):
i40e: fix null dereference
i40e: fix up some of the ethtool connection reporting
i40e: init flow control settings to disabled
i40e: trivial fixes
i40e: use same number of queues as CPUs
Neerav Parikh (1):
i40e: Remove FCoE in i40e_virtchnl_pf.c code
Shannon Nelson (2):
i40e: fix pf reset after offline test
i40e: support for suspend and resume
drivers/net/ethernet/intel/i40e/i40e.h | 6 +-
drivers/net/ethernet/intel/i40e/i40e_debugfs.c | 22 +-
drivers/net/ethernet/intel/i40e/i40e_diag.c | 2 +-
drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 146 +++++++-
drivers/net/ethernet/intel/i40e/i40e_hmc.c | 2 +-
drivers/net/ethernet/intel/i40e/i40e_main.c | 380 ++++++++++++++++++---
drivers/net/ethernet/intel/i40e/i40e_type.h | 4 +
drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 29 +-
8 files changed, 499 insertions(+), 92 deletions(-)
--
1.8.3.1
^ permalink raw reply [flat|nested] 55+ messages in thread
* [net-next 00/15][pull request] Intel Wired LAN Driver Updates
@ 2013-12-06 8:06 Jeff Kirsher
2013-12-06 19:49 ` David Miller
0 siblings, 1 reply; 55+ messages in thread
From: Jeff Kirsher @ 2013-12-06 8:06 UTC (permalink / raw)
To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann
This series contains updates to i40e only.
Christopher Pau provides a patch to set pf_id based on device and
function numbers since NICs with ARI enabled can have function
numbers larger than 8.
Anjali provides 3 i40e patches to update hardware defines to keep
in sync with hardware updates.
Shannon provides the majority of i40e patches, with 7. First patch
clears the admin queue head and tail registers during admin queue
shutdown. Then simplifies the admin queue head-tail-len setups to
use more virtual registers. Provides several patches to cleanup
and fix driver load and reset procedures to make more robust. Lastly,
provides an ethtool test for interrupts using the software interrupt.
Mitch provides some i40e patches which fixes up VF code in the PF
driver, specifically the number of vectors per VF are reported by the
hardware does not include vector 0, so we need to account for this
when checking. In addition, cleans up debugging messages.
Kamil provides an i40e patch to fix the diagnostics test by restricting
the diagnostic test length.
The following are changes since commit d70f2cf520cf8c86c6b467fc5dcea524ec51dc2f:
macvlan: Support creating macvtaps from macvlans
and are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
Anjali Singhai Jain (3):
i40e: sync header files with hardware
i40e: register file updates
i40e: firmware version fields offsets update
Christopher Pau (1):
i40e: set pf_id based on device and function numbers
Kamil Krawczyk (1):
i40e: restrict diag test length
Mitch Williams (3):
i40e: allow one more vector for VFs
i40e: properly add VF MAC addresses
i40e: fix debugging messages
Shannon Nelson (7):
i40e: clear AQ head and tail registers
i40e: simplify aq head-tail-len setups
i40e: select reset counters correctly
i40e: retry call on timeout
i40e: default debug mask setting
i40e: add interrupt test
i40e: add support for triggering EMPR
drivers/net/ethernet/intel/i40e/i40e.h | 19 +--
drivers/net/ethernet/intel/i40e/i40e_adminq.c | 66 +++++-----
drivers/net/ethernet/intel/i40e/i40e_adminq.h | 1 +
drivers/net/ethernet/intel/i40e/i40e_common.c | 6 +-
drivers/net/ethernet/intel/i40e/i40e_debugfs.c | 4 +
drivers/net/ethernet/intel/i40e/i40e_diag.c | 8 +-
drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 10 +-
drivers/net/ethernet/intel/i40e/i40e_lan_hmc.h | 4 +-
drivers/net/ethernet/intel/i40e/i40e_main.c | 37 +++++-
drivers/net/ethernet/intel/i40e/i40e_register.h | 134 +++++++--------------
drivers/net/ethernet/intel/i40e/i40e_type.h | 11 +-
drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 8 +-
12 files changed, 155 insertions(+), 153 deletions(-)
--
1.8.3.1
^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: [net-next 00/15][pull request] Intel Wired LAN Driver Updates
2013-12-06 8:06 Jeff Kirsher
@ 2013-12-06 19:49 ` David Miller
0 siblings, 0 replies; 55+ messages in thread
From: David Miller @ 2013-12-06 19:49 UTC (permalink / raw)
To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Fri, 6 Dec 2013 00:06:13 -0800
> This series contains updates to i40e only.
>
> Christopher Pau provides a patch to set pf_id based on device and
> function numbers since NICs with ARI enabled can have function
> numbers larger than 8.
>
> Anjali provides 3 i40e patches to update hardware defines to keep
> in sync with hardware updates.
>
> Shannon provides the majority of i40e patches, with 7. First patch
> clears the admin queue head and tail registers during admin queue
> shutdown. Then simplifies the admin queue head-tail-len setups to
> use more virtual registers. Provides several patches to cleanup
> and fix driver load and reset procedures to make more robust. Lastly,
> provides an ethtool test for interrupts using the software interrupt.
>
> Mitch provides some i40e patches which fixes up VF code in the PF
> driver, specifically the number of vectors per VF are reported by the
> hardware does not include vector 0, so we need to account for this
> when checking. In addition, cleans up debugging messages.
>
> Kamil provides an i40e patch to fix the diagnostics test by restricting
> the diagnostic test length.
Pulled, thanks a lot Jeff.
^ permalink raw reply [flat|nested] 55+ messages in thread
* [net-next 00/15][pull request] Intel Wired LAN Driver Updates
@ 2013-08-21 8:23 Jeff Kirsher
0 siblings, 0 replies; 55+ messages in thread
From: Jeff Kirsher @ 2013-08-21 8:23 UTC (permalink / raw)
To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann
This series contains updates to igb and e1000e.
Akeem provides 3 igb patches, the first resets the link when EEE is enabled
or disabled if the link is up. His second patch changes a register read
which normally stores of the read value to "just-read" so that hardware
can accurately latch the register read. Lastly, he adds rcu_lock to avoid
a possible race condition with igb_update_stats function.
Mitch provides a fix for SR-IOV, where MSI-X interrupts are required, so
make sure that MSI-X is enabled before allowing the user to turn on SR-IOV.
Alex's igb patch make it so that we limit the lower bound for max_frame_size
to the size of a standard Ethernet frame. This allows for feature parity
with other Intel based drivers such as ixgbe.
Carolyn adds a SKU for a flashless i210 device and a fix for get_fw_version()
so that it works for all parts for igb. In addition, she has 2 igb patches
to refactor NVM code to accommodate devices with no flash. Lastly, she
adds code to check for the failure of pci_disable_link_state() to attempt
to work around a problem found with some systems.
Laura provides the remaining 2 igb patches. One removing the hard-coded
value for the size of the RETA indirection table, and creates a macro instead
for the RETA indirection table. The second adds the ethtool callbacks
necessary to change the RETA indirection table from userspace.
Bruce fixes a whitespace issue in a recent commit and resolves a jiffies
comparison warning by using time_after().
Li provides a fix for e1000e to avoid a kernel crash on shutdown by adding
one more check in e1000e_shutdown(). This is due to e1000e_shutdown()
trying to clear correctable errors on the upstream P2P bridge, when under
some cases we do not have the upstream P2P bridge.
The following are changes since commit 84ce22df92f5cf9ecb76d53f4bf5f6d504684540:
net: davinci_mdio: use platform_{get,set}_drvdata()
and are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
Akeem G Abodunrin (3):
igb: Reset the link when EEE setting changed
igb: Read register for latch_on without return value
igb: Added rcu_lock to avoid race
Alexander Duyck (1):
igb: Update MTU so that it is always at least a standard frame size
Bruce Allan (2):
e1000e: cleanup whitespace in recent commit
e1000e: resolve checkpatch JIFFIES_COMPARISON warning
Carolyn Wyborny (5):
igb: Refactor of init_nvm_params
igb: Refactor NVM read functions to accommodate devices with no flash
igb: Add device support for flashless SKU of i210 device
igb: Fix get_fw_version function for all parts
e1000e: Add code to check for failure of pci_disable_link_state call
Laura Mihaela Vasilescu (2):
igb: Add macro for size of RETA indirection table
igb: Expose RSS indirection table for ethtool
Li Zhang (1):
e1000e: Avoid kernel crash during shutdown
Mitch A Williams (1):
igb: don't allow SR-IOV without MSI-X
drivers/net/ethernet/intel/e1000e/ethtool.c | 2 +-
drivers/net/ethernet/intel/e1000e/hw.h | 3 +-
drivers/net/ethernet/intel/e1000e/netdev.c | 92 ++++++++++-----
drivers/net/ethernet/intel/igb/e1000_82575.c | 117 ++++++++-----------
drivers/net/ethernet/intel/igb/e1000_defines.h | 34 ++++--
drivers/net/ethernet/intel/igb/e1000_hw.h | 3 +
drivers/net/ethernet/intel/igb/e1000_i210.c | 155 ++++++++++++++++---------
drivers/net/ethernet/intel/igb/e1000_i210.h | 5 +-
drivers/net/ethernet/intel/igb/e1000_nvm.c | 80 +++++++++----
drivers/net/ethernet/intel/igb/e1000_nvm.h | 1 +
drivers/net/ethernet/intel/igb/igb.h | 5 +
drivers/net/ethernet/intel/igb/igb_ethtool.c | 106 ++++++++++++++++-
drivers/net/ethernet/intel/igb/igb_main.c | 105 ++++++++++-------
drivers/net/ethernet/intel/igb/igb_ptp.c | 8 +-
14 files changed, 476 insertions(+), 240 deletions(-)
--
1.8.3.1
^ permalink raw reply [flat|nested] 55+ messages in thread
* [net-next 00/15][pull request] Intel Wired LAN Driver Updates
@ 2013-07-29 12:51 Jeff Kirsher
0 siblings, 0 replies; 55+ messages in thread
From: Jeff Kirsher @ 2013-07-29 12:51 UTC (permalink / raw)
To: davem, bhelgaas; +Cc: Jeff Kirsher, netdev, gospo, sassmann, linux-pci
This series contains updates to ixgbe and pci.
The first patch for ixgbe from Greg Rose is the second submission. The
first submission of "ixgbe: Retain VLAN filtering in promiscuous + VT
mode" had a typo, which Joe Perches pointed out and is fixed in this
submission.
Alex updates the ixgbe driver to use the generic helper pci_vfs_assigned
instead of the driver specific function ixgbe_vfs_are_assigned.
Don Skidmore provides 4 patches for ixgbe, the first being a fix for
flow control ethtool reporting. Originally ixgbe_device_supports_autoneg_fc()
was expected to be called by only copper devices, which lead to false
information being displayed via ethtool. Two other patches add support
for fixed fiber for SFP+ devices and the addition of a quad-port x520
adapter. The last patch simply bumps the driver version.
Emil Tantilov provides 3 fixes for ixgbe, two of which resolve
semaphore lock issues. The third fix resolves several issues in the
previous implementation of the SFF data dumps of SFP+ modules.
The remaining ixgbe and pci patches are from Jacob Keller. The pci
patches exposes bus speed, link speed and bus width so that drivers
can take advantage of this information. In addition, adds a pci function
which obtains minimum link width and speed. Jacob also provides the
ixgbe patch to incorporate the pci function. He provides a patch that
fixes a lockdep issue created due to ixgbe_ptp_stop always running
cancel_work_sync even if the work item had not been created properly with
INIT_WORK. This issue was found and reported by Stephen Hemminger.
The following are changes since commit fe6f700d6cbb7e8a61711e325f53d9c9e0a42a4c:
net/mlx4_core: Respond to operation request by firmware
and are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
Alexander Duyck (1):
ixgbe: Use pci_vfs_assigned instead of ixgbe_vfs_are_assigned
Don Skidmore (4):
ixgbe: fix fc autoneg ethtool reporting.
ixgbe: add new media type
ixgbe: bump version number
ixgbe: add support for quad-port x520 adapter
Emil Tantilov (3):
ixgbe: fix semaphore lock for I2C read/writes on 82598
ixgbe: fix SFF data dumps of SFP+ modules
ixgbe: clear semaphore bits on timeouts
Greg Rose (1):
ixgbe: Retain VLAN filtering in promiscuous + VT mode
Jacob Keller (6):
pci: expose pcie_link_speed and pcix_bus_speed arrays
pci: move enum pcie_link_width into pci.h
pci: Add function to obtain minimum link width and speed
ixgbe: call pcie_get_mimimum_link to check if device has enough
bandwidth
ixgbe: fix lockdep annotation issue for ptp's work item
ixgbe: rename LL_EXTENDED_STATS to use queue instead of q
drivers/net/ethernet/intel/ixgbe/ixgbe.h | 7 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_82598.c | 34 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c | 231 ++++++++++-
drivers/net/ethernet/intel/ixgbe/ixgbe_common.c | 88 +++--
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c | 94 ++---
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 158 +++++++-
drivers/net/ethernet/intel/ixgbe/ixgbe_phy.c | 470 ++++++++++++++++-------
drivers/net/ethernet/intel/ixgbe/ixgbe_phy.h | 41 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c | 12 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c | 101 +++--
drivers/net/ethernet/intel/ixgbe/ixgbe_type.h | 12 +
drivers/pci/pci.c | 43 +++
drivers/pci/probe.c | 4 +-
include/linux/pci.h | 18 +
include/linux/pci_hotplug.h | 13 -
15 files changed, 983 insertions(+), 343 deletions(-)
--
1.7.11.7
^ permalink raw reply [flat|nested] 55+ messages in thread
* [net-next 00/15][pull request] Intel Wired LAN Driver Updates
@ 2013-04-18 23:30 Jeff Kirsher
2013-04-19 18:19 ` David Miller
0 siblings, 1 reply; 55+ messages in thread
From: Jeff Kirsher @ 2013-04-18 23:30 UTC (permalink / raw)
To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann
This series contains updates to ixgbe and igb.
The ixgbe changes contains 2 patches from the community, one which is a
fix from akepner to fix a issue where netif_running() in shutdown was
not done under rtnl_lock. The other community fix from Joe Perches
cleans up #ifdef CONFIG_DEBUG_FS which is no longer necessary. The
last ixgbe patch, from Jacob Keller, adds support for WoL on 82559
SFP+ LOM.
The remaining patches are against igb, 10 of which were previously
submitted in a pull request where changes were requested.
The following igb patches:
igb: Support for 100base-fx SFP
igb: Support to read and export SFF-8472/8079 data
are v2 based on feedback from Dan Carpenter and Ben Hutchings in
the previous pull request.
The largest set of changes are in my patch to cleanup code comments
and whitespace to align the igb driver with the networking style of
code comments. While cleaning up the code comments, fixed several
other whitespace/checkpatch.pl code formatting issues.
Other notable igb patches are EEE capable devices query the PHY to
determine what the link partner is advertising, added support for
i354 devices and added support for spoofchk config.
The following are changes since commit c1cb0d3b569b1d21ada8666efb42dfd437617a09:
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next
and are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
Akeem G. Abodunrin (5):
igb: Support for 100base-fx SFP
igb: Support to read and export SFF-8472/8079 data
igb: Implement support to power sfp cage and turn on I2C
igb: random code and comments fix
igb: Fix sparse warnings on function pointers
Alexander Duyck (3):
igb: Mask off check of frag_off as we only want fragment offset
igb: Pull adapter out of main path in igb_xmit_frame_ring
igb: Use rx/tx_itr_setting when setting up initial value of itr
Carolyn Wyborny (1):
igb: Add support for i354 devices
Jacob Keller (1):
ixgbe: Add support for WoL on 82599 SFP+ LOM
Jeff Kirsher (1):
igb: Fix code comments and whitespace
Joe Perches (1):
ixgbe: Remove unnecessary #ifdef CONFIG_DEBUG_FS tests
Lior Levy (1):
igb: add support for spoofchk config
Matthew Vick (1):
igb: Enable EEE LP advertisement
akepner (1):
ixgbe: in shutdown, do netif_running() under rtnl_lock
drivers/net/ethernet/intel/igb/e1000_82575.c | 252 +++--
drivers/net/ethernet/intel/igb/e1000_82575.h | 2 +
drivers/net/ethernet/intel/igb/e1000_defines.h | 50 +-
drivers/net/ethernet/intel/igb/e1000_hw.h | 57 +-
drivers/net/ethernet/intel/igb/e1000_i210.c | 93 +-
drivers/net/ethernet/intel/igb/e1000_i210.h | 4 +
drivers/net/ethernet/intel/igb/e1000_mac.c | 124 +--
drivers/net/ethernet/intel/igb/e1000_mac.h | 17 +-
drivers/net/ethernet/intel/igb/e1000_mbx.c | 11 +-
drivers/net/ethernet/intel/igb/e1000_mbx.h | 52 +-
drivers/net/ethernet/intel/igb/e1000_nvm.c | 27 +-
drivers/net/ethernet/intel/igb/e1000_phy.c | 259 ++---
drivers/net/ethernet/intel/igb/e1000_regs.h | 53 +-
drivers/net/ethernet/intel/igb/igb.h | 133 +--
drivers/net/ethernet/intel/igb/igb_ethtool.c | 345 +++++--
drivers/net/ethernet/intel/igb/igb_hwmon.c | 29 +-
drivers/net/ethernet/intel/igb/igb_main.c | 1270 +++++++++++++-----------
drivers/net/ethernet/intel/igb/igb_ptp.c | 61 +-
drivers/net/ethernet/intel/ixgbe/ixgbe.h | 5 +
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 15 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_type.h | 1 +
21 files changed, 1604 insertions(+), 1256 deletions(-)
--
1.7.11.7
^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: [net-next 00/15][pull request] Intel Wired LAN Driver Updates
2013-04-18 23:30 Jeff Kirsher
@ 2013-04-19 18:19 ` David Miller
0 siblings, 0 replies; 55+ messages in thread
From: David Miller @ 2013-04-19 18:19 UTC (permalink / raw)
To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Thu, 18 Apr 2013 16:30:07 -0700
> This series contains updates to ixgbe and igb.
>
> The ixgbe changes contains 2 patches from the community, one which is a
> fix from akepner to fix a issue where netif_running() in shutdown was
> not done under rtnl_lock. The other community fix from Joe Perches
> cleans up #ifdef CONFIG_DEBUG_FS which is no longer necessary. The
> last ixgbe patch, from Jacob Keller, adds support for WoL on 82559
> SFP+ LOM.
>
> The remaining patches are against igb, 10 of which were previously
> submitted in a pull request where changes were requested.
>
> The following igb patches:
> igb: Support for 100base-fx SFP
> igb: Support to read and export SFF-8472/8079 data
> are v2 based on feedback from Dan Carpenter and Ben Hutchings in
> the previous pull request.
>
> The largest set of changes are in my patch to cleanup code comments
> and whitespace to align the igb driver with the networking style of
> code comments. While cleaning up the code comments, fixed several
> other whitespace/checkpatch.pl code formatting issues.
>
> Other notable igb patches are EEE capable devices query the PHY to
> determine what the link partner is advertising, added support for
> i354 devices and added support for spoofchk config.
>
> The following are changes since commit c1cb0d3b569b1d21ada8666efb42dfd437617a09:
> Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next
> and are available in the git repository at:
> git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
Pulled, thanks a lot Jeff.
^ permalink raw reply [flat|nested] 55+ messages in thread
* [net-next 00/15][pull request] Intel Wired LAN Driver Updates
@ 2013-03-08 10:07 Jeff Kirsher
2013-03-08 17:25 ` David Miller
0 siblings, 1 reply; 55+ messages in thread
From: Jeff Kirsher @ 2013-03-08 10:07 UTC (permalink / raw)
To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann
This series contains updates to ixgbevf and e1000e.
Alex's ixgbevf patch is meant to address several race issues that become
possible because next_to_watch could possibly be set to a value that shows
that the descriptor is done when it is not. In order to correct that we
instead make next_to_watch a pointer that is set to NULL during cleanup,
and set to the eop_desc after the descriptor rings have been written.
Stephen's ixgbevf patch makes the PCI id table a const and reformats the
table to match what the ixgbe driver does.
The remaining 13 patches from Bruce are cleanup patches for e1000e to
resolve checkpatch.pl warnings/errors, removing blank lines where
necessary and fix code formatting.
The following are changes since commit 7f0e44ac9f7f12a2519bfed9ea4df3c1471bd8bb:
ipv6 flowlabel: add __rcu annotations
and are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
Alexander Duyck (1):
ixgbevf: Make next_to_watch a pointer and adjust memory barriers to
avoid races
Bruce Allan (13):
e1000e: cleanup CODE_INDENT checkpatch errors
e1000e: cleanup SPACING checkpatch errors and warnings
e1000e: cleanup LONG_LINE checkpatch warnings
e1000e: cleanup LEADING_SPACE checkpatch warnings
e1000e: cleanup PARENTHESIS_ALIGNMENT checkpatch checks
e1000e: cleanup SPACING checkpatch checks
e1000e: cleanup (add/remove) blank lines where appropriate
e1000e: cleanup unusually placed comments
e1000e: cleanup formatting of static structs
e1000e: cleanup unnecessary line breaks
e1000e: cleanup USLEEP_RANGE checkpatch checks
e1000e: cleanup format of struct e1000_opt_list struct
e1000e: cleanup - move defines to appropriate header file
Stephen Hemminger (1):
ixgbevf: use PCI_DEVICE_TABLE macro
drivers/net/ethernet/intel/e1000e/80003es2lan.c | 131 ++++++-----
drivers/net/ethernet/intel/e1000e/82571.c | 38 ++-
drivers/net/ethernet/intel/e1000e/82571.h | 2 +
drivers/net/ethernet/intel/e1000e/defines.h | 25 +-
drivers/net/ethernet/intel/e1000e/e1000.h | 18 +-
drivers/net/ethernet/intel/e1000e/ethtool.c | 177 +++++++-------
drivers/net/ethernet/intel/e1000e/hw.h | 4 +-
drivers/net/ethernet/intel/e1000e/ich8lan.c | 195 ++++++++--------
drivers/net/ethernet/intel/e1000e/mac.c | 10 +-
drivers/net/ethernet/intel/e1000e/netdev.c | 269 ++++++++++------------
drivers/net/ethernet/intel/e1000e/nvm.c | 2 +-
drivers/net/ethernet/intel/e1000e/param.c | 62 +++--
drivers/net/ethernet/intel/e1000e/phy.c | 130 +++++------
drivers/net/ethernet/intel/ixgbevf/ixgbevf.h | 2 +-
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 80 ++++---
15 files changed, 574 insertions(+), 571 deletions(-)
--
1.7.11.7
^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: [net-next 00/15][pull request] Intel Wired LAN Driver Updates
2013-03-08 10:07 Jeff Kirsher
@ 2013-03-08 17:25 ` David Miller
0 siblings, 0 replies; 55+ messages in thread
From: David Miller @ 2013-03-08 17:25 UTC (permalink / raw)
To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Fri, 8 Mar 2013 02:07:02 -0800
> This series contains updates to ixgbevf and e1000e.
>
> Alex's ixgbevf patch is meant to address several race issues that become
> possible because next_to_watch could possibly be set to a value that shows
> that the descriptor is done when it is not. In order to correct that we
> instead make next_to_watch a pointer that is set to NULL during cleanup,
> and set to the eop_desc after the descriptor rings have been written.
>
> Stephen's ixgbevf patch makes the PCI id table a const and reformats the
> table to match what the ixgbe driver does.
>
> The remaining 13 patches from Bruce are cleanup patches for e1000e to
> resolve checkpatch.pl warnings/errors, removing blank lines where
> necessary and fix code formatting.
>
> The following are changes since commit 7f0e44ac9f7f12a2519bfed9ea4df3c1471bd8bb:
> ipv6 flowlabel: add __rcu annotations
> and are available in the git repository at:
> git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
Pulled, thanks Jeff.
^ permalink raw reply [flat|nested] 55+ messages in thread
* [net-next 00/15][pull request] Intel Wired LAN Driver Updates
@ 2013-01-11 10:23 Jeff Kirsher
0 siblings, 0 replies; 55+ messages in thread
From: Jeff Kirsher @ 2013-01-11 10:23 UTC (permalink / raw)
To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann
This series contains updates to e1000e only.
The following are changes since commit 1def9238d4aa2146924994aa4b7dc861f03b9362:
net_sched: more precise pkt_len computation
and are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
Bruce Allan (15):
e1000e: SerDes autoneg flow control
e1000e: Acquire/release semaphore when writing each EEPROM page
e1000e: Invalid Image CSUM bit changed for I217
e1000e: helper functions for accessing EMI registers
e1000e: 82577: workaround for link drop issue
e1000e: fix enabling of EEE on 82579 and I217
e1000e: unexpected "Reset adapter" message when cable pulled
e1000e: add missing bailout on error
e1000e: resolve checkpatch PREFER_PR_LEVEL warning
e1000e: cleanup redundant statistics counter
e1000e: cleanup unusual comment placement
e1000e: cleanup unnecessary line wrap
e1000e: cleanup magic number
e1000e: cleanup code duplication
e1000e: merge multiple conditional statements into one
drivers/net/ethernet/intel/e1000e/defines.h | 10 +-
drivers/net/ethernet/intel/e1000e/e1000.h | 2 +-
drivers/net/ethernet/intel/e1000e/ethtool.c | 1 -
drivers/net/ethernet/intel/e1000e/hw.h | 4 +
drivers/net/ethernet/intel/e1000e/ich8lan.c | 213 +++++++++++++++++++++-------
drivers/net/ethernet/intel/e1000e/mac.c | 125 ++++++++++++++++
drivers/net/ethernet/intel/e1000e/netdev.c | 67 ++++-----
drivers/net/ethernet/intel/e1000e/nvm.c | 26 ++--
drivers/net/ethernet/intel/e1000e/param.c | 3 +-
9 files changed, 340 insertions(+), 111 deletions(-)
--
1.7.11.7
^ permalink raw reply [flat|nested] 55+ messages in thread
* [net-next 00/15][pull request] Intel Wired LAN Driver updates
@ 2012-02-13 21:47 Jeff Kirsher
2012-02-13 23:48 ` David Miller
0 siblings, 1 reply; 55+ messages in thread
From: Jeff Kirsher @ 2012-02-13 21:47 UTC (permalink / raw)
To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann
The following series contains updates to e1000e only. All of the
patches are cleanup of the e1000e driver.
The following are changes since commit fafdbf84d7eb2cd7aee435cc381a0796e1a5ccb0:
trivial: typo hnalder -> handler
and are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
Bruce Allan (15):
e1000e: cleanup: use goto for common work needed by multiple exit
points
e1000e: cleanup: rename goto labels to be more meaningful
e1000e: potentially incorrect return for
e1000_cfg_kmrn_10_100_80003es2lan
e1000e: potential incorrect return for
e1000_setup_copper_link_80003es2lan
e1000e: cleanup: remove unnecessary assignments just before returning
e1000e: cleanup: always return 0
e1000e: potentially incorrect return for
e1000_set_d3_lplu_state_ich8lan
e1000e: cleanup: remove unreachable statement
e1000e: cleanup: remove unnecessary variable ret_val
e1000e: cleanup: remove unnecessary test and return
e1000e: cleanup: remove unnecessary variable initializations
e1000e: cleanup: minor whitespace addition (insert blank line
separator)
e1000e: potentially incorrect return for e1000_init_hw_ich8lan
e1000e: potentially incorrect return for
e1000e_setup_fiber_serdes_link
e1000e: cleanup goto statements to exit points without common work
drivers/net/ethernet/intel/e1000e/80003es2lan.c | 36 +---
drivers/net/ethernet/intel/e1000e/82571.c | 36 ++---
drivers/net/ethernet/intel/e1000e/ich8lan.c | 220 +++++++++------------
drivers/net/ethernet/intel/e1000e/mac.c | 25 +--
drivers/net/ethernet/intel/e1000e/manage.c | 32 +--
drivers/net/ethernet/intel/e1000e/netdev.c | 16 +-
drivers/net/ethernet/intel/e1000e/nvm.c | 32 ++--
drivers/net/ethernet/intel/e1000e/phy.c | 241 ++++++++++-------------
8 files changed, 265 insertions(+), 373 deletions(-)
--
1.7.7.6
^ permalink raw reply [flat|nested] 55+ messages in thread
end of thread, other threads:[~2014-05-31 0:53 UTC | newest]
Thread overview: 55+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-05-27 9:12 [net-next 00/15][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
2014-05-27 9:12 ` [net-next 01/15] ixgbe: fix linking at 100Mbps on copper devices with MNG FW enabled Jeff Kirsher
2014-05-27 9:12 ` [net-next 02/15] ixgbe: rename ixgbe_ptp_enable to ixgbe_ptp_feature_enable Jeff Kirsher
2014-05-27 9:12 ` [net-next 03/15] ixgbe: extract the hardware setup from the ixgbe_ptp_set_ts_config Jeff Kirsher
2014-05-27 9:12 ` [net-next 04/15] ixgbe: allow ixgbe_ptp_reset to maintain current hwtstamp config Jeff Kirsher
2014-05-27 9:12 ` [net-next 05/15] ixgbe: extract PTP clock device from ptp_init Jeff Kirsher
2014-05-27 9:12 ` [net-next 06/15] ixgbe: separate the PTP suspend and stop actions Jeff Kirsher
2014-05-27 9:12 ` [net-next 07/15] ixgbe: avoid duplicate code in suspend and stop paths Jeff Kirsher
2014-05-27 9:12 ` [net-next 08/15] e1000e: Failure to write SHRA turns on PROMISC mode Jeff Kirsher
2014-05-28 14:06 ` Vlad Yasevich
2014-05-27 9:12 ` [net-next 09/15] e1000e: 82574/82583 TimeSync errata for SYSTIM read Jeff Kirsher
2014-05-27 9:12 ` [net-next 10/15] e1000e: Cleanup parenthesis around return value Jeff Kirsher
2014-05-27 9:12 ` [net-next 11/15] e1000e: Fix expand setting EEE link info to all affected parts Jeff Kirsher
2014-05-27 9:12 ` [net-next 12/15] e1000e: Out of line __ew32_prepare/__ew32 Jeff Kirsher
2014-05-27 9:12 ` [net-next 13/15] igb: remove redundant PHY power down register write Jeff Kirsher
2014-05-27 9:12 ` [net-next 14/15] e1000: Use is_broadcast_ether_addr/is_multicast_ether_addr helpers Jeff Kirsher
2014-05-27 9:12 ` [net-next 15/15] i40evf: Use is_multicast_ether_addr helper Jeff Kirsher
2014-05-28 16:42 ` [net-next 00/15][pull request] Intel Wired LAN Driver Updates David Miller
-- strict thread matches above, loose matches on Subject: below --
2014-05-29 15:10 Jeff Kirsher
2014-05-31 0:53 ` David Miller
2014-05-21 12:00 Jeff Kirsher
2014-05-22 16:05 ` David Miller
2014-04-28 13:52 Jeff Kirsher
2014-04-28 18:53 ` David Miller
2014-03-26 18:03 Jeff Kirsher
2014-03-20 8:32 Jeff Kirsher
2014-03-20 18:20 ` David Miller
2014-03-08 9:25 Jeff Kirsher
2014-03-08 23:50 ` David Miller
2014-03-09 0:10 ` David Miller
2014-03-09 1:12 ` Jeff Kirsher
2014-01-09 12:52 Jeff Kirsher
2014-01-09 20:13 ` David Miller
2014-01-07 9:32 Jeff Kirsher
2014-01-06 12:30 Jeff Kirsher
2014-01-06 18:26 ` David Miller
2014-01-06 18:49 ` Jeff Kirsher
2014-01-06 20:14 ` Jeff Kirsher
2014-01-05 10:46 Jeff Kirsher
2014-01-06 1:31 ` David Miller
2013-12-19 6:34 Jeff Kirsher
2013-12-19 19:20 ` Jeff Kirsher
2013-12-19 19:47 ` David Miller
2013-12-12 12:40 Jeff Kirsher
2013-12-06 8:06 Jeff Kirsher
2013-12-06 19:49 ` David Miller
2013-08-21 8:23 Jeff Kirsher
2013-07-29 12:51 Jeff Kirsher
2013-04-18 23:30 Jeff Kirsher
2013-04-19 18:19 ` David Miller
2013-03-08 10:07 Jeff Kirsher
2013-03-08 17:25 ` David Miller
2013-01-11 10:23 Jeff Kirsher
2012-02-13 21:47 [net-next 00/15][pull request] Intel Wired LAN Driver updates Jeff Kirsher
2012-02-13 23:48 ` 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).