* [net-next 00/15][pull request] Intel Wired LAN Driver Updates
@ 2013-12-12 12:40 Jeff Kirsher
2013-12-12 12:40 ` [net-next 01/15] i40e: fix null dereference Jeff Kirsher
` (14 more replies)
0 siblings, 15 replies; 58+ 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] 58+ messages in thread
* [net-next 01/15] i40e: fix null dereference
2013-12-12 12:40 [net-next 00/15][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
@ 2013-12-12 12:40 ` Jeff Kirsher
2013-12-12 14:30 ` Sergei Shtylyov
2013-12-12 12:40 ` [net-next 02/15] i40e: fix up some of the ethtool connection reporting Jeff Kirsher
` (13 subsequent siblings)
14 siblings, 1 reply; 58+ messages in thread
From: Jeff Kirsher @ 2013-12-12 12:40 UTC (permalink / raw)
To: davem; +Cc: Jesse Brandeburg, netdev, gospo, sassmann, Jeff Kirsher
From: Jesse Brandeburg <jesse.brandeburg@intel.com>
If the vsi->tx_rings structure is NULL we don't want to panic.
Change-Id: Ic694f043701738c434e8ebe0caf0673f4410dc10
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Tested-by: Kavindya Deegala <kavindya.s.deegala@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/i40e/i40e_main.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
index a6291e2..1ef311a 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -354,6 +354,9 @@ static struct rtnl_link_stats64 *i40e_get_netdev_stats_struct(
struct rtnl_link_stats64 *vsi_stats = i40e_get_vsi_stats_struct(vsi);
int i;
+ if (!vsi->tx_rings)
+ return stats;
+
rcu_read_lock();
for (i = 0; i < vsi->num_queue_pairs; i++) {
struct i40e_ring *tx_ring, *rx_ring;
--
1.8.3.1
^ permalink raw reply related [flat|nested] 58+ messages in thread
* Re: [net-next 01/15] i40e: fix null dereference
2013-12-12 12:40 ` [net-next 01/15] i40e: fix null dereference Jeff Kirsher
@ 2013-12-12 14:30 ` Sergei Shtylyov
0 siblings, 0 replies; 58+ messages in thread
From: Sergei Shtylyov @ 2013-12-12 14:30 UTC (permalink / raw)
To: Jeff Kirsher, davem; +Cc: Jesse Brandeburg, netdev, gospo, sassmann
Hello.
On 12-12-2013 16:40, Jeff Kirsher wrote:
> From: Jesse Brandeburg <jesse.brandeburg@intel.com>
> If the vsi->tx_rings structure is NULL we don't want to panic.
> Change-Id: Ic694f043701738c434e8ebe0caf0673f4410dc10
> Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
> Tested-by: Kavindya Deegala <kavindya.s.deegala@intel.com>
> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
> ---
> drivers/net/ethernet/intel/i40e/i40e_main.c | 3 +++
> 1 file changed, 3 insertions(+)
> diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
> index a6291e2..1ef311a 100644
> --- a/drivers/net/ethernet/intel/i40e/i40e_main.c
> +++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
> @@ -354,6 +354,9 @@ static struct rtnl_link_stats64 *i40e_get_netdev_stats_struct(
> struct rtnl_link_stats64 *vsi_stats = i40e_get_vsi_stats_struct(vsi);
> int i;
>
> + if (!vsi->tx_rings)
> + return stats;
> +
This looks like a fix, so should go to net.git, not net-next.git?
WBR, Sergei
^ permalink raw reply [flat|nested] 58+ messages in thread
* [net-next 02/15] i40e: fix up some of the ethtool connection reporting
2013-12-12 12:40 [net-next 00/15][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
2013-12-12 12:40 ` [net-next 01/15] i40e: fix null dereference Jeff Kirsher
@ 2013-12-12 12:40 ` Jeff Kirsher
2013-12-12 12:40 ` [net-next 03/15] i40e: fix pf reset after offline test Jeff Kirsher
` (12 subsequent siblings)
14 siblings, 0 replies; 58+ messages in thread
From: Jeff Kirsher @ 2013-12-12 12:40 UTC (permalink / raw)
To: davem
Cc: Jesse Brandeburg, netdev, gospo, sassmann, Shannon Nelson, Jeff Kirsher
From: Jesse Brandeburg <jesse.brandeburg@intel.com>
Get some more reasonable information reported back out to ethtool
for the different types of connections supported.
Change-Id: I57b153f86b9cdd04ad7cb5bf7d1c45873c196a7a
Signed-off-by: Shannon Nelson <shannon.nelson@intel.com>
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Tested-by: Kavindya Deegala <kavindya.s.deegala@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 32 +++++++++++++++++++-------
drivers/net/ethernet/intel/i40e/i40e_type.h | 4 ++++
2 files changed, 28 insertions(+), 8 deletions(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
index fd3e379..eb34375 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
@@ -193,32 +193,48 @@ static int i40e_get_settings(struct net_device *netdev,
ecmd->supported = SUPPORTED_10000baseKR_Full;
ecmd->advertising = ADVERTISED_10000baseKR_Full;
break;
- case I40E_PHY_TYPE_10GBASE_T:
default:
- ecmd->supported = SUPPORTED_10000baseT_Full;
- ecmd->advertising = ADVERTISED_10000baseT_Full;
+ if (i40e_is_40G_device(hw->device_id)) {
+ ecmd->supported = SUPPORTED_40000baseSR4_Full;
+ ecmd->advertising = ADVERTISED_40000baseSR4_Full;
+ } else {
+ ecmd->supported = SUPPORTED_10000baseT_Full;
+ ecmd->advertising = ADVERTISED_10000baseT_Full;
+ }
break;
}
- /* for now just say autoneg all the time */
ecmd->supported |= SUPPORTED_Autoneg;
+ ecmd->advertising |= ADVERTISED_Autoneg;
+ ecmd->autoneg = ((hw_link_info->an_info & I40E_AQ_AN_COMPLETED) ?
+ AUTONEG_ENABLE : AUTONEG_DISABLE);
- if (hw->phy.media_type == I40E_MEDIA_TYPE_BACKPLANE) {
+ switch (hw->phy.media_type) {
+ case I40E_MEDIA_TYPE_BACKPLANE:
ecmd->supported |= SUPPORTED_Backplane;
ecmd->advertising |= ADVERTISED_Backplane;
ecmd->port = PORT_NONE;
- } else if (hw->phy.media_type == I40E_MEDIA_TYPE_BASET) {
+ break;
+ case I40E_MEDIA_TYPE_BASET:
ecmd->supported |= SUPPORTED_TP;
ecmd->advertising |= ADVERTISED_TP;
ecmd->port = PORT_TP;
- } else if (hw->phy.media_type == I40E_MEDIA_TYPE_DA) {
+ break;
+ case I40E_MEDIA_TYPE_DA:
+ case I40E_MEDIA_TYPE_CX4:
ecmd->supported |= SUPPORTED_FIBRE;
ecmd->advertising |= ADVERTISED_FIBRE;
ecmd->port = PORT_DA;
- } else {
+ break;
+ case I40E_MEDIA_TYPE_FIBER:
ecmd->supported |= SUPPORTED_FIBRE;
ecmd->advertising |= ADVERTISED_FIBRE;
ecmd->port = PORT_FIBRE;
+ break;
+ case I40E_MEDIA_TYPE_UNKNOWN:
+ default:
+ ecmd->port = PORT_OTHER;
+ break;
}
ecmd->transceiver = XCVR_EXTERNAL;
diff --git a/drivers/net/ethernet/intel/i40e/i40e_type.h b/drivers/net/ethernet/intel/i40e/i40e_type.h
index 8ae6445..72a6028 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_type.h
+++ b/drivers/net/ethernet/intel/i40e/i40e_type.h
@@ -49,6 +49,10 @@
#define I40E_VF_DEVICE_ID 0x154C
#define I40E_VF_HV_DEVICE_ID 0x1571
+#define i40e_is_40G_device(d) ((d) == I40E_QSFP_A_DEVICE_ID || \
+ (d) == I40E_QSFP_B_DEVICE_ID || \
+ (d) == I40E_QSFP_C_DEVICE_ID)
+
#define I40E_FW_API_VERSION_MAJOR 0x0001
#define I40E_FW_API_VERSION_MINOR 0x0000
--
1.8.3.1
^ permalink raw reply related [flat|nested] 58+ messages in thread
* [net-next 03/15] i40e: fix pf reset after offline test
2013-12-12 12:40 [net-next 00/15][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
2013-12-12 12:40 ` [net-next 01/15] i40e: fix null dereference Jeff Kirsher
2013-12-12 12:40 ` [net-next 02/15] i40e: fix up some of the ethtool connection reporting Jeff Kirsher
@ 2013-12-12 12:40 ` Jeff Kirsher
2013-12-12 12:40 ` [net-next 04/15] i40e: add netdev ops helper function Jeff Kirsher
` (11 subsequent siblings)
14 siblings, 0 replies; 58+ messages in thread
From: Jeff Kirsher @ 2013-12-12 12:40 UTC (permalink / raw)
To: davem
Cc: Shannon Nelson, netdev, gospo, sassmann, Jesse Brandeburg, Jeff Kirsher
From: Shannon Nelson <shannon.nelson@intel.com>
When the ethtool testing starts it sets the I40E_TESTING state
bit, which blocks new netdev opens so that things don't get
confused, while the testing might be messing with register and
other things. Unfortunately, that was keeping the PF resets
after the register test from working correctly because the netdev
would not get reopened. This patch reorders the tests 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
I40E_TESTING bit.
Change-Id: Ieaa18d74264250ac336b0656b490125ee8a22d2a
Signed-off-by: Shannon Nelson <shannon.nelson@intel.com>
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Tested-by: Kavindya Deegala <kavindya.s.deegala@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
index eb34375..9c380a8 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
@@ -748,7 +748,6 @@ static int i40e_reg_test(struct net_device *netdev, u64 *data)
netif_info(pf, hw, netdev, "register test\n");
*data = i40e_diag_reg_test(&pf->hw);
- i40e_do_reset(pf, (1 << __I40E_PF_RESET_REQUESTED));
return *data;
}
@@ -796,20 +795,18 @@ static void i40e_diag_test(struct net_device *netdev,
struct i40e_netdev_priv *np = netdev_priv(netdev);
struct i40e_pf *pf = np->vsi->back;
- set_bit(__I40E_TESTING, &pf->state);
if (eth_test->flags == ETH_TEST_FL_OFFLINE) {
/* Offline tests */
netif_info(pf, drv, netdev, "offline testing starting\n");
+ set_bit(__I40E_TESTING, &pf->state);
+
/* Link test performed before hardware reset
* so autoneg doesn't interfere with test result
*/
if (i40e_link_test(netdev, &data[I40E_ETH_TEST_LINK]))
eth_test->flags |= ETH_TEST_FL_FAILED;
- if (i40e_reg_test(netdev, &data[I40E_ETH_TEST_REG]))
- eth_test->flags |= ETH_TEST_FL_FAILED;
-
if (i40e_eeprom_test(netdev, &data[I40E_ETH_TEST_EEPROM]))
eth_test->flags |= ETH_TEST_FL_FAILED;
@@ -819,6 +816,12 @@ static void i40e_diag_test(struct net_device *netdev,
if (i40e_loopback_test(netdev, &data[I40E_ETH_TEST_LOOPBACK]))
eth_test->flags |= ETH_TEST_FL_FAILED;
+ /* run reg test last, a reset is required after it */
+ if (i40e_reg_test(netdev, &data[I40E_ETH_TEST_REG]))
+ eth_test->flags |= ETH_TEST_FL_FAILED;
+
+ clear_bit(__I40E_TESTING, &pf->state);
+ i40e_do_reset(pf, (1 << __I40E_PF_RESET_REQUESTED));
} else {
/* Online tests */
netif_info(pf, drv, netdev, "online testing starting\n");
@@ -832,7 +835,6 @@ static void i40e_diag_test(struct net_device *netdev,
data[I40E_ETH_TEST_INTR] = 0;
data[I40E_ETH_TEST_LOOPBACK] = 0;
}
- clear_bit(__I40E_TESTING, &pf->state);
netif_info(pf, drv, netdev, "testing finished\n");
}
--
1.8.3.1
^ permalink raw reply related [flat|nested] 58+ messages in thread
* [net-next 04/15] i40e: add netdev ops helper function
2013-12-12 12:40 [net-next 00/15][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (2 preceding siblings ...)
2013-12-12 12:40 ` [net-next 03/15] i40e: fix pf reset after offline test Jeff Kirsher
@ 2013-12-12 12:40 ` Jeff Kirsher
2013-12-12 14:27 ` Sergei Shtylyov
2013-12-12 12:40 ` [net-next 05/15] i40e: Tell the stack about our actual number of queues Jeff Kirsher
` (10 subsequent siblings)
14 siblings, 1 reply; 58+ messages in thread
From: Jeff Kirsher @ 2013-12-12 12:40 UTC (permalink / raw)
To: davem
Cc: Elizabeth Kappler, netdev, gospo, sassmann, Jesse Brandeburg,
Jeff Kirsher
From: Elizabeth Kappler <elizabeth.m.kappler@intel.com>
Add a small helper function for assigning netdev_ops.
trivial:
move include down
small nearby whitespace fixes for readablility
Change-Id: Ib1c082a7bc9eedc1d3cfa5515720e4ef8f9f07cd
Signed-off-by: Elizabeth Kappler <elizabeth.m.kappler@intel.com>
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Tested-by: Kavindya Deegala <kavindya.s.deegala@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/i40e/i40e.h | 2 +-
drivers/net/ethernet/intel/i40e/i40e_main.c | 13 ++++++++++++-
2 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e.h b/drivers/net/ethernet/intel/i40e/i40e.h
index 001d7cf..385d3ff 100644
--- a/drivers/net/ethernet/intel/i40e/i40e.h
+++ b/drivers/net/ethernet/intel/i40e/i40e.h
@@ -43,13 +43,13 @@
#include <linux/in.h>
#include <linux/ip.h>
#include <linux/tcp.h>
-#include <linux/sctp.h>
#include <linux/pkt_sched.h>
#include <linux/ipv6.h>
#include <net/checksum.h>
#include <net/ip6_checksum.h>
#include <linux/ethtool.h>
#include <linux/if_vlan.h>
+#include <linux/sctp.h>
#include "i40e_type.h"
#include "i40e_prototype.h"
#include "i40e_virtchnl.h"
diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
index 1ef311a..591a6e3 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -5849,6 +5849,15 @@ static const struct net_device_ops i40e_netdev_ops = {
};
/**
+ * i40e_assign_netdev_ops - Initialize netdev operations function pointers
+ * @dev: ptr to the netdev struct
+ **/
+static void i40e_assign_netdev_ops(struct net_device *dev)
+{
+ dev->netdev_ops = &i40e_netdev_ops;
+}
+
+/**
* i40e_config_netdev - Setup the netdev flags
* @vsi: the VSI being configured
*
@@ -5919,8 +5928,9 @@ static int i40e_config_netdev(struct i40e_vsi *vsi)
/* Setup netdev TC information */
i40e_vsi_config_netdev_tc(vsi, vsi->tc_config.enabled_tc);
- netdev->netdev_ops = &i40e_netdev_ops;
+ i40e_assign_netdev_ops(netdev);
netdev->watchdog_timeo = 5 * HZ;
+
i40e_set_ethtool_ops(netdev);
return 0;
@@ -7653,6 +7663,7 @@ static int __init i40e_init_module(void)
pr_info("%s: %s - version %s\n", i40e_driver_name,
i40e_driver_string, i40e_driver_version_str);
pr_info("%s: %s\n", i40e_driver_name, i40e_copyright);
+
i40e_dbg_init();
return pci_register_driver(&i40e_driver);
}
--
1.8.3.1
^ permalink raw reply related [flat|nested] 58+ messages in thread
* Re: [net-next 04/15] i40e: add netdev ops helper function
2013-12-12 12:40 ` [net-next 04/15] i40e: add netdev ops helper function Jeff Kirsher
@ 2013-12-12 14:27 ` Sergei Shtylyov
0 siblings, 0 replies; 58+ messages in thread
From: Sergei Shtylyov @ 2013-12-12 14:27 UTC (permalink / raw)
To: Jeff Kirsher, davem, Elizabeth Kappler
Cc: netdev, gospo, sassmann, Jesse Brandeburg
Hello.
On 12-12-2013 16:40, Jeff Kirsher wrote:
> From: Elizabeth Kappler <elizabeth.m.kappler@intel.com>
> Add a small helper function for assigning netdev_ops.
> trivial:
> move include down
> small nearby whitespace fixes for readablility
Don't group unrelated changes in the different places of the file together
into one patch please.
> Change-Id: Ib1c082a7bc9eedc1d3cfa5515720e4ef8f9f07cd
> Signed-off-by: Elizabeth Kappler <elizabeth.m.kappler@intel.com>
> Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
> Tested-by: Kavindya Deegala <kavindya.s.deegala@intel.com>
> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
> ---
> drivers/net/ethernet/intel/i40e/i40e.h | 2 +-
> drivers/net/ethernet/intel/i40e/i40e_main.c | 13 ++++++++++++-
> 2 files changed, 13 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/ethernet/intel/i40e/i40e.h b/drivers/net/ethernet/intel/i40e/i40e.h
> index 001d7cf..385d3ff 100644
> --- a/drivers/net/ethernet/intel/i40e/i40e.h
> +++ b/drivers/net/ethernet/intel/i40e/i40e.h
> @@ -43,13 +43,13 @@
> #include <linux/in.h>
> #include <linux/ip.h>
> #include <linux/tcp.h>
> -#include <linux/sctp.h>
> #include <linux/pkt_sched.h>
> #include <linux/ipv6.h>
> #include <net/checksum.h>
> #include <net/ip6_checksum.h>
> #include <linux/ethtool.h>
> #include <linux/if_vlan.h>
> +#include <linux/sctp.h>
Why?
> diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
> index 1ef311a..591a6e3 100644
> --- a/drivers/net/ethernet/intel/i40e/i40e_main.c
> +++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
> @@ -5849,6 +5849,15 @@ static const struct net_device_ops i40e_netdev_ops = {
> };
>
> /**
> + * i40e_assign_netdev_ops - Initialize netdev operations function pointers
> + * @dev: ptr to the netdev struct
> + **/
Use a normal comment ending please, */.
> +static void i40e_assign_netdev_ops(struct net_device *dev)
> +{
> + dev->netdev_ops = &i40e_netdev_ops;
> +}
Frankly, I don't see much sense in such function. It only increases #LoC
for no apparent reason.
> +
> +/**
> * i40e_config_netdev - Setup the netdev flags
> * @vsi: the VSI being configured
> *
> @@ -5919,8 +5928,9 @@ static int i40e_config_netdev(struct i40e_vsi *vsi)
> /* Setup netdev TC information */
> i40e_vsi_config_netdev_tc(vsi, vsi->tc_config.enabled_tc);
>
> - netdev->netdev_ops = &i40e_netdev_ops;
> + i40e_assign_netdev_ops(netdev);
> netdev->watchdog_timeo = 5 * HZ;
> +
> i40e_set_ethtool_ops(netdev);
>
> return 0;
> @@ -7653,6 +7663,7 @@ static int __init i40e_init_module(void)
> pr_info("%s: %s - version %s\n", i40e_driver_name,
> i40e_driver_string, i40e_driver_version_str);
> pr_info("%s: %s\n", i40e_driver_name, i40e_copyright);
> +
Unrelated whitespace change.
> i40e_dbg_init();
> return pci_register_driver(&i40e_driver);
> }
WBR, Sergei
^ permalink raw reply [flat|nested] 58+ messages in thread
* [net-next 05/15] i40e: Tell the stack about our actual number of queues
2013-12-12 12:40 [net-next 00/15][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (3 preceding siblings ...)
2013-12-12 12:40 ` [net-next 04/15] i40e: add netdev ops helper function Jeff Kirsher
@ 2013-12-12 12:40 ` Jeff Kirsher
2013-12-12 12:40 ` [net-next 06/15] i40e: init flow control settings to disabled Jeff Kirsher
` (9 subsequent siblings)
14 siblings, 0 replies; 58+ messages in thread
From: Jeff Kirsher @ 2013-12-12 12:40 UTC (permalink / raw)
To: davem
Cc: Anjali Singhai Jain, netdev, gospo, sassmann, Jesse Brandeburg,
Jeff Kirsher
From: Anjali Singhai Jain <anjali.singhai@intel.com>
Call the netif_set_real* functions in order to make sure
the stack knows about how many queues we have, in order
for RFS/RPS/XFS to work correctly.
Change-Id: Ib7a7b2792f80c5eef210dedf42cc6607d63953d2
Signed-off-by: Anjali Singhai Jain <anjali.singhai@intel.com>
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Tested-by: Kavindya Deegala <kavindya.s.deegala@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/i40e/i40e_main.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
index 591a6e3..ea9ef27 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -3969,6 +3969,15 @@ static int i40e_open(struct net_device *netdev)
if (err)
goto err_setup_rx;
+ /* Notify the stack of the actual queue counts. */
+ err = netif_set_real_num_tx_queues(netdev, pf->num_tx_queues);
+ if (err)
+ goto err_set_queues;
+
+ err = netif_set_real_num_rx_queues(netdev, pf->num_rx_queues);
+ if (err)
+ goto err_set_queues;
+
err = i40e_up_complete(vsi);
if (err)
goto err_up_complete;
@@ -3985,6 +3994,7 @@ static int i40e_open(struct net_device *netdev)
err_up_complete:
i40e_down(vsi);
+err_set_queues:
i40e_vsi_free_irq(vsi);
err_setup_rx:
i40e_vsi_free_rx_resources(vsi);
--
1.8.3.1
^ permalink raw reply related [flat|nested] 58+ messages in thread
* [net-next 06/15] i40e: init flow control settings to disabled
2013-12-12 12:40 [net-next 00/15][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (4 preceding siblings ...)
2013-12-12 12:40 ` [net-next 05/15] i40e: Tell the stack about our actual number of queues Jeff Kirsher
@ 2013-12-12 12:40 ` Jeff Kirsher
2013-12-12 12:40 ` [net-next 07/15] i40e: trivial fixes Jeff Kirsher
` (8 subsequent siblings)
14 siblings, 0 replies; 58+ messages in thread
From: Jeff Kirsher @ 2013-12-12 12:40 UTC (permalink / raw)
To: davem
Cc: Jesse Brandeburg, netdev, gospo, sassmann, Akeem G Abodunrin,
Jeff Kirsher
From: Jesse Brandeburg <jesse.brandeburg@intel.com>
Refactor flow control set up and disable L2 flow
control by default.
Change-Id: I2fe257b80df6d9a1e37deb4df118da8f8467040d
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Signed-off-by: Akeem G Abodunrin <akeem.g.abodunrin@intel.com>
Tested-by: Kavindya Deegala <kavindya.s.deegala@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 10 +++--
drivers/net/ethernet/intel/i40e/i40e_main.c | 59 +++++++++++++++++++++++---
2 files changed, 60 insertions(+), 9 deletions(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
index 9c380a8..fcb6def 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
@@ -276,12 +276,14 @@ static void i40e_get_pauseparam(struct net_device *netdev,
((hw_link_info->an_info & I40E_AQ_AN_COMPLETED) ?
AUTONEG_ENABLE : AUTONEG_DISABLE);
- pause->rx_pause = 0;
- pause->tx_pause = 0;
- if (hw_link_info->an_info & I40E_AQ_LINK_PAUSE_RX)
+ if (hw->fc.current_mode == I40E_FC_RX_PAUSE) {
pause->rx_pause = 1;
- if (hw_link_info->an_info & I40E_AQ_LINK_PAUSE_TX)
+ } else if (hw->fc.current_mode == I40E_FC_TX_PAUSE) {
pause->tx_pause = 1;
+ } else if (hw->fc.current_mode == I40E_FC_FULL) {
+ pause->rx_pause = 1;
+ pause->tx_pause = 1;
+ }
}
static u32 i40e_get_msglevel(struct net_device *netdev)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
index ea9ef27..02873dc 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -6924,6 +6924,7 @@ int i40e_fetch_switch_configuration(struct i40e_pf *pf, bool printconfig)
**/
static int i40e_setup_pf_switch(struct i40e_pf *pf)
{
+ u32 rxfc, txfc, rxfc_reg;
int ret;
/* find out what's out there already */
@@ -6994,20 +6995,65 @@ static int i40e_setup_pf_switch(struct i40e_pf *pf)
i40e_aq_get_link_info(&pf->hw, true, NULL, NULL);
i40e_link_event(pf);
- /* Initialize user-specifics link properties */
+ /* Initialize user-specific link properties */
pf->fc_autoneg_status = ((pf->hw.phy.link_info.an_info &
I40E_AQ_AN_COMPLETED) ? true : false);
- pf->hw.fc.requested_mode = I40E_FC_DEFAULT;
- if (pf->hw.phy.link_info.an_info &
- (I40E_AQ_LINK_PAUSE_TX | I40E_AQ_LINK_PAUSE_RX))
+ /* requested_mode is set in probe or by ethtool */
+ if (!pf->fc_autoneg_status)
+ goto no_autoneg;
+
+ if ((pf->hw.phy.link_info.an_info & I40E_AQ_LINK_PAUSE_TX) &&
+ (pf->hw.phy.link_info.an_info & I40E_AQ_LINK_PAUSE_RX))
pf->hw.fc.current_mode = I40E_FC_FULL;
else if (pf->hw.phy.link_info.an_info & I40E_AQ_LINK_PAUSE_TX)
pf->hw.fc.current_mode = I40E_FC_TX_PAUSE;
else if (pf->hw.phy.link_info.an_info & I40E_AQ_LINK_PAUSE_RX)
pf->hw.fc.current_mode = I40E_FC_RX_PAUSE;
else
- pf->hw.fc.current_mode = I40E_FC_DEFAULT;
+ pf->hw.fc.current_mode = I40E_FC_NONE;
+
+ /* sync the flow control settings with the auto-neg values */
+ switch (pf->hw.fc.current_mode) {
+ case I40E_FC_FULL:
+ txfc = 1;
+ rxfc = 1;
+ break;
+ case I40E_FC_TX_PAUSE:
+ txfc = 1;
+ rxfc = 0;
+ break;
+ case I40E_FC_RX_PAUSE:
+ txfc = 0;
+ rxfc = 1;
+ break;
+ case I40E_FC_NONE:
+ case I40E_FC_DEFAULT:
+ txfc = 0;
+ rxfc = 0;
+ break;
+ case I40E_FC_PFC:
+ /* TBD */
+ break;
+ /* no default case, we have to handle all possibilities here */
+ }
+
+ wr32(&pf->hw, I40E_PRTDCB_FCCFG, txfc << I40E_PRTDCB_FCCFG_TFCE_SHIFT);
+
+ rxfc_reg = rd32(&pf->hw, I40E_PRTDCB_MFLCN) &
+ ~I40E_PRTDCB_MFLCN_RFCE_MASK;
+ rxfc_reg |= (rxfc << I40E_PRTDCB_MFLCN_RFCE_SHIFT);
+
+ wr32(&pf->hw, I40E_PRTDCB_MFLCN, rxfc_reg);
+ goto fc_complete;
+
+no_autoneg:
+ /* disable L2 flow control, user can turn it on if they wish */
+ wr32(&pf->hw, I40E_PRTDCB_FCCFG, 0);
+ wr32(&pf->hw, I40E_PRTDCB_MFLCN, rd32(&pf->hw, I40E_PRTDCB_MFLCN) &
+ ~I40E_PRTDCB_MFLCN_RFCE_MASK);
+
+fc_complete:
return ret;
}
@@ -7301,6 +7347,9 @@ static int i40e_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
goto err_pf_reset;
}
+ /* set up a default setting for link flow control */
+ pf->hw.fc.requested_mode = I40E_FC_NONE;
+
err = i40e_init_adminq(hw);
dev_info(&pdev->dev, "%s\n", i40e_fw_version_str(hw));
if (((hw->nvm.version & I40E_NVM_VERSION_HI_MASK)
--
1.8.3.1
^ permalink raw reply related [flat|nested] 58+ messages in thread
* [net-next 07/15] i40e: trivial fixes
2013-12-12 12:40 [net-next 00/15][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (5 preceding siblings ...)
2013-12-12 12:40 ` [net-next 06/15] i40e: init flow control settings to disabled Jeff Kirsher
@ 2013-12-12 12:40 ` Jeff Kirsher
2013-12-12 12:40 ` [net-next 08/15] i40e: use same number of queues as CPUs Jeff Kirsher
` (7 subsequent siblings)
14 siblings, 0 replies; 58+ messages in thread
From: Jeff Kirsher @ 2013-12-12 12:40 UTC (permalink / raw)
To: davem; +Cc: Jesse Brandeburg, netdev, gospo, sassmann, Jeff Kirsher
From: Jesse Brandeburg <jesse.brandeburg@intel.com>
Prevent some compiler warnings and implement some other
trivial fixes.
Change-Id: I7f49d79b91b94df1ad4a8306a0410ed72238845f
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Tested-by: Kavindya Deegala <kavindya.s.deegala@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/i40e/i40e_diag.c | 2 +-
drivers/net/ethernet/intel/i40e/i40e_hmc.c | 2 +-
drivers/net/ethernet/intel/i40e/i40e_main.c | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_diag.c b/drivers/net/ethernet/intel/i40e/i40e_diag.c
index dc6c41f..98c1ef5 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_diag.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_diag.c
@@ -119,7 +119,7 @@ i40e_status i40e_diag_eeprom_test(struct i40e_hw *hw)
/* read NVM control word and if NVM valid, validate EEPROM checksum*/
ret_code = i40e_read_nvm_word(hw, I40E_SR_NVM_CONTROL_WORD, ®_val);
- if ((!ret_code) &&
+ if (!ret_code &&
((reg_val & I40E_SR_CONTROL_WORD_1_MASK) ==
(0x01 << I40E_SR_CONTROL_WORD_1_SHIFT))) {
ret_code = i40e_validate_nvm_checksum(hw, NULL);
diff --git a/drivers/net/ethernet/intel/i40e/i40e_hmc.c b/drivers/net/ethernet/intel/i40e/i40e_hmc.c
index 901804a..bcedf3f 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_hmc.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_hmc.c
@@ -47,10 +47,10 @@ i40e_status i40e_add_sd_table_entry(struct i40e_hw *hw,
u64 direct_mode_sz)
{
enum i40e_memory_type mem_type __attribute__((unused));
- i40e_status ret_code = 0;
struct i40e_hmc_sd_entry *sd_entry;
bool dma_mem_alloc_done = false;
struct i40e_dma_mem mem;
+ i40e_status ret_code;
u64 alloc_len;
if (NULL == hmc_info->sd_table.sd_entry) {
diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
index 02873dc..909b341 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -6924,7 +6924,7 @@ int i40e_fetch_switch_configuration(struct i40e_pf *pf, bool printconfig)
**/
static int i40e_setup_pf_switch(struct i40e_pf *pf)
{
- u32 rxfc, txfc, rxfc_reg;
+ u32 rxfc = 0, txfc = 0, rxfc_reg;
int ret;
/* find out what's out there already */
--
1.8.3.1
^ permalink raw reply related [flat|nested] 58+ messages in thread
* [net-next 08/15] i40e: use same number of queues as CPUs
2013-12-12 12:40 [net-next 00/15][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (6 preceding siblings ...)
2013-12-12 12:40 ` [net-next 07/15] i40e: trivial fixes Jeff Kirsher
@ 2013-12-12 12:40 ` Jeff Kirsher
2013-12-12 12:40 ` [net-next 09/15] i40e: reinit flow for the main VSI Jeff Kirsher
` (6 subsequent siblings)
14 siblings, 0 replies; 58+ messages in thread
From: Jeff Kirsher @ 2013-12-12 12:40 UTC (permalink / raw)
To: davem; +Cc: Jesse Brandeburg, netdev, gospo, sassmann, Jeff Kirsher
From: Jesse Brandeburg <jesse.brandeburg@intel.com>
The current driver default sets the number of transmit/receive
queue pairs based on the current node's CPU count.
A better method is to use the total number of CPUs in the system
to suggest the number of queue pairs, which aligns better with
the behavior of ixgbe, and also with the expectations of the
kernel XPS and other subsystems in the stack.
Change-Id: If3e20c7f100f13e51d69762594d948f247ffe0c8
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Tested-by: Kavindya Deegala <kavindya.s.deegala@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/i40e/i40e_main.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
index 909b341..b94783f 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -5404,7 +5404,7 @@ static int i40e_init_msix(struct i40e_pf *pf)
/* The number of vectors we'll request will be comprised of:
* - Add 1 for "other" cause for Admin Queue events, etc.
* - The number of LAN queue pairs
- * already adjusted for the NUMA node
+ * already adjusted for the number of cpus in the system
* assumes symmetric Tx/Rx pairing
* - The number of VMDq pairs
* Once we count this up, try the request.
@@ -5731,8 +5731,7 @@ static int i40e_sw_init(struct i40e_pf *pf)
pf->hw.func_caps.num_tx_qp);
if (pf->hw.func_caps.rss) {
pf->flags |= I40E_FLAG_RSS_ENABLED;
- pf->rss_size = min_t(int, pf->rss_size_max,
- nr_cpus_node(numa_node_id()));
+ pf->rss_size = min_t(int, pf->rss_size_max, num_online_cpus());
} else {
pf->rss_size = 1;
}
@@ -7067,7 +7066,7 @@ static u16 i40e_set_rss_size(struct i40e_pf *pf, int queues_left)
int num_tc0;
num_tc0 = min_t(int, queues_left, pf->rss_size_max);
- num_tc0 = min_t(int, num_tc0, nr_cpus_node(numa_node_id()));
+ num_tc0 = min_t(int, num_tc0, num_online_cpus());
num_tc0 = rounddown_pow_of_two(num_tc0);
return num_tc0;
--
1.8.3.1
^ permalink raw reply related [flat|nested] 58+ messages in thread
* [net-next 09/15] i40e: reinit flow for the main VSI
2013-12-12 12:40 [net-next 00/15][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (7 preceding siblings ...)
2013-12-12 12:40 ` [net-next 08/15] i40e: use same number of queues as CPUs Jeff Kirsher
@ 2013-12-12 12:40 ` Jeff Kirsher
2013-12-12 12:40 ` [net-next 10/15] i40e: function to reconfigure RSS queues and rebuild Jeff Kirsher
` (5 subsequent siblings)
14 siblings, 0 replies; 58+ messages in thread
From: Jeff Kirsher @ 2013-12-12 12:40 UTC (permalink / raw)
To: davem
Cc: Anjali Singhai Jain, netdev, gospo, sassmann, Jesse Brandeburg,
Jeff Kirsher
From: Anjali Singhai Jain <anjali.singhai@intel.com>
This patch is the first in a 3 series patchset to implement
dynamically changing the queue count for the main VSI.
This patch starts by adding a reinit flow. This flow is designed
to be able to change just the queue count and not the number of
interrupt vectors that the device originally came up with.
Change-Id: I0634aaebf7dc4dd6c66af8f9dbbef89d7beac438
Signed-off-by: Anjali Singhai Jain <anjali.singhai@intel.com>
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Tested-by: Kavindya Deegala <kavindya.s.deegala@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/i40e/i40e_main.c | 118 +++++++++++++++++++++++-----
1 file changed, 97 insertions(+), 21 deletions(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
index b94783f..403984a 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -48,7 +48,7 @@ static void i40e_vsi_reinit_locked(struct i40e_vsi *vsi);
static void i40e_handle_reset_warning(struct i40e_pf *pf);
static int i40e_add_vsi(struct i40e_vsi *vsi);
static int i40e_add_veb(struct i40e_veb *veb, struct i40e_vsi *vsi);
-static int i40e_setup_pf_switch(struct i40e_pf *pf);
+static int i40e_setup_pf_switch(struct i40e_pf *pf, bool reinit);
static int i40e_setup_misc_vector(struct i40e_pf *pf);
static void i40e_determine_queue_usage(struct i40e_pf *pf);
static int i40e_setup_pf_filter_control(struct i40e_pf *pf);
@@ -354,6 +354,9 @@ static struct rtnl_link_stats64 *i40e_get_netdev_stats_struct(
struct rtnl_link_stats64 *vsi_stats = i40e_get_vsi_stats_struct(vsi);
int i;
+ if (test_bit(__I40E_DOWN, &vsi->state))
+ return stats;
+
if (!vsi->tx_rings)
return stats;
@@ -4770,8 +4773,9 @@ static int i40e_prep_for_reset(struct i40e_pf *pf)
/**
* i40e_reset_and_rebuild - reset and rebuid using a saved config
* @pf: board private structure
+ * @reinit: if the Main VSI needs to re-initialized.
**/
-static void i40e_reset_and_rebuild(struct i40e_pf *pf)
+static void i40e_reset_and_rebuild(struct i40e_pf *pf, bool reinit)
{
struct i40e_driver_version dv;
struct i40e_hw *hw = &pf->hw;
@@ -4819,7 +4823,7 @@ static void i40e_reset_and_rebuild(struct i40e_pf *pf)
}
/* do basic switch setup */
- ret = i40e_setup_pf_switch(pf);
+ ret = i40e_setup_pf_switch(pf, reinit);
if (ret)
goto end_core_reset;
@@ -4910,7 +4914,7 @@ static void i40e_handle_reset_warning(struct i40e_pf *pf)
ret = i40e_prep_for_reset(pf);
if (!ret)
- i40e_reset_and_rebuild(pf);
+ i40e_reset_and_rebuild(pf, false);
}
/**
@@ -5091,11 +5095,12 @@ static int i40e_set_num_rings_in_vsi(struct i40e_vsi *vsi)
/**
* i40e_vsi_alloc_arrays - Allocate queue and vector pointer arrays for the vsi
* @type: VSI pointer
+ * @alloc_qvectors: a bool to specify if q_vectors need to be allocated.
*
* On error: returns error code (negative)
* On success: returns 0
**/
-static int i40e_vsi_alloc_arrays(struct i40e_vsi *vsi)
+static int i40e_vsi_alloc_arrays(struct i40e_vsi *vsi, bool alloc_qvectors)
{
int size;
int ret = 0;
@@ -5107,12 +5112,14 @@ static int i40e_vsi_alloc_arrays(struct i40e_vsi *vsi)
return -ENOMEM;
vsi->rx_rings = &vsi->tx_rings[vsi->alloc_queue_pairs];
- /* allocate memory for q_vector pointers */
- size = sizeof(struct i40e_q_vectors *) * vsi->num_q_vectors;
- vsi->q_vectors = kzalloc(size, GFP_KERNEL);
- if (!vsi->q_vectors) {
- ret = -ENOMEM;
- goto err_vectors;
+ if (alloc_qvectors) {
+ /* allocate memory for q_vector pointers */
+ size = sizeof(struct i40e_q_vectors *) * vsi->num_q_vectors;
+ vsi->q_vectors = kzalloc(size, GFP_KERNEL);
+ if (!vsi->q_vectors) {
+ ret = -ENOMEM;
+ goto err_vectors;
+ }
}
return ret;
@@ -5182,7 +5189,7 @@ static int i40e_vsi_mem_alloc(struct i40e_pf *pf, enum i40e_vsi_type type)
if (ret)
goto err_rings;
- ret = i40e_vsi_alloc_arrays(vsi);
+ ret = i40e_vsi_alloc_arrays(vsi, true);
if (ret)
goto err_rings;
@@ -5204,15 +5211,18 @@ unlock_pf:
/**
* i40e_vsi_free_arrays - Free queue and vector pointer arrays for the VSI
* @type: VSI pointer
+ * @free_qvectors: a bool to specify if q_vectors need to be freed.
*
* On error: returns error code (negative)
* On success: returns 0
**/
-static void i40e_vsi_free_arrays(struct i40e_vsi *vsi)
+static void i40e_vsi_free_arrays(struct i40e_vsi *vsi, bool free_qvectors)
{
/* free the ring and vector containers */
- kfree(vsi->q_vectors);
- vsi->q_vectors = NULL;
+ if (free_qvectors) {
+ kfree(vsi->q_vectors);
+ vsi->q_vectors = NULL;
+ }
kfree(vsi->tx_rings);
vsi->tx_rings = NULL;
vsi->rx_rings = NULL;
@@ -5254,7 +5264,7 @@ static int i40e_vsi_clear(struct i40e_vsi *vsi)
i40e_put_lump(pf->qp_pile, vsi->base_queue, vsi->idx);
i40e_put_lump(pf->irq_pile, vsi->base_vector, vsi->idx);
- i40e_vsi_free_arrays(vsi);
+ i40e_vsi_free_arrays(vsi, true);
pf->vsi[vsi->idx] = NULL;
if (vsi->idx < pf->next_vsi)
@@ -6276,6 +6286,69 @@ vector_setup_out:
}
/**
+ * i40e_vsi_reinit_setup - return and reallocate resources for a VSI
+ * @vsi: pointer to the vsi.
+ *
+ * This re-allocates a vsi's queue resources.
+ *
+ * Returns pointer to the successfully allocated and configured VSI sw struct
+ * on success, otherwise returns NULL on failure.
+ **/
+static struct i40e_vsi *i40e_vsi_reinit_setup(struct i40e_vsi *vsi)
+{
+ struct i40e_pf *pf = vsi->back;
+ u8 enabled_tc;
+ int ret;
+
+ i40e_put_lump(pf->qp_pile, vsi->base_queue, vsi->idx);
+ i40e_vsi_clear_rings(vsi);
+
+ i40e_vsi_free_arrays(vsi, false);
+ i40e_set_num_rings_in_vsi(vsi);
+ ret = i40e_vsi_alloc_arrays(vsi, false);
+ if (ret)
+ goto err_vsi;
+
+ ret = i40e_get_lump(pf, pf->qp_pile, vsi->alloc_queue_pairs, vsi->idx);
+ if (ret < 0) {
+ dev_info(&pf->pdev->dev, "VSI %d get_lump failed %d\n",
+ vsi->seid, ret);
+ goto err_vsi;
+ }
+ vsi->base_queue = ret;
+
+ /* Update the FW view of the VSI. Force a reset of TC and queue
+ * layout configurations.
+ */
+ enabled_tc = pf->vsi[pf->lan_vsi]->tc_config.enabled_tc;
+ pf->vsi[pf->lan_vsi]->tc_config.enabled_tc = 0;
+ pf->vsi[pf->lan_vsi]->seid = pf->main_vsi_seid;
+ i40e_vsi_config_tc(pf->vsi[pf->lan_vsi], enabled_tc);
+
+ /* assign it some queues */
+ ret = i40e_alloc_rings(vsi);
+ if (ret)
+ goto err_rings;
+
+ /* map all of the rings to the q_vectors */
+ i40e_vsi_map_rings_to_vectors(vsi);
+ return vsi;
+
+err_rings:
+ i40e_vsi_free_q_vectors(vsi);
+ if (vsi->netdev_registered) {
+ vsi->netdev_registered = false;
+ unregister_netdev(vsi->netdev);
+ free_netdev(vsi->netdev);
+ vsi->netdev = NULL;
+ }
+ i40e_aq_delete_element(&pf->hw, vsi->seid, NULL);
+err_vsi:
+ i40e_vsi_clear(vsi);
+ return NULL;
+}
+
+/**
* i40e_vsi_setup - Set up a VSI by a given type
* @pf: board private structure
* @type: VSI type
@@ -6918,10 +6991,11 @@ int i40e_fetch_switch_configuration(struct i40e_pf *pf, bool printconfig)
/**
* i40e_setup_pf_switch - Setup the HW switch on startup or after reset
* @pf: board private structure
+ * @reinit: if the Main VSI needs to re-initialized.
*
* Returns 0 on success, negative value on failure
**/
-static int i40e_setup_pf_switch(struct i40e_pf *pf)
+static int i40e_setup_pf_switch(struct i40e_pf *pf, bool reinit)
{
u32 rxfc = 0, txfc = 0, rxfc_reg;
int ret;
@@ -6943,7 +7017,7 @@ static int i40e_setup_pf_switch(struct i40e_pf *pf)
i40e_fdir_setup(pf);
/* first time setup */
- if (pf->lan_vsi == I40E_NO_VSI) {
+ if (pf->lan_vsi == I40E_NO_VSI || reinit) {
struct i40e_vsi *vsi = NULL;
u16 uplink_seid;
@@ -6954,8 +7028,10 @@ static int i40e_setup_pf_switch(struct i40e_pf *pf)
uplink_seid = pf->veb[pf->lan_veb]->seid;
else
uplink_seid = pf->mac_seid;
-
- vsi = i40e_vsi_setup(pf, I40E_VSI_MAIN, uplink_seid, 0);
+ if (pf->lan_vsi == I40E_NO_VSI)
+ vsi = i40e_vsi_setup(pf, I40E_VSI_MAIN, uplink_seid, 0);
+ else if (reinit)
+ vsi = i40e_vsi_reinit_setup(pf->vsi[pf->lan_vsi]);
if (!vsi) {
dev_info(&pf->pdev->dev, "setup of MAIN VSI failed\n");
i40e_fdir_teardown(pf);
@@ -7426,7 +7502,7 @@ static int i40e_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
goto err_switch_setup;
}
- err = i40e_setup_pf_switch(pf);
+ err = i40e_setup_pf_switch(pf, false);
if (err) {
dev_info(&pdev->dev, "setup_pf_switch failed: %d\n", err);
goto err_vsis;
--
1.8.3.1
^ permalink raw reply related [flat|nested] 58+ messages in thread
* [net-next 10/15] i40e: function to reconfigure RSS queues and rebuild
2013-12-12 12:40 [net-next 00/15][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (8 preceding siblings ...)
2013-12-12 12:40 ` [net-next 09/15] i40e: reinit flow for the main VSI Jeff Kirsher
@ 2013-12-12 12:40 ` Jeff Kirsher
2013-12-12 12:40 ` [net-next 11/15] i40e: debugfs command to change RSS queue count Jeff Kirsher
` (4 subsequent siblings)
14 siblings, 0 replies; 58+ messages in thread
From: Jeff Kirsher @ 2013-12-12 12:40 UTC (permalink / raw)
To: davem
Cc: Anjali Singhai Jain, netdev, gospo, sassmann, Jesse Brandeburg,
Jeff Kirsher
From: Anjali Singhai Jain <anjali.singhai@intel.com>
This is the second of 3 patches that allows for changing
the number of queues in the driver on the fly.
This patch adds a function that calls the reinit flow for the
main VSI after making changes to the RSS queue count as requested
by the user.
Change-Id: I82dee91e9fe90eeb4e84a7369f4b8b342155dd85
Signed-off-by: Anjali Singhai Jain <anjali.singhai@intel.com>
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Tested-by: Kavindya Deegala <kavindya.s.deegala@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/i40e/i40e.h | 2 ++
drivers/net/ethernet/intel/i40e/i40e_main.c | 56 ++++++++++++++++++++++++-----
2 files changed, 50 insertions(+), 8 deletions(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e.h b/drivers/net/ethernet/intel/i40e/i40e.h
index 385d3ff..672817e 100644
--- a/drivers/net/ethernet/intel/i40e/i40e.h
+++ b/drivers/net/ethernet/intel/i40e/i40e.h
@@ -199,6 +199,7 @@ struct i40e_pf {
u16 num_tc_qps; /* num queue pairs per TC */
u16 num_lan_qps; /* num lan queues this pf has set up */
u16 num_lan_msix; /* num queue vectors for the base pf vsi */
+ int queues_left; /* queues left unclaimed */
u16 rss_size; /* num queues in the RSS array */
u16 rss_size_max; /* HW defined max RSS queues */
u16 fdir_pf_filter_count; /* num of guaranteed filters for this PF */
@@ -530,6 +531,7 @@ struct i40e_vsi *i40e_vsi_setup(struct i40e_pf *pf, u8 type,
int i40e_vsi_release(struct i40e_vsi *vsi);
struct i40e_vsi *i40e_vsi_lookup(struct i40e_pf *pf, enum i40e_vsi_type type,
struct i40e_vsi *start_vsi);
+int i40e_reconfig_rss_queues(struct i40e_pf *pf, int queue_count);
struct i40e_veb *i40e_veb_setup(struct i40e_pf *pf, u16 flags, u16 uplink_seid,
u16 downlink_seid, u8 enabled_tc);
void i40e_veb_release(struct i40e_veb *veb);
diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
index 403984a..eb1c4f0 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -5414,15 +5414,18 @@ static int i40e_init_msix(struct i40e_pf *pf)
/* The number of vectors we'll request will be comprised of:
* - Add 1 for "other" cause for Admin Queue events, etc.
* - The number of LAN queue pairs
- * already adjusted for the number of cpus in the system
- * assumes symmetric Tx/Rx pairing
+ * - Queues being used for RSS.
+ * We don't need as many as max_rss_size vectors.
+ * use rss_size instead in the calculation since that
+ * is governed by number of cpus in the system.
+ * - assumes symmetric Tx/Rx pairing
* - The number of VMDq pairs
* Once we count this up, try the request.
*
* If we can't get what we want, we'll simplify to nearly nothing
* and try again. If that still fails, we punt.
*/
- pf->num_lan_msix = pf->num_lan_qps;
+ pf->num_lan_msix = pf->num_lan_qps - (pf->rss_size_max - pf->rss_size);
pf->num_vmdq_msix = pf->num_vmdq_qps;
v_budget = 1 + pf->num_lan_msix;
v_budget += (pf->num_vmdq_vsis * pf->num_vmdq_msix);
@@ -5703,6 +5706,42 @@ static int i40e_config_rss(struct i40e_pf *pf)
}
/**
+ * i40e_reconfig_rss_queues - change number of queues for rss and rebuild
+ * @pf: board private structure
+ * @queue_count: the requested queue count for rss.
+ *
+ * returns 0 if rss is not enabled, if enabled returns the final rss queue
+ * count which may be different from the requested queue count.
+ **/
+int i40e_reconfig_rss_queues(struct i40e_pf *pf, int queue_count)
+{
+ if (!(pf->flags & I40E_FLAG_RSS_ENABLED))
+ return 0;
+
+ queue_count = min_t(int, queue_count, pf->rss_size_max);
+ queue_count = rounddown_pow_of_two(queue_count);
+
+ if (queue_count != pf->rss_size) {
+ if (pf->queues_left < (queue_count - pf->rss_size)) {
+ dev_info(&pf->pdev->dev,
+ "Not enough queues to do RSS on %d queues: remaining queues %d\n",
+ queue_count, pf->queues_left);
+ return pf->rss_size;
+ }
+ i40e_prep_for_reset(pf);
+
+ pf->num_lan_qps += (queue_count - pf->rss_size);
+ pf->queues_left -= (queue_count - pf->rss_size);
+ pf->rss_size = queue_count;
+
+ i40e_reset_and_rebuild(pf, true);
+ i40e_config_rss(pf);
+ }
+ dev_info(&pf->pdev->dev, "RSS count: %d\n", pf->rss_size);
+ return pf->rss_size;
+}
+
+/**
* i40e_sw_init - Initialize general software structures (struct i40e_pf)
* @pf: board private structure to initialize
*
@@ -5892,7 +5931,7 @@ static int i40e_config_netdev(struct i40e_vsi *vsi)
int etherdev_size;
etherdev_size = sizeof(struct i40e_netdev_priv);
- netdev = alloc_etherdev_mq(etherdev_size, vsi->num_queue_pairs);
+ netdev = alloc_etherdev_mq(etherdev_size, vsi->alloc_queue_pairs);
if (!netdev)
return -ENOMEM;
@@ -7193,7 +7232,7 @@ static void i40e_determine_queue_usage(struct i40e_pf *pf)
pf->rss_size = i40e_set_rss_size(pf, queues_left);
queues_left -= pf->rss_size;
- pf->num_lan_qps = pf->rss_size;
+ pf->num_lan_qps = pf->rss_size_max;
} else if (pf->flags & I40E_FLAG_RSS_ENABLED &&
!(pf->flags & I40E_FLAG_FDIR_ENABLED) &&
@@ -7212,7 +7251,7 @@ static void i40e_determine_queue_usage(struct i40e_pf *pf)
return;
}
- pf->num_lan_qps = pf->rss_size + accum_tc_size;
+ pf->num_lan_qps = pf->rss_size_max + accum_tc_size;
} else if (pf->flags & I40E_FLAG_RSS_ENABLED &&
(pf->flags & I40E_FLAG_FDIR_ENABLED) &&
@@ -7228,7 +7267,7 @@ static void i40e_determine_queue_usage(struct i40e_pf *pf)
return;
}
- pf->num_lan_qps = pf->rss_size;
+ pf->num_lan_qps = pf->rss_size_max;
} else if (pf->flags & I40E_FLAG_RSS_ENABLED &&
(pf->flags & I40E_FLAG_FDIR_ENABLED) &&
@@ -7248,7 +7287,7 @@ static void i40e_determine_queue_usage(struct i40e_pf *pf)
return;
}
- pf->num_lan_qps = pf->rss_size + accum_tc_size;
+ pf->num_lan_qps = pf->rss_size_max + accum_tc_size;
} else {
dev_info(&pf->pdev->dev,
@@ -7270,6 +7309,7 @@ static void i40e_determine_queue_usage(struct i40e_pf *pf)
queues_left -= (pf->num_vmdq_vsis * pf->num_vmdq_qps);
}
+ pf->queues_left = queues_left;
return;
}
--
1.8.3.1
^ permalink raw reply related [flat|nested] 58+ messages in thread
* [net-next 11/15] i40e: debugfs command to change RSS queue count
2013-12-12 12:40 [net-next 00/15][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (9 preceding siblings ...)
2013-12-12 12:40 ` [net-next 10/15] i40e: function to reconfigure RSS queues and rebuild Jeff Kirsher
@ 2013-12-12 12:40 ` Jeff Kirsher
2013-12-12 14:13 ` Sergei Shtylyov
2013-12-12 20:41 ` Ben Hutchings
2013-12-12 12:40 ` [net-next 12/15] i40e: Add basic support for get/set channels for RSS Jeff Kirsher
` (3 subsequent siblings)
14 siblings, 2 replies; 58+ messages in thread
From: Jeff Kirsher @ 2013-12-12 12:40 UTC (permalink / raw)
To: davem
Cc: Anjali Singhai Jain, netdev, gospo, sassmann, Jesse Brandeburg,
Jeff Kirsher
From: Anjali Singhai Jain <anjali.singhai@intel.com>
This is the 3rd of 3 patches that implements changing the number
of queues on the fly.
This patch adds the debugfs hook for calling the change queues
flow with a request to change the number of RSS queues.
This is intended to also be called eventually from ethtool.
Change-Id: Ib6b332f0ec8e58989ef8c65ec30079d01fdf6c9a
Signed-off-by: Anjali Singhai Jain <anjali.singhai@intel.com>
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Tested-by: Kavindya Deegala <kavindya.s.deegala@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/i40e/i40e_debugfs.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_debugfs.c b/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
index 9c675b5..3303b43 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
@@ -1792,6 +1792,17 @@ static ssize_t i40e_dbg_command_write(struct file *filp,
}
kfree(buff);
buff = NULL;
+ } else if (strncmp(cmd_buf, "set rss_size", 12) == 0) {
+ u16 queue_count;
+ cnt = sscanf(&cmd_buf[12], "%hi", &queue_count);
+ if (cnt != 1) {
+ dev_info(&pf->pdev->dev,
+ "set rss_size: bad command string, cnt=%d\n", cnt);
+ goto command_write_done;
+ }
+ dev_info(&pf->pdev->dev, " set rss_size requesting %d queues\n", queue_count);
+ i40e_reconfig_rss_queues(pf, queue_count);
+ dev_info(&pf->pdev->dev, " new rss_size %d\n", pf->rss_size);
} else {
dev_info(&pf->pdev->dev, "unknown command '%s'\n", cmd_buf);
dev_info(&pf->pdev->dev, "available commands\n");
@@ -1827,6 +1838,7 @@ static ssize_t i40e_dbg_command_write(struct file *filp,
dev_info(&pf->pdev->dev, " lldp event on\n");
dev_info(&pf->pdev->dev, " lldp event off\n");
dev_info(&pf->pdev->dev, " nvm read [module] [word_offset] [word_count]\n");
+ dev_info(&pf->pdev->dev, " set rss_size <count>\n");
}
command_write_done:
--
1.8.3.1
^ permalink raw reply related [flat|nested] 58+ messages in thread
* Re: [net-next 11/15] i40e: debugfs command to change RSS queue count
2013-12-12 12:40 ` [net-next 11/15] i40e: debugfs command to change RSS queue count Jeff Kirsher
@ 2013-12-12 14:13 ` Sergei Shtylyov
2013-12-12 20:41 ` Ben Hutchings
1 sibling, 0 replies; 58+ messages in thread
From: Sergei Shtylyov @ 2013-12-12 14:13 UTC (permalink / raw)
To: Jeff Kirsher, davem
Cc: Anjali Singhai Jain, netdev, gospo, sassmann, Jesse Brandeburg
Hello.
On 12-12-2013 16:40, Jeff Kirsher wrote:
> From: Anjali Singhai Jain <anjali.singhai@intel.com>
> This is the 3rd of 3 patches that implements changing the number
> of queues on the fly.
> This patch adds the debugfs hook for calling the change queues
> flow with a request to change the number of RSS queues.
> This is intended to also be called eventually from ethtool.
> Change-Id: Ib6b332f0ec8e58989ef8c65ec30079d01fdf6c9a
> Signed-off-by: Anjali Singhai Jain <anjali.singhai@intel.com>
> Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
> Tested-by: Kavindya Deegala <kavindya.s.deegala@intel.com>
> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
> ---
> drivers/net/ethernet/intel/i40e/i40e_debugfs.c | 12 ++++++++++++
> 1 file changed, 12 insertions(+)
> diff --git a/drivers/net/ethernet/intel/i40e/i40e_debugfs.c b/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
> index 9c675b5..3303b43 100644
> --- a/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
> +++ b/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
> @@ -1792,6 +1792,17 @@ static ssize_t i40e_dbg_command_write(struct file *filp,
> }
> kfree(buff);
> buff = NULL;
> + } else if (strncmp(cmd_buf, "set rss_size", 12) == 0) {
> + u16 queue_count;
Please insert empty line after declaration.
> + cnt = sscanf(&cmd_buf[12], "%hi", &queue_count);
WBR, Sergei
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [net-next 11/15] i40e: debugfs command to change RSS queue count
2013-12-12 12:40 ` [net-next 11/15] i40e: debugfs command to change RSS queue count Jeff Kirsher
2013-12-12 14:13 ` Sergei Shtylyov
@ 2013-12-12 20:41 ` Ben Hutchings
1 sibling, 0 replies; 58+ messages in thread
From: Ben Hutchings @ 2013-12-12 20:41 UTC (permalink / raw)
To: Jeff Kirsher
Cc: davem, Anjali Singhai Jain, netdev, gospo, sassmann, Jesse Brandeburg
On Thu, 2013-12-12 at 04:40 -0800, Jeff Kirsher wrote:
> From: Anjali Singhai Jain <anjali.singhai@intel.com>
>
> This is the 3rd of 3 patches that implements changing the number
> of queues on the fly.
>
> This patch adds the debugfs hook for calling the change queues
> flow with a request to change the number of RSS queues.
>
> This is intended to also be called eventually from ethtool.
The ethtool set_channels operation is implemented in 12/15, so why
include this awful interface as well?
Ben.
> Change-Id: Ib6b332f0ec8e58989ef8c65ec30079d01fdf6c9a
> Signed-off-by: Anjali Singhai Jain <anjali.singhai@intel.com>
> Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
> Tested-by: Kavindya Deegala <kavindya.s.deegala@intel.com>
> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
> ---
> drivers/net/ethernet/intel/i40e/i40e_debugfs.c | 12 ++++++++++++
> 1 file changed, 12 insertions(+)
>
> diff --git a/drivers/net/ethernet/intel/i40e/i40e_debugfs.c b/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
> index 9c675b5..3303b43 100644
> --- a/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
> +++ b/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
> @@ -1792,6 +1792,17 @@ static ssize_t i40e_dbg_command_write(struct file *filp,
> }
> kfree(buff);
> buff = NULL;
> + } else if (strncmp(cmd_buf, "set rss_size", 12) == 0) {
> + u16 queue_count;
> + cnt = sscanf(&cmd_buf[12], "%hi", &queue_count);
> + if (cnt != 1) {
> + dev_info(&pf->pdev->dev,
> + "set rss_size: bad command string, cnt=%d\n", cnt);
> + goto command_write_done;
> + }
> + dev_info(&pf->pdev->dev, " set rss_size requesting %d queues\n", queue_count);
> + i40e_reconfig_rss_queues(pf, queue_count);
> + dev_info(&pf->pdev->dev, " new rss_size %d\n", pf->rss_size);
> } else {
> dev_info(&pf->pdev->dev, "unknown command '%s'\n", cmd_buf);
> dev_info(&pf->pdev->dev, "available commands\n");
> @@ -1827,6 +1838,7 @@ static ssize_t i40e_dbg_command_write(struct file *filp,
> dev_info(&pf->pdev->dev, " lldp event on\n");
> dev_info(&pf->pdev->dev, " lldp event off\n");
> dev_info(&pf->pdev->dev, " nvm read [module] [word_offset] [word_count]\n");
> + dev_info(&pf->pdev->dev, " set rss_size <count>\n");
> }
>
> command_write_done:
--
Ben Hutchings, Staff Engineer, Solarflare
Not speaking for my employer; that's the marketing department's job.
They asked us to note that Solarflare product names are trademarked.
^ permalink raw reply [flat|nested] 58+ messages in thread
* [net-next 12/15] i40e: Add basic support for get/set channels for RSS
2013-12-12 12:40 [net-next 00/15][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (10 preceding siblings ...)
2013-12-12 12:40 ` [net-next 11/15] i40e: debugfs command to change RSS queue count Jeff Kirsher
@ 2013-12-12 12:40 ` Jeff Kirsher
2013-12-12 12:40 ` [net-next 13/15] i40e: rtnl_lock in reset path fixes Jeff Kirsher
` (2 subsequent siblings)
14 siblings, 0 replies; 58+ messages in thread
From: Jeff Kirsher @ 2013-12-12 12:40 UTC (permalink / raw)
To: davem
Cc: Anjali Singhai Jain, netdev, gospo, sassmann, Jesse Brandeburg,
Jeff Kirsher
From: Anjali Singhai Jain <anjali.singhai@intel.com>
Implement the number of receive/transmit queue pair being
changed on the fly by ethtool.
Change-Id: I70df2363f1ca40b63610baa561c5b6b92b81bca7
Signed-off-by: Anjali Singhai Jain <anjali.singhai@intel.com>
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Tested-by: Kavindya Deegala <kavindya.s.deegala@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 90 ++++++++++++++++++++++++++
1 file changed, 90 insertions(+)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
index fcb6def..d6681f6 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
@@ -1472,6 +1472,94 @@ static int i40e_set_rxnfc(struct net_device *netdev, struct ethtool_rxnfc *cmd)
return ret;
}
+/**
+ * i40e_max_channels - get Max number of combined channels supported
+ * @vsi: vsi pointer
+ **/
+static unsigned int i40e_max_channels(struct i40e_vsi *vsi)
+{
+ /* TODO: This code assumes DCB and FD is disabled for now. */
+ return vsi->alloc_queue_pairs;
+}
+
+/**
+ * i40e_get_channels - Get the current channels enabled and max supported etc.
+ * @netdev: network interface device structure
+ * @ch: ethtool channels structure
+ *
+ * We don't support separate tx and rx queues as channels. The other count
+ * represents how many queues are being used for control. max_combined counts
+ * how many queue pairs we can support. They may not be mapped 1 to 1 with
+ * q_vectors since we support a lot more queue pairs than q_vectors.
+ **/
+static void i40e_get_channels(struct net_device *dev,
+ struct ethtool_channels *ch)
+{
+ struct i40e_netdev_priv *np = netdev_priv(dev);
+ struct i40e_vsi *vsi = np->vsi;
+ struct i40e_pf *pf = vsi->back;
+
+ /* report maximum channels */
+ ch->max_combined = i40e_max_channels(vsi);
+
+ /* report info for other vector */
+ ch->other_count = (pf->flags & I40E_FLAG_FDIR_ENABLED) ? 1 : 0;
+ ch->max_other = ch->other_count;
+
+ /* Note: This code assumes DCB is disabled for now. */
+ ch->combined_count = vsi->num_queue_pairs;
+}
+
+/**
+ * i40e_set_channels - Set the new channels count.
+ * @netdev: network interface device structure
+ * @ch: ethtool channels structure
+ *
+ * The new channels count may not be the same as requested by the user
+ * since it gets rounded down to a power of 2 value.
+ **/
+static int i40e_set_channels(struct net_device *dev,
+ struct ethtool_channels *ch)
+{
+ struct i40e_netdev_priv *np = netdev_priv(dev);
+ unsigned int count = ch->combined_count;
+ struct i40e_vsi *vsi = np->vsi;
+ struct i40e_pf *pf = vsi->back;
+ int new_count;
+
+ /* We do not support setting channels for any other VSI at present */
+ if (vsi->type != I40E_VSI_MAIN)
+ return -EINVAL;
+
+ /* verify they are not requesting separate vectors */
+ if (!count || ch->rx_count || ch->tx_count)
+ return -EINVAL;
+
+ /* verify other_count has not changed */
+ if (ch->other_count != ((pf->flags & I40E_FLAG_FDIR_ENABLED) ? 1 : 0))
+ return -EINVAL;
+
+ /* verify the number of channels does not exceed hardware limits */
+ if (count > i40e_max_channels(vsi))
+ return -EINVAL;
+
+ /* update feature limits from largest to smallest supported values */
+ /* TODO: Flow director limit, DCB etc */
+
+ /* cap RSS limit */
+ if (count > pf->rss_size_max)
+ count = pf->rss_size_max;
+
+ /* use rss_reconfig to rebuild with new queue count and update traffic
+ * class queue mapping
+ */
+ new_count = i40e_reconfig_rss_queues(pf, count);
+ if (new_count > 1)
+ return 0;
+ else
+ return -EINVAL;
+}
+
static const struct ethtool_ops i40e_ethtool_ops = {
.get_settings = i40e_get_settings,
.get_drvinfo = i40e_get_drvinfo,
@@ -1496,6 +1584,8 @@ static const struct ethtool_ops i40e_ethtool_ops = {
.get_ethtool_stats = i40e_get_ethtool_stats,
.get_coalesce = i40e_get_coalesce,
.set_coalesce = i40e_set_coalesce,
+ .get_channels = i40e_get_channels,
+ .set_channels = i40e_set_channels,
.get_ts_info = i40e_get_ts_info,
};
--
1.8.3.1
^ permalink raw reply related [flat|nested] 58+ messages in thread
* [net-next 13/15] i40e: rtnl_lock in reset path fixes
2013-12-12 12:40 [net-next 00/15][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (11 preceding siblings ...)
2013-12-12 12:40 ` [net-next 12/15] i40e: Add basic support for get/set channels for RSS Jeff Kirsher
@ 2013-12-12 12:40 ` Jeff Kirsher
2013-12-12 12:40 ` [net-next 14/15] i40e: support for suspend and resume Jeff Kirsher
2013-12-12 12:40 ` [net-next 15/15] i40e: Remove FCoE in i40e_virtchnl_pf.c code Jeff Kirsher
14 siblings, 0 replies; 58+ messages in thread
From: Jeff Kirsher @ 2013-12-12 12:40 UTC (permalink / raw)
To: davem
Cc: Anjali Singhai Jain, netdev, gospo, sassmann, Jesse Brandeburg,
Jeff Kirsher
From: Anjali Singhai Jain <anjali.singhai@intel.com>
Any user-initiated path which eventually calls reset needs
to hold the rtnl_lock, so add functionality to do that.
Be careful not to use the safe reset when cleaning up
from the diagnostic tests, which avoids rtnl_lock
recursion from ethtool.
Protect the reset_task with rtnl_lock, since it runs from a work item.
Change-Id: Ib6e7a3fb2966809db2daf35fd5a123ccdf6f6f0f
Signed-off-by: Anjali Singhai Jain <anjali.singhai@intel.com>
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Tested-by: Kavindya Deegala <kavindya.s.deegala@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/i40e/i40e.h | 1 +
drivers/net/ethernet/intel/i40e/i40e_debugfs.c | 10 ++++++----
drivers/net/ethernet/intel/i40e/i40e_main.c | 19 ++++++++++++++++++-
3 files changed, 25 insertions(+), 5 deletions(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e.h b/drivers/net/ethernet/intel/i40e/i40e.h
index 672817e..d7c817c 100644
--- a/drivers/net/ethernet/intel/i40e/i40e.h
+++ b/drivers/net/ethernet/intel/i40e/i40e.h
@@ -502,6 +502,7 @@ int i40e_up(struct i40e_vsi *vsi);
void i40e_down(struct i40e_vsi *vsi);
extern const char i40e_driver_name[];
extern const char i40e_driver_version_str[];
+void i40e_do_reset_safe(struct i40e_pf *pf, u32 reset_flags);
void i40e_do_reset(struct i40e_pf *pf, u32 reset_flags);
void i40e_update_stats(struct i40e_vsi *vsi);
void i40e_update_eth_stats(struct i40e_vsi *vsi);
diff --git a/drivers/net/ethernet/intel/i40e/i40e_debugfs.c b/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
index 3303b43..075427d 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
@@ -1462,19 +1462,19 @@ static ssize_t i40e_dbg_command_write(struct file *filp,
}
} else if (strncmp(cmd_buf, "pfr", 3) == 0) {
dev_info(&pf->pdev->dev, "forcing PFR\n");
- i40e_do_reset(pf, (1 << __I40E_PF_RESET_REQUESTED));
+ i40e_do_reset_safe(pf, (1 << __I40E_PF_RESET_REQUESTED));
} else if (strncmp(cmd_buf, "corer", 5) == 0) {
dev_info(&pf->pdev->dev, "forcing CoreR\n");
- i40e_do_reset(pf, (1 << __I40E_CORE_RESET_REQUESTED));
+ i40e_do_reset_safe(pf, (1 << __I40E_CORE_RESET_REQUESTED));
} else if (strncmp(cmd_buf, "globr", 5) == 0) {
dev_info(&pf->pdev->dev, "forcing GlobR\n");
- i40e_do_reset(pf, (1 << __I40E_GLOBAL_RESET_REQUESTED));
+ i40e_do_reset_safe(pf, (1 << __I40E_GLOBAL_RESET_REQUESTED));
} else if (strncmp(cmd_buf, "empr", 4) == 0) {
dev_info(&pf->pdev->dev, "forcing EMPR\n");
- i40e_do_reset(pf, (1 << __I40E_EMP_RESET_REQUESTED));
+ i40e_do_reset_safe(pf, (1 << __I40E_EMP_RESET_REQUESTED));
} else if (strncmp(cmd_buf, "read", 4) == 0) {
u32 address;
@@ -1801,7 +1801,9 @@ static ssize_t i40e_dbg_command_write(struct file *filp,
goto command_write_done;
}
dev_info(&pf->pdev->dev, " set rss_size requesting %d queues\n", queue_count);
+ rtnl_lock();
i40e_reconfig_rss_queues(pf, queue_count);
+ rtnl_unlock();
dev_info(&pf->pdev->dev, " new rss_size %d\n", pf->rss_size);
} else {
dev_info(&pf->pdev->dev, "unknown command '%s'\n", cmd_buf);
diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
index eb1c4f0..d864a54 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -4135,6 +4135,19 @@ void i40e_do_reset(struct i40e_pf *pf, u32 reset_flags)
}
/**
+ * i40e_do_reset_safe - Protected reset path for userland calls.
+ * @pf: board private structure
+ * @reset_flags: which reset is requested
+ *
+ **/
+void i40e_do_reset_safe(struct i40e_pf *pf, u32 reset_flags)
+{
+ rtnl_lock();
+ i40e_do_reset(pf, reset_flags);
+ rtnl_unlock();
+}
+
+/**
* i40e_handle_lan_overflow_event - Handler for LAN queue overflow event
* @pf: board private structure
* @e: event info posted on ARQ
@@ -4379,6 +4392,7 @@ static void i40e_reset_subtask(struct i40e_pf *pf)
{
u32 reset_flags = 0;
+ rtnl_lock();
if (test_bit(__I40E_REINIT_REQUESTED, &pf->state)) {
reset_flags |= (1 << __I40E_REINIT_REQUESTED);
clear_bit(__I40E_REINIT_REQUESTED, &pf->state);
@@ -4401,7 +4415,7 @@ static void i40e_reset_subtask(struct i40e_pf *pf)
*/
if (test_bit(__I40E_RESET_INTR_RECEIVED, &pf->state)) {
i40e_handle_reset_warning(pf);
- return;
+ goto unlock;
}
/* If we're already down or resetting, just bail */
@@ -4409,6 +4423,9 @@ static void i40e_reset_subtask(struct i40e_pf *pf)
!test_bit(__I40E_DOWN, &pf->state) &&
!test_bit(__I40E_CONFIG_BUSY, &pf->state))
i40e_do_reset(pf, reset_flags);
+
+unlock:
+ rtnl_unlock();
}
/**
--
1.8.3.1
^ permalink raw reply related [flat|nested] 58+ messages in thread
* [net-next 14/15] i40e: support for suspend and resume
2013-12-12 12:40 [net-next 00/15][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (12 preceding siblings ...)
2013-12-12 12:40 ` [net-next 13/15] i40e: rtnl_lock in reset path fixes Jeff Kirsher
@ 2013-12-12 12:40 ` Jeff Kirsher
2013-12-12 12:40 ` [net-next 15/15] i40e: Remove FCoE in i40e_virtchnl_pf.c code Jeff Kirsher
14 siblings, 0 replies; 58+ messages in thread
From: Jeff Kirsher @ 2013-12-12 12:40 UTC (permalink / raw)
To: davem
Cc: Shannon Nelson, netdev, gospo, sassmann, Jesse Brandeburg, Jeff Kirsher
From: Shannon Nelson <shannon.nelson@intel.com>
Add basic support for handling suspend and resume. We'll add
Wake-on-LAN support later.
Change-Id: Iea5e11c81bd9289a5bdbf086de8f626911a0b5ce
Signed-off-by: Shannon Nelson <shannon.nelson@intel.com>
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Tested-by: Kavindya Deegala <kavindya.s.deegala@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/i40e/i40e.h | 1 +
drivers/net/ethernet/intel/i40e/i40e_main.c | 97 ++++++++++++++++++++++++++++-
2 files changed, 97 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e.h b/drivers/net/ethernet/intel/i40e/i40e.h
index d7c817c..f34c847 100644
--- a/drivers/net/ethernet/intel/i40e/i40e.h
+++ b/drivers/net/ethernet/intel/i40e/i40e.h
@@ -133,6 +133,7 @@ enum i40e_state_t {
__I40E_GLOBAL_RESET_REQUESTED,
__I40E_EMP_RESET_REQUESTED,
__I40E_FILTER_OVERFLOW_PROMISC,
+ __I40E_SUSPENDED,
};
enum i40e_interrupt_policy {
diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
index d864a54..b1ef67d 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -7762,7 +7762,11 @@ static pci_ers_result_t i40e_pci_error_detected(struct pci_dev *pdev,
dev_info(&pdev->dev, "%s: error %d\n", __func__, error);
/* shutdown all operations */
- i40e_pf_quiesce_all_vsi(pf);
+ if (!test_bit(__I40E_SUSPENDED, &pf->state)) {
+ rtnl_lock();
+ i40e_prep_for_reset(pf);
+ rtnl_unlock();
+ }
/* Request a slot reset */
return PCI_ERS_RESULT_NEED_RESET;
@@ -7825,9 +7829,95 @@ static void i40e_pci_error_resume(struct pci_dev *pdev)
struct i40e_pf *pf = pci_get_drvdata(pdev);
dev_info(&pdev->dev, "%s\n", __func__);
+ if (test_bit(__I40E_SUSPENDED, &pf->state))
+ return;
+
+ rtnl_lock();
i40e_handle_reset_warning(pf);
+ rtnl_lock();
+}
+
+/**
+ * i40e_shutdown - PCI callback for shutting down
+ * @pdev: PCI device information struct
+ **/
+static void i40e_shutdown(struct pci_dev *pdev)
+{
+ struct i40e_pf *pf = pci_get_drvdata(pdev);
+
+ set_bit(__I40E_SUSPENDED, &pf->state);
+ set_bit(__I40E_DOWN, &pf->state);
+ rtnl_lock();
+ i40e_prep_for_reset(pf);
+ rtnl_unlock();
+
+ if (system_state == SYSTEM_POWER_OFF) {
+ pci_wake_from_d3(pdev, false); /* No WoL support yet */
+ pci_set_power_state(pdev, PCI_D3hot);
+ }
+}
+
+#ifdef CONFIG_PM
+/**
+ * i40e_suspend - PCI callback for moving to D3
+ * @pdev: PCI device information struct
+ **/
+static int i40e_suspend(struct pci_dev *pdev, pm_message_t state)
+{
+ struct i40e_pf *pf = pci_get_drvdata(pdev);
+
+ set_bit(__I40E_SUSPENDED, &pf->state);
+ set_bit(__I40E_DOWN, &pf->state);
+ rtnl_lock();
+ i40e_prep_for_reset(pf);
+ rtnl_unlock();
+
+ pci_wake_from_d3(pdev, false); /* No WoL support yet */
+ pci_set_power_state(pdev, PCI_D3hot);
+
+ return 0;
}
+/**
+ * i40e_resume - PCI callback for waking up from D3
+ * @pdev: PCI device information struct
+ **/
+static int i40e_resume(struct pci_dev *pdev)
+{
+ struct i40e_pf *pf = pci_get_drvdata(pdev);
+ u32 err;
+
+ pci_set_power_state(pdev, PCI_D0);
+ pci_restore_state(pdev);
+ /* pci_restore_state() clears dev->state_saves, so
+ * call pci_save_state() again to restore it.
+ */
+ pci_save_state(pdev);
+
+ err = pci_enable_device_mem(pdev);
+ if (err) {
+ dev_err(&pdev->dev,
+ "%s: Cannot enable PCI device from suspend\n",
+ __func__);
+ return err;
+ }
+ pci_set_master(pdev);
+
+ /* no wakeup events while running */
+ pci_wake_from_d3(pdev, false);
+
+ /* handling the reset will rebuild the device state */
+ if (test_and_clear_bit(__I40E_SUSPENDED, &pf->state)) {
+ clear_bit(__I40E_DOWN, &pf->state);
+ rtnl_lock();
+ i40e_reset_and_rebuild(pf, false);
+ rtnl_unlock();
+ }
+
+ return 0;
+}
+
+#endif
static const struct pci_error_handlers i40e_err_handler = {
.error_detected = i40e_pci_error_detected,
.slot_reset = i40e_pci_error_slot_reset,
@@ -7839,6 +7929,11 @@ static struct pci_driver i40e_driver = {
.id_table = i40e_pci_tbl,
.probe = i40e_probe,
.remove = i40e_remove,
+#ifdef CONFIG_PM
+ .suspend = i40e_suspend,
+ .resume = i40e_resume,
+#endif
+ .shutdown = i40e_shutdown,
.err_handler = &i40e_err_handler,
.sriov_configure = i40e_pci_sriov_configure,
};
--
1.8.3.1
^ permalink raw reply related [flat|nested] 58+ messages in thread
* [net-next 15/15] i40e: Remove FCoE in i40e_virtchnl_pf.c code
2013-12-12 12:40 [net-next 00/15][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (13 preceding siblings ...)
2013-12-12 12:40 ` [net-next 14/15] i40e: support for suspend and resume Jeff Kirsher
@ 2013-12-12 12:40 ` Jeff Kirsher
14 siblings, 0 replies; 58+ messages in thread
From: Jeff Kirsher @ 2013-12-12 12:40 UTC (permalink / raw)
To: davem
Cc: Neerav Parikh, netdev, gospo, sassmann, Jesse Brandeburg, Jeff Kirsher
From: Neerav Parikh <Neerav.Parikh@intel.com>
Remove FCoE code from the VF interface, as the feature will
not be supported on VF interfaces.
Change-Id: Ie9db04fa2e37fa14ac3e73a9c20980348d931357
Signed-off-by: Neerav Parikh <Neerav.Parikh@intel.com>
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Tested-by: Kavindya Deegala <kavindya.s.deegala@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 29 ++--------------------
1 file changed, 2 insertions(+), 27 deletions(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c b/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
index e7bdd47..68e1f8e 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
@@ -521,6 +521,7 @@ static int i40e_alloc_vsi_res(struct i40e_vf *vf, enum i40e_vsi_type type)
f = i40e_add_filter(vsi, vf->default_lan_addr.addr,
0, true, false);
}
+
if (!f) {
dev_err(&pf->pdev->dev, "Unable to add ucast filter\n");
ret = -ENOMEM;
@@ -763,6 +764,7 @@ static void i40e_free_vf_res(struct i40e_vf *vf)
vf->lan_vsi_index = 0;
vf->lan_vsi_id = 0;
}
+
/* reset some of the state varibles keeping
* track of the resources
*/
@@ -1777,30 +1779,6 @@ error_param:
}
/**
- * i40e_vc_fcoe_msg
- * @vf: pointer to the vf info
- * @msg: pointer to the msg buffer
- * @msglen: msg length
- *
- * called from the vf for the fcoe msgs
- **/
-static int i40e_vc_fcoe_msg(struct i40e_vf *vf, u8 *msg, u16 msglen)
-{
- i40e_status aq_ret = 0;
-
- if (!test_bit(I40E_VF_STAT_ACTIVE, &vf->vf_states) ||
- !test_bit(I40E_VF_STAT_FCOEENA, &vf->vf_states)) {
- aq_ret = I40E_ERR_PARAM;
- goto error_param;
- }
- aq_ret = I40E_ERR_NOT_IMPLEMENTED;
-
-error_param:
- /* send the response to the vf */
- return i40e_vc_send_resp_to_vf(vf, I40E_VIRTCHNL_OP_FCOE, aq_ret);
-}
-
-/**
* i40e_vc_validate_vf_msg
* @vf: pointer to the vf info
* @msg: pointer to the msg buffer
@@ -1973,9 +1951,6 @@ int i40e_vc_process_vf_msg(struct i40e_pf *pf, u16 vf_id, u32 v_opcode,
case I40E_VIRTCHNL_OP_GET_STATS:
ret = i40e_vc_get_stats_msg(vf, msg, msglen);
break;
- case I40E_VIRTCHNL_OP_FCOE:
- ret = i40e_vc_fcoe_msg(vf, msg, msglen);
- break;
case I40E_VIRTCHNL_OP_UNKNOWN:
default:
dev_err(&pf->pdev->dev,
--
1.8.3.1
^ permalink raw reply related [flat|nested] 58+ 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; 58+ 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] 58+ messages in thread
* Re: [net-next 00/15][pull request] Intel Wired LAN Driver Updates
2014-05-29 15:10 [net-next 00/15][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
@ 2014-05-31 0:53 ` David Miller
0 siblings, 0 replies; 58+ 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] 58+ messages in thread
* [net-next 00/15][pull request] Intel Wired LAN Driver Updates
@ 2014-05-27 9:12 Jeff Kirsher
2014-05-28 16:42 ` David Miller
0 siblings, 1 reply; 58+ 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] 58+ 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; 58+ 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] 58+ 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; 58+ 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] 58+ 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; 58+ 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] 58+ 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; 58+ 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] 58+ 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; 58+ 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] 58+ 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; 58+ 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] 58+ 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; 58+ 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] 58+ 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; 58+ 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] 58+ 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; 58+ 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] 58+ 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; 58+ 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] 58+ 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; 58+ 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] 58+ 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; 58+ 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] 58+ 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; 58+ 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] 58+ 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; 58+ 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] 58+ 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; 58+ 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] 58+ 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; 58+ 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] 58+ 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; 58+ 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] 58+ 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; 58+ 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] 58+ 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; 58+ 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] 58+ 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; 58+ 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] 58+ 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; 58+ 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] 58+ 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; 58+ 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] 58+ 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; 58+ 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] 58+ 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; 58+ 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] 58+ 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; 58+ 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] 58+ 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; 58+ 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] 58+ 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; 58+ 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] 58+ 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; 58+ 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] 58+ 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; 58+ 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] 58+ messages in thread
* Re: [net-next 00/15][pull request] Intel Wired LAN Driver updates
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
0 siblings, 0 replies; 58+ messages in thread
From: David Miller @ 2012-02-13 23:48 UTC (permalink / raw)
To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Mon, 13 Feb 2012 13:47:35 -0800
> 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
Pulled, thanks.
^ permalink raw reply [flat|nested] 58+ messages in thread
end of thread, other threads:[~2014-05-31 0:53 UTC | newest]
Thread overview: 58+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-12-12 12:40 [net-next 00/15][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
2013-12-12 12:40 ` [net-next 01/15] i40e: fix null dereference Jeff Kirsher
2013-12-12 14:30 ` Sergei Shtylyov
2013-12-12 12:40 ` [net-next 02/15] i40e: fix up some of the ethtool connection reporting Jeff Kirsher
2013-12-12 12:40 ` [net-next 03/15] i40e: fix pf reset after offline test Jeff Kirsher
2013-12-12 12:40 ` [net-next 04/15] i40e: add netdev ops helper function Jeff Kirsher
2013-12-12 14:27 ` Sergei Shtylyov
2013-12-12 12:40 ` [net-next 05/15] i40e: Tell the stack about our actual number of queues Jeff Kirsher
2013-12-12 12:40 ` [net-next 06/15] i40e: init flow control settings to disabled Jeff Kirsher
2013-12-12 12:40 ` [net-next 07/15] i40e: trivial fixes Jeff Kirsher
2013-12-12 12:40 ` [net-next 08/15] i40e: use same number of queues as CPUs Jeff Kirsher
2013-12-12 12:40 ` [net-next 09/15] i40e: reinit flow for the main VSI Jeff Kirsher
2013-12-12 12:40 ` [net-next 10/15] i40e: function to reconfigure RSS queues and rebuild Jeff Kirsher
2013-12-12 12:40 ` [net-next 11/15] i40e: debugfs command to change RSS queue count Jeff Kirsher
2013-12-12 14:13 ` Sergei Shtylyov
2013-12-12 20:41 ` Ben Hutchings
2013-12-12 12:40 ` [net-next 12/15] i40e: Add basic support for get/set channels for RSS Jeff Kirsher
2013-12-12 12:40 ` [net-next 13/15] i40e: rtnl_lock in reset path fixes Jeff Kirsher
2013-12-12 12:40 ` [net-next 14/15] i40e: support for suspend and resume Jeff Kirsher
2013-12-12 12:40 ` [net-next 15/15] i40e: Remove FCoE in i40e_virtchnl_pf.c code Jeff Kirsher
-- strict thread matches above, loose matches on Subject: below --
2014-05-29 15:10 [net-next 00/15][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
2014-05-31 0:53 ` David Miller
2014-05-27 9:12 Jeff Kirsher
2014-05-28 16:42 ` 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-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).