* [net-next v2 00/14][pull request] Intel Wired LAN Driver Updates
@ 2013-04-25 4:08 Jeff Kirsher
2013-04-25 5:08 ` David Miller
0 siblings, 1 reply; 23+ messages in thread
From: Jeff Kirsher @ 2013-04-25 4:08 UTC (permalink / raw)
To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann
This series contains updates to ixgbe, igb and pci.
The ixgbe changes contains a fix to a possible divide by zero by bailing
out of the ixgbe_update_itr() function if the last interrupt timeslice is
zero. In addition, support is added for the new OCP x520 adapter as well
as LX support for 82599 devices. Jacob provides a patch to change
variable wol_supported to wol_enabled to better reflect what the code
is actually doing (i.e. checking if WoL is enabled).
Alex adds SRIOV helper function to pci that will determine if a PF
has any VFs that are currently assigned to a guest.
The remaining 8 patches are against igb and contain the following changes:
* implement SERDES loopback configuration for i210 devices by unsetting
sigdetect bit, so as to fix Ethtool loopback test failure
* add support for the SMBI semaphore for I210/I211 devices
* implement the new generic pci_vfs_assigned helper function (Alex's PCI
helper function)
* display warning when link speed is downgraded due to Smartspeed
* ensure that VLAN hardware filtering remains enabled when the device is
in promiscuous mode and VT mode simultaneously
* cleanup dead code in igb
* bump the driver version
v2: updated the PCI patch to add SRIOV helper function to remove extern
from the declaration of pci_vfs_assigned in pci.h and return 0 if
SR-IOV is disabled which is inline with other PCI SR-IOV functions
The following are changes since commit 01f27fc085574b301248d4da241e9d5ebd61e5c9:
Merge branch 'bnx2x'
and are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
Akeem G. Abodunrin (1):
igb: SERDES loopback sigdetect bit on i210 devices
Alexander Duyck (2):
pci: Add SRIOV helper function to determine if VFs are assigned to
guest
igb: Use pci_vfs_assigned instead of igb_vfs_are_assigned
Carolyn Wyborny (2):
igb: Remove id's that will not be productized for Linux.
igb: Bump version of driver
Don Skidmore (3):
ixgbe: fix possible divide by zero in ixgbe_update_itr
ixgbe: add driver support for x520 OCP adapter.
ixgbe: add SFP+ LX module support
Emil Tantilov (1):
ixgbe: add WOL support for new subdevice ID
Greg Rose (1):
igb: Retain HW VLAN filtering while in promiscuous + VT mode
Jacob Keller (1):
ixgbe: rename wol_supported to more fitting wol_enabled
Koki Sanagi (1):
igb: display a warning message when SmartSpeed works
Matthew Vick (2):
igb: Add SMBI semaphore to I210/I211
igb: Remove dead code path
drivers/net/ethernet/intel/igb/e1000_82575.c | 9 +-
drivers/net/ethernet/intel/igb/e1000_hw.h | 3 +-
drivers/net/ethernet/intel/igb/e1000_i210.c | 65 ++++++++-----
drivers/net/ethernet/intel/igb/igb_ethtool.c | 9 +-
drivers/net/ethernet/intel/igb/igb_main.c | 117 +++++++++++++++--------
drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c | 4 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c | 10 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 16 +++-
drivers/net/ethernet/intel/ixgbe/ixgbe_phy.c | 21 +++-
drivers/net/ethernet/intel/ixgbe/ixgbe_type.h | 6 +-
drivers/pci/iov.c | 41 ++++++++
include/linux/pci.h | 5 +
12 files changed, 212 insertions(+), 94 deletions(-)
--
1.7.11.7
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [net-next v2 00/14][pull request] Intel Wired LAN Driver Updates
2013-04-25 4:08 Jeff Kirsher
@ 2013-04-25 5:08 ` David Miller
0 siblings, 0 replies; 23+ messages in thread
From: David Miller @ 2013-04-25 5:08 UTC (permalink / raw)
To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Wed, 24 Apr 2013 21:08:33 -0700
> This series contains updates to ixgbe, igb and pci.
>
> The ixgbe changes contains a fix to a possible divide by zero by bailing
> out of the ixgbe_update_itr() function if the last interrupt timeslice is
> zero. In addition, support is added for the new OCP x520 adapter as well
> as LX support for 82599 devices. Jacob provides a patch to change
> variable wol_supported to wol_enabled to better reflect what the code
> is actually doing (i.e. checking if WoL is enabled).
>
> Alex adds SRIOV helper function to pci that will determine if a PF
> has any VFs that are currently assigned to a guest.
>
> The remaining 8 patches are against igb and contain the following changes:
> * implement SERDES loopback configuration for i210 devices by unsetting
> sigdetect bit, so as to fix Ethtool loopback test failure
> * add support for the SMBI semaphore for I210/I211 devices
> * implement the new generic pci_vfs_assigned helper function (Alex's PCI
> helper function)
> * display warning when link speed is downgraded due to Smartspeed
> * ensure that VLAN hardware filtering remains enabled when the device is
> in promiscuous mode and VT mode simultaneously
> * cleanup dead code in igb
> * bump the driver version
>
> v2: updated the PCI patch to add SRIOV helper function to remove extern
> from the declaration of pci_vfs_assigned in pci.h and return 0 if
> SR-IOV is disabled which is inline with other PCI SR-IOV functions
Pulled, thanks for getting the PCI review resolved.
^ permalink raw reply [flat|nested] 23+ messages in thread
* [net-next v2 00/14][pull request] Intel Wired LAN Driver Updates
@ 2013-10-22 14:22 Jeff Kirsher
2013-10-22 14:22 ` [net-next v2 01/14] i40e: do not flush after re-enabling interrupts Jeff Kirsher
` (14 more replies)
0 siblings, 15 replies; 23+ messages in thread
From: Jeff Kirsher @ 2013-10-22 14:22 UTC (permalink / raw)
To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann
This series contains updates to i40e only.
Jesse provides 6 patches against i40e. First is a patch to reduce
CPU utilization by reducing read-flush to read in the hot path. Next
couple of patches resolve coverity issues reported by Hannes Frederic
Sowa <hannes@stressinduktion.org>. Then Jesse refactored i40e to cleanup
functions which used cpu_to_xxx(foo) which caused a lot of line wrapping.
Mitch provides 2 i40e patches. First fixes a panic when tx_rings[0]
are not allocated, his second patch corrects a math error when
assigning MSI-X vectors to VFs. The vectors-per-vf value reported
by the hardware already conveniently reports one less than the actual
value.
Shannon provides 5 patches against i40e. His first patch corrects a
number of little bugs in the error handling of irq setup, most of
which ended up panicing the kernel. Next he fixes the overactive
IRQ issue seen in testing and allows the use of the legacy interrupt.
Shannon then provides a cleanup of the arguments declared at the
beginning of each function. Then he provides a patch to make sure
that there are really rings and queues before trying to dump
information in them. Lastly he simplifies the code by using an
already existing variable.
Catherine provides an i40e patch to bump the version.
v2:
- Remove unneeded parenthesis in patch 3 based on feedback from
Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
- Fix patch description for patch 11 based on feedback from
Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
The following are changes since commit bda301c9dc545f81bd70c1eecb8572bfc5eb524c:
Merge branch 'sit_tso'
and are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
Catherine Sullivan (1):
i40e: Bump version
Jesse Brandeburg (6):
i40e: do not flush after re-enabling interrupts
i40e: debugfs fixups
i40e: clamp debugfs nvm read command
i40e: fix use of untrusted scalar value warning
i40e: fix sign extension issue
i40e: refactor fdir setup function
Mitch Williams (2):
i40e: don't free nonexistent rings
i40e: assign correct vector to VF
Shannon Nelson (5):
i40e: fixup legacy interrupt handling
i40e: tweaking icr0 handling for legacy irq
i40e: reorder block declarations in debugfs
i40e: check vsi ptrs before dumping them
i40e: use pf_id for pf function id in qtx_ctl
drivers/net/ethernet/intel/i40e/i40e.h | 1 +
drivers/net/ethernet/intel/i40e/i40e_debugfs.c | 135 ++++++++++++---------
drivers/net/ethernet/intel/i40e/i40e_main.c | 50 ++++----
drivers/net/ethernet/intel/i40e/i40e_txrx.c | 83 ++++++-------
drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 4 +-
5 files changed, 146 insertions(+), 127 deletions(-)
--
1.8.3.1
^ permalink raw reply [flat|nested] 23+ messages in thread
* [net-next v2 01/14] i40e: do not flush after re-enabling interrupts
2013-10-22 14:22 [net-next v2 00/14][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
@ 2013-10-22 14:22 ` Jeff Kirsher
2013-10-22 14:22 ` [net-next v2 02/14] i40e: don't free nonexistent rings Jeff Kirsher
` (13 subsequent siblings)
14 siblings, 0 replies; 23+ messages in thread
From: Jeff Kirsher @ 2013-10-22 14:22 UTC (permalink / raw)
To: davem; +Cc: Jesse Brandeburg, netdev, gospo, sassmann, Jeff Kirsher
From: Jesse Brandeburg <jesse.brandeburg@intel.com>
Hot path doesn't need read-flush after interrupt enable, and this
flush really causes a lot of extra cpu utilization.
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 ++-
drivers/net/ethernet/intel/i40e/i40e_txrx.c | 2 --
2 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
index fbe7fe2..69ed801 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -2560,7 +2560,7 @@ void i40e_irq_dynamic_enable(struct i40e_vsi *vsi, int vector)
I40E_PFINT_DYN_CTLN_CLEARPBA_MASK |
(I40E_ITR_NONE << I40E_PFINT_DYN_CTLN_ITR_INDX_SHIFT);
wr32(hw, I40E_PFINT_DYN_CTLN(vector - 1), val);
- i40e_flush(hw);
+ /* skip the flush */
}
/**
@@ -2709,6 +2709,7 @@ static int i40e_vsi_enable_irq(struct i40e_vsi *vsi)
i40e_irq_dynamic_enable_icr0(pf);
}
+ i40e_flush(&pf->hw);
return 0;
}
diff --git a/drivers/net/ethernet/intel/i40e/i40e_txrx.c b/drivers/net/ethernet/intel/i40e/i40e_txrx.c
index dc89e72..fbc40cd 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_txrx.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_txrx.c
@@ -559,8 +559,6 @@ static void i40e_update_dynamic_itr(struct i40e_q_vector *q_vector)
i40e_set_new_dynamic_itr(&q_vector->tx);
if (old_itr != q_vector->tx.itr)
wr32(hw, reg_addr, q_vector->tx.itr);
-
- i40e_flush(hw);
}
/**
--
1.8.3.1
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [net-next v2 02/14] i40e: don't free nonexistent rings
2013-10-22 14:22 [net-next v2 00/14][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
2013-10-22 14:22 ` [net-next v2 01/14] i40e: do not flush after re-enabling interrupts Jeff Kirsher
@ 2013-10-22 14:22 ` Jeff Kirsher
2013-10-22 14:22 ` [net-next v2 03/14] i40e: assign correct vector to VF Jeff Kirsher
` (12 subsequent siblings)
14 siblings, 0 replies; 23+ messages in thread
From: Jeff Kirsher @ 2013-10-22 14:22 UTC (permalink / raw)
To: davem
Cc: Mitch Williams, netdev, gospo, sassmann, Jesse Brandeburg,
Jeff Kirsher
From: Mitch Williams <mitch.a.williams@intel.com>
Not all VSIs have rings! Check to see if rings were actually allocated before
freeing them.
This prevents a panic when tx_rings[0] is not allocated.
Signed-off-by: Mitch Williams <mitch.a.williams@intel.com>
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Tested-by: Sibai Li <sibai.li@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/i40e/i40e_main.c | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
index 69ed801..a8c18fa 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -5160,11 +5160,12 @@ static s32 i40e_vsi_clear_rings(struct i40e_vsi *vsi)
{
int i;
- for (i = 0; i < vsi->alloc_queue_pairs; i++) {
- kfree_rcu(vsi->tx_rings[i], rcu);
- vsi->tx_rings[i] = NULL;
- vsi->rx_rings[i] = NULL;
- }
+ if (vsi->tx_rings[0])
+ for (i = 0; i < vsi->alloc_queue_pairs; i++) {
+ kfree_rcu(vsi->tx_rings[i], rcu);
+ vsi->tx_rings[i] = NULL;
+ vsi->rx_rings[i] = NULL;
+ }
return 0;
}
--
1.8.3.1
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [net-next v2 03/14] i40e: assign correct vector to VF
2013-10-22 14:22 [net-next v2 00/14][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
2013-10-22 14:22 ` [net-next v2 01/14] i40e: do not flush after re-enabling interrupts Jeff Kirsher
2013-10-22 14:22 ` [net-next v2 02/14] i40e: don't free nonexistent rings Jeff Kirsher
@ 2013-10-22 14:22 ` Jeff Kirsher
2013-10-22 14:22 ` [net-next v2 04/14] i40e: fixup legacy interrupt handling Jeff Kirsher
` (11 subsequent siblings)
14 siblings, 0 replies; 23+ messages in thread
From: Jeff Kirsher @ 2013-10-22 14:22 UTC (permalink / raw)
To: davem
Cc: Mitch Williams, netdev, gospo, sassmann, sergei.shtylyov,
Jesse Brandeburg, Jeff Kirsher
From: Mitch Williams <mitch.a.williams@intel.com>
Correct math error when assigning MSI-X vectors to VFs. The vectors-per-vf
value reported by the hardware already conveniently reports one less than the
actual value.
Signed-off-by: Mitch Williams <mitch.a.williams@intel.com>
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Tested-by: Sibai Li <sibai.li@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
v2:
- Removed unnecessary parenthesis
---
drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c b/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
index 8967e58..35f4909 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
@@ -251,7 +251,7 @@ static void i40e_config_irq_link_list(struct i40e_vf *vf, u16 vsi_idx,
reg_idx = I40E_VPINT_LNKLST0(vf->vf_id);
else
reg_idx = I40E_VPINT_LNKLSTN(
- ((pf->hw.func_caps.num_msix_vectors_vf - 1)
+ (pf->hw.func_caps.num_msix_vectors_vf
* vf->vf_id) + (vector_id - 1));
if (vecmap->rxq_map == 0 && vecmap->txq_map == 0) {
--
1.8.3.1
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [net-next v2 04/14] i40e: fixup legacy interrupt handling
2013-10-22 14:22 [net-next v2 00/14][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (2 preceding siblings ...)
2013-10-22 14:22 ` [net-next v2 03/14] i40e: assign correct vector to VF Jeff Kirsher
@ 2013-10-22 14:22 ` Jeff Kirsher
2013-10-22 14:22 ` [net-next v2 05/14] i40e: debugfs fixups Jeff Kirsher
` (10 subsequent siblings)
14 siblings, 0 replies; 23+ messages in thread
From: Jeff Kirsher @ 2013-10-22 14:22 UTC (permalink / raw)
To: davem
Cc: Shannon Nelson, netdev, gospo, sassmann, Jesse Brandeburg,
Jeff Kirsher
From: Shannon Nelson <shannon.nelson@intel.com>
There were a number of little bugs in the error handling of irq setup, most of
which ended up panicing the kernel, and are addressed by this patch, along with
a couple formatting issues.
Legacy interrupts (including MSI) are used only in the case of failure to
allocate MSI-X interrupts.
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 | 18 ++++++++++++------
1 file changed, 12 insertions(+), 6 deletions(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
index a8c18fa..270190a 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -4615,7 +4615,8 @@ static void i40e_fdir_setup(struct i40e_pf *pf)
bool new_vsi = false;
int err, i;
- if (!(pf->flags & (I40E_FLAG_FDIR_ENABLED|I40E_FLAG_FDIR_ATR_ENABLED)))
+ if (!(pf->flags & (I40E_FLAG_FDIR_ENABLED |
+ I40E_FLAG_FDIR_ATR_ENABLED)))
return;
pf->atr_sample_rate = I40E_DEFAULT_ATR_SAMPLE_RATE;
@@ -5435,7 +5436,8 @@ static void i40e_init_interrupt_scheme(struct i40e_pf *pf)
if (pf->flags & I40E_FLAG_MSIX_ENABLED) {
err = i40e_init_msix(pf);
if (err) {
- pf->flags &= ~(I40E_FLAG_RSS_ENABLED |
+ pf->flags &= ~(I40E_FLAG_MSIX_ENABLED |
+ I40E_FLAG_RSS_ENABLED |
I40E_FLAG_MQ_ENABLED |
I40E_FLAG_DCB_ENABLED |
I40E_FLAG_SRIOV_ENABLED |
@@ -5450,14 +5452,17 @@ static void i40e_init_interrupt_scheme(struct i40e_pf *pf)
if (!(pf->flags & I40E_FLAG_MSIX_ENABLED) &&
(pf->flags & I40E_FLAG_MSI_ENABLED)) {
+ dev_info(&pf->pdev->dev, "MSIX not available, trying MSI\n");
err = pci_enable_msi(pf->pdev);
if (err) {
- dev_info(&pf->pdev->dev,
- "MSI init failed (%d), trying legacy.\n", err);
+ dev_info(&pf->pdev->dev, "MSI init failed - %d\n", err);
pf->flags &= ~I40E_FLAG_MSI_ENABLED;
}
}
+ if (!(pf->flags & (I40E_FLAG_MSIX_ENABLED | I40E_FLAG_MSI_ENABLED)))
+ dev_info(&pf->pdev->dev, "MSIX and MSI not available, falling back to Legacy IRQ\n");
+
/* track first vector for misc interrupts */
err = i40e_get_lump(pf, pf->irq_pile, 1, I40E_PILE_VALID_BIT-1);
}
@@ -6110,8 +6115,9 @@ static int i40e_vsi_setup_vectors(struct i40e_vsi *vsi)
goto vector_setup_out;
}
- vsi->base_vector = i40e_get_lump(pf, pf->irq_pile,
- vsi->num_q_vectors, vsi->idx);
+ if (vsi->num_q_vectors)
+ vsi->base_vector = i40e_get_lump(pf, pf->irq_pile,
+ vsi->num_q_vectors, vsi->idx);
if (vsi->base_vector < 0) {
dev_info(&pf->pdev->dev,
"failed to get q tracking for VSI %d, err=%d\n",
--
1.8.3.1
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [net-next v2 05/14] i40e: debugfs fixups
2013-10-22 14:22 [net-next v2 00/14][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (3 preceding siblings ...)
2013-10-22 14:22 ` [net-next v2 04/14] i40e: fixup legacy interrupt handling Jeff Kirsher
@ 2013-10-22 14:22 ` Jeff Kirsher
2013-10-22 14:22 ` [net-next v2 06/14] i40e: clamp debugfs nvm read command Jeff Kirsher
` (9 subsequent siblings)
14 siblings, 0 replies; 23+ messages in thread
From: Jeff Kirsher @ 2013-10-22 14:22 UTC (permalink / raw)
To: davem
Cc: Jesse Brandeburg, netdev, gospo, sassmann, Hannes Frederic Sowa,
Jeff Kirsher
From: Jesse Brandeburg <jesse.brandeburg@intel.com>
debugfs fixes for issues found by coverity.
This issue was identified by the coverity checker, reported by Hannes Frederic
Sowa.
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
CC: Hannes Frederic Sowa <hannes@stressinduktion.org>
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 | 38 ++++++++++++++++++--------
1 file changed, 26 insertions(+), 12 deletions(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_debugfs.c b/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
index 19e248f..304f39d 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
@@ -2019,21 +2019,35 @@ static const struct file_operations i40e_dbg_netdev_ops_fops = {
**/
void i40e_dbg_pf_init(struct i40e_pf *pf)
{
- struct dentry *pfile __attribute__((unused));
+ struct dentry *pfile;
const char *name = pci_name(pf->pdev);
+ const struct device *dev = &pf->pdev->dev;
pf->i40e_dbg_pf = debugfs_create_dir(name, i40e_dbg_root);
- if (pf->i40e_dbg_pf) {
- pfile = debugfs_create_file("command", 0600, pf->i40e_dbg_pf,
- pf, &i40e_dbg_command_fops);
- pfile = debugfs_create_file("dump", 0600, pf->i40e_dbg_pf, pf,
- &i40e_dbg_dump_fops);
- pfile = debugfs_create_file("netdev_ops", 0600, pf->i40e_dbg_pf,
- pf, &i40e_dbg_netdev_ops_fops);
- } else {
- dev_info(&pf->pdev->dev,
- "debugfs entry for %s failed\n", name);
- }
+ if (!pf->i40e_dbg_pf)
+ return;
+
+ pfile = debugfs_create_file("command", 0600, pf->i40e_dbg_pf, pf,
+ &i40e_dbg_command_fops);
+ if (!pfile)
+ goto create_failed;
+
+ pfile = debugfs_create_file("dump", 0600, pf->i40e_dbg_pf, pf,
+ &i40e_dbg_dump_fops);
+ if (!pfile)
+ goto create_failed;
+
+ pfile = debugfs_create_file("netdev_ops", 0600, pf->i40e_dbg_pf, pf,
+ &i40e_dbg_netdev_ops_fops);
+ if (!pfile)
+ goto create_failed;
+
+ return;
+
+create_failed:
+ dev_info(dev, "debugfs dir/file for %s failed\n", name);
+ debugfs_remove_recursive(pf->i40e_dbg_pf);
+ return;
}
/**
--
1.8.3.1
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [net-next v2 06/14] i40e: clamp debugfs nvm read command
2013-10-22 14:22 [net-next v2 00/14][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (4 preceding siblings ...)
2013-10-22 14:22 ` [net-next v2 05/14] i40e: debugfs fixups Jeff Kirsher
@ 2013-10-22 14:22 ` Jeff Kirsher
2013-10-22 14:22 ` [net-next v2 07/14] i40e: fix use of untrusted scalar value warning Jeff Kirsher
` (8 subsequent siblings)
14 siblings, 0 replies; 23+ messages in thread
From: Jeff Kirsher @ 2013-10-22 14:22 UTC (permalink / raw)
To: davem
Cc: Jesse Brandeburg, netdev, gospo, sassmann, Hannes Frederic Sowa,
Jeff Kirsher
From: Jesse Brandeburg <jesse.brandeburg@intel.com>
This issue was identified by the coverity checker where we were
not checking the upper limit on reads, reported by Hannes
Frederic Sowa.
Implement more specific limits on reads (min 1k, max 4k)
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
CC: Hannes Frederic Sowa <hannes@stressinduktion.org>
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 | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_debugfs.c b/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
index 304f39d..c80fcb4 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
@@ -1742,11 +1742,13 @@ static ssize_t i40e_dbg_command_write(struct file *filp,
goto command_write_done;
}
- /* Read at least 512 words */
- if (buffer_len == 0)
- buffer_len = 512;
+ /* set the max length */
+ buffer_len = min_t(u16, buffer_len, I40E_MAX_AQ_BUF_SIZE/2);
bytes = 2 * buffer_len;
+
+ /* read at least 1k bytes, no more than 4kB */
+ bytes = clamp(bytes, (u16)1024, (u16)I40E_MAX_AQ_BUF_SIZE);
buff = kzalloc(bytes, GFP_KERNEL);
if (!buff)
goto command_write_done;
--
1.8.3.1
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [net-next v2 07/14] i40e: fix use of untrusted scalar value warning
2013-10-22 14:22 [net-next v2 00/14][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (5 preceding siblings ...)
2013-10-22 14:22 ` [net-next v2 06/14] i40e: clamp debugfs nvm read command Jeff Kirsher
@ 2013-10-22 14:22 ` Jeff Kirsher
2013-10-22 14:22 ` [net-next v2 08/14] i40e: fix sign extension issue Jeff Kirsher
` (7 subsequent siblings)
14 siblings, 0 replies; 23+ messages in thread
From: Jeff Kirsher @ 2013-10-22 14:22 UTC (permalink / raw)
To: davem
Cc: Jesse Brandeburg, netdev, gospo, sassmann, Hannes Frederic Sowa,
Jeff Kirsher
From: Jesse Brandeburg <jesse.brandeburg@intel.com>
This is a fix for an issue reported by coverity, reported by
Hannes Frederic Sowa.
I'm unable to test if this patch actually fixes the coverity
reported issue, feedback is welcome.
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
CC: Hannes Frederic Sowa <hannes@stressinduktion.org>
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 | 34 ++++++++++++++------------
1 file changed, 18 insertions(+), 16 deletions(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_debugfs.c b/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
index c80fcb4..387bf94 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
@@ -151,9 +151,7 @@ static ssize_t i40e_dbg_dump_write(struct file *filp,
size_t count, loff_t *ppos)
{
struct i40e_pf *pf = filp->private_data;
- char dump_request_buf[16];
bool seid_found = false;
- int bytes_not_copied;
long seid = -1;
int buflen = 0;
int i, ret;
@@ -163,21 +161,12 @@ static ssize_t i40e_dbg_dump_write(struct file *filp,
/* don't allow partial writes */
if (*ppos != 0)
return 0;
- if (count >= sizeof(dump_request_buf))
- return -ENOSPC;
-
- bytes_not_copied = copy_from_user(dump_request_buf, buffer, count);
- if (bytes_not_copied < 0)
- return bytes_not_copied;
- if (bytes_not_copied > 0)
- count -= bytes_not_copied;
- dump_request_buf[count] = '\0';
/* decode the SEID given to be dumped */
- ret = kstrtol(dump_request_buf, 0, &seid);
- if (ret < 0) {
- dev_info(&pf->pdev->dev, "bad seid value '%s'\n",
- dump_request_buf);
+ ret = kstrtol_from_user(buffer, count, 0, &seid);
+
+ if (ret) {
+ dev_info(&pf->pdev->dev, "bad seid value\n");
} else if (seid == 0) {
seid_found = true;
@@ -1023,11 +1012,11 @@ static ssize_t i40e_dbg_command_write(struct file *filp,
size_t count, loff_t *ppos)
{
struct i40e_pf *pf = filp->private_data;
+ char *cmd_buf, *cmd_buf_tmp;
int bytes_not_copied;
struct i40e_vsi *vsi;
u8 *print_buf_start;
u8 *print_buf;
- char *cmd_buf;
int vsi_seid;
int veb_seid;
int cnt;
@@ -1046,6 +1035,12 @@ static ssize_t i40e_dbg_command_write(struct file *filp,
count -= bytes_not_copied;
cmd_buf[count] = '\0';
+ cmd_buf_tmp = strchr(cmd_buf, '\n');
+ if (cmd_buf_tmp) {
+ *cmd_buf_tmp = '\0';
+ count = cmd_buf_tmp - cmd_buf + 1;
+ }
+
print_buf_start = kzalloc(I40E_MAX_DEBUG_OUT_BUFFER, GFP_KERNEL);
if (!print_buf_start)
goto command_write_done;
@@ -1900,6 +1895,7 @@ static ssize_t i40e_dbg_netdev_ops_write(struct file *filp,
struct i40e_pf *pf = filp->private_data;
int bytes_not_copied;
struct i40e_vsi *vsi;
+ char *buf_tmp;
int vsi_seid;
int i, cnt;
@@ -1918,6 +1914,12 @@ static ssize_t i40e_dbg_netdev_ops_write(struct file *filp,
count -= bytes_not_copied;
i40e_dbg_netdev_ops_buf[count] = '\0';
+ buf_tmp = strchr(i40e_dbg_netdev_ops_buf, '\n');
+ if (buf_tmp) {
+ *buf_tmp = '\0';
+ count = buf_tmp - i40e_dbg_netdev_ops_buf + 1;
+ }
+
if (strncmp(i40e_dbg_netdev_ops_buf, "tx_timeout", 10) == 0) {
cnt = sscanf(&i40e_dbg_netdev_ops_buf[11], "%i", &vsi_seid);
if (cnt != 1) {
--
1.8.3.1
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [net-next v2 08/14] i40e: fix sign extension issue
2013-10-22 14:22 [net-next v2 00/14][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (6 preceding siblings ...)
2013-10-22 14:22 ` [net-next v2 07/14] i40e: fix use of untrusted scalar value warning Jeff Kirsher
@ 2013-10-22 14:22 ` Jeff Kirsher
2013-10-22 14:22 ` [net-next v2 09/14] i40e: refactor fdir setup function Jeff Kirsher
` (6 subsequent siblings)
14 siblings, 0 replies; 23+ messages in thread
From: Jeff Kirsher @ 2013-10-22 14:22 UTC (permalink / raw)
To: davem
Cc: Jesse Brandeburg, netdev, gospo, sassmann, Hannes Frederic Sowa,
Jeff Kirsher
From: Jesse Brandeburg <jesse.brandeburg@intel.com>
This is a fix for an issue reported by coverity, reported
by Hannes Frederic Sowa.
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
CC: Hannes Frederic Sowa <hannes@stressinduktion.org>
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_txrx.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_txrx.c b/drivers/net/ethernet/intel/i40e/i40e_txrx.c
index fbc40cd..8fc313c 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_txrx.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_txrx.c
@@ -99,9 +99,9 @@ int i40e_program_fdir_filter(struct i40e_fdir_data *fdir_data,
<< I40E_TXD_FLTR_QW0_DEST_VSI_SHIFT);
else
fdir_desc->qindex_flex_ptype_vsi |=
- cpu_to_le32((fdir_data->dest_vsi
- << I40E_TXD_FLTR_QW0_DEST_VSI_SHIFT)
- & I40E_TXD_FLTR_QW0_DEST_VSI_MASK);
+ cpu_to_le32((((u32)fdir_data->dest_vsi) <<
+ I40E_TXD_FLTR_QW0_DEST_VSI_SHIFT) &
+ I40E_TXD_FLTR_QW0_DEST_VSI_MASK);
fdir_desc->dtype_cmd_cntindex =
cpu_to_le32(I40E_TX_DESC_DTYPE_FILTER_PROG);
@@ -127,9 +127,9 @@ int i40e_program_fdir_filter(struct i40e_fdir_data *fdir_data,
fdir_desc->dtype_cmd_cntindex |=
cpu_to_le32(I40E_TXD_FLTR_QW1_CNT_ENA_MASK);
fdir_desc->dtype_cmd_cntindex |=
- cpu_to_le32((fdir_data->cnt_index
- << I40E_TXD_FLTR_QW1_CNTINDEX_SHIFT)
- & I40E_TXD_FLTR_QW1_CNTINDEX_MASK);
+ cpu_to_le32((((u32)fdir_data->cnt_index) <<
+ I40E_TXD_FLTR_QW1_CNTINDEX_SHIFT) &
+ I40E_TXD_FLTR_QW1_CNTINDEX_MASK);
}
fdir_desc->fd_id = cpu_to_le32(fdir_data->fd_id);
--
1.8.3.1
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [net-next v2 09/14] i40e: refactor fdir setup function
2013-10-22 14:22 [net-next v2 00/14][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (7 preceding siblings ...)
2013-10-22 14:22 ` [net-next v2 08/14] i40e: fix sign extension issue Jeff Kirsher
@ 2013-10-22 14:22 ` Jeff Kirsher
2013-10-22 14:22 ` [net-next v2 10/14] i40e: tweaking icr0 handling for legacy irq Jeff Kirsher
` (5 subsequent siblings)
14 siblings, 0 replies; 23+ messages in thread
From: Jeff Kirsher @ 2013-10-22 14:22 UTC (permalink / raw)
To: davem; +Cc: Jesse Brandeburg, netdev, gospo, sassmann, Jeff Kirsher
From: Jesse Brandeburg <jesse.brandeburg@intel.com>
This function did a lot of unnecessary cpu_to_xxx(foo) and making it
worse, each of these calls caused a lot of line wrapping.
Fix look and feel via a refactor of this function. No functional
changes.
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_txrx.c | 78 ++++++++++++-----------------
1 file changed, 33 insertions(+), 45 deletions(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_txrx.c b/drivers/net/ethernet/intel/i40e/i40e_txrx.c
index 8fc313c..41be7a7 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_txrx.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_txrx.c
@@ -37,6 +37,7 @@ static inline __le64 build_ctob(u32 td_cmd, u32 td_offset, unsigned int size,
((u64)td_tag << I40E_TXD_QW1_L2TAG1_SHIFT));
}
+#define I40E_TXD_CMD (I40E_TX_DESC_CMD_EOP | I40E_TX_DESC_CMD_RS)
/**
* i40e_program_fdir_filter - Program a Flow Director filter
* @fdir_input: Packet data that will be filter parameters
@@ -50,6 +51,7 @@ int i40e_program_fdir_filter(struct i40e_fdir_data *fdir_data,
struct i40e_tx_buffer *tx_buf;
struct i40e_tx_desc *tx_desc;
struct i40e_ring *tx_ring;
+ unsigned int fpt, dcc;
struct i40e_vsi *vsi;
struct device *dev;
dma_addr_t dma;
@@ -68,7 +70,7 @@ int i40e_program_fdir_filter(struct i40e_fdir_data *fdir_data,
dev = tx_ring->dev;
dma = dma_map_single(dev, fdir_data->raw_packet,
- I40E_FDIR_MAX_RAW_PACKET_LOOKUP, DMA_TO_DEVICE);
+ I40E_FDIR_MAX_RAW_PACKET_LOOKUP, DMA_TO_DEVICE);
if (dma_mapping_error(dev, dma))
goto dma_fail;
@@ -77,74 +79,61 @@ int i40e_program_fdir_filter(struct i40e_fdir_data *fdir_data,
fdir_desc = I40E_TX_FDIRDESC(tx_ring, i);
tx_buf = &tx_ring->tx_bi[i];
- i++;
- tx_ring->next_to_use = (i < tx_ring->count) ? i : 0;
+ tx_ring->next_to_use = (i + 1 < tx_ring->count) ? i + 1 : 0;
- fdir_desc->qindex_flex_ptype_vsi = cpu_to_le32((fdir_data->q_index
- << I40E_TXD_FLTR_QW0_QINDEX_SHIFT)
- & I40E_TXD_FLTR_QW0_QINDEX_MASK);
+ fpt = (fdir_data->q_index << I40E_TXD_FLTR_QW0_QINDEX_SHIFT) &
+ I40E_TXD_FLTR_QW0_QINDEX_MASK;
- fdir_desc->qindex_flex_ptype_vsi |= cpu_to_le32((fdir_data->flex_off
- << I40E_TXD_FLTR_QW0_FLEXOFF_SHIFT)
- & I40E_TXD_FLTR_QW0_FLEXOFF_MASK);
+ fpt |= (fdir_data->flex_off << I40E_TXD_FLTR_QW0_FLEXOFF_SHIFT) &
+ I40E_TXD_FLTR_QW0_FLEXOFF_MASK;
- fdir_desc->qindex_flex_ptype_vsi |= cpu_to_le32((fdir_data->pctype
- << I40E_TXD_FLTR_QW0_PCTYPE_SHIFT)
- & I40E_TXD_FLTR_QW0_PCTYPE_MASK);
+ fpt |= (fdir_data->pctype << I40E_TXD_FLTR_QW0_PCTYPE_SHIFT) &
+ I40E_TXD_FLTR_QW0_PCTYPE_MASK;
/* Use LAN VSI Id if not programmed by user */
if (fdir_data->dest_vsi == 0)
- fdir_desc->qindex_flex_ptype_vsi |=
- cpu_to_le32((pf->vsi[pf->lan_vsi]->id)
- << I40E_TXD_FLTR_QW0_DEST_VSI_SHIFT);
+ fpt |= (pf->vsi[pf->lan_vsi]->id) <<
+ I40E_TXD_FLTR_QW0_DEST_VSI_SHIFT;
else
- fdir_desc->qindex_flex_ptype_vsi |=
- cpu_to_le32((((u32)fdir_data->dest_vsi) <<
- I40E_TXD_FLTR_QW0_DEST_VSI_SHIFT) &
- I40E_TXD_FLTR_QW0_DEST_VSI_MASK);
+ fpt |= ((u32)fdir_data->dest_vsi <<
+ I40E_TXD_FLTR_QW0_DEST_VSI_SHIFT) &
+ I40E_TXD_FLTR_QW0_DEST_VSI_MASK;
+
+ fdir_desc->qindex_flex_ptype_vsi = cpu_to_le32(fpt);
- fdir_desc->dtype_cmd_cntindex =
- cpu_to_le32(I40E_TX_DESC_DTYPE_FILTER_PROG);
+ dcc = I40E_TX_DESC_DTYPE_FILTER_PROG;
if (add)
- fdir_desc->dtype_cmd_cntindex |= cpu_to_le32(
- I40E_FILTER_PROGRAM_DESC_PCMD_ADD_UPDATE
- << I40E_TXD_FLTR_QW1_PCMD_SHIFT);
+ dcc |= I40E_FILTER_PROGRAM_DESC_PCMD_ADD_UPDATE <<
+ I40E_TXD_FLTR_QW1_PCMD_SHIFT;
else
- fdir_desc->dtype_cmd_cntindex |= cpu_to_le32(
- I40E_FILTER_PROGRAM_DESC_PCMD_REMOVE
- << I40E_TXD_FLTR_QW1_PCMD_SHIFT);
+ dcc |= I40E_FILTER_PROGRAM_DESC_PCMD_REMOVE <<
+ I40E_TXD_FLTR_QW1_PCMD_SHIFT;
- fdir_desc->dtype_cmd_cntindex |= cpu_to_le32((fdir_data->dest_ctl
- << I40E_TXD_FLTR_QW1_DEST_SHIFT)
- & I40E_TXD_FLTR_QW1_DEST_MASK);
+ dcc |= (fdir_data->dest_ctl << I40E_TXD_FLTR_QW1_DEST_SHIFT) &
+ I40E_TXD_FLTR_QW1_DEST_MASK;
- fdir_desc->dtype_cmd_cntindex |= cpu_to_le32(
- (fdir_data->fd_status << I40E_TXD_FLTR_QW1_FD_STATUS_SHIFT)
- & I40E_TXD_FLTR_QW1_FD_STATUS_MASK);
+ dcc |= (fdir_data->fd_status << I40E_TXD_FLTR_QW1_FD_STATUS_SHIFT) &
+ I40E_TXD_FLTR_QW1_FD_STATUS_MASK;
if (fdir_data->cnt_index != 0) {
- fdir_desc->dtype_cmd_cntindex |=
- cpu_to_le32(I40E_TXD_FLTR_QW1_CNT_ENA_MASK);
- fdir_desc->dtype_cmd_cntindex |=
- cpu_to_le32((((u32)fdir_data->cnt_index) <<
- I40E_TXD_FLTR_QW1_CNTINDEX_SHIFT) &
- I40E_TXD_FLTR_QW1_CNTINDEX_MASK);
+ dcc |= I40E_TXD_FLTR_QW1_CNT_ENA_MASK;
+ dcc |= ((u32)fdir_data->cnt_index <<
+ I40E_TXD_FLTR_QW1_CNTINDEX_SHIFT) &
+ I40E_TXD_FLTR_QW1_CNTINDEX_MASK;
}
+ fdir_desc->dtype_cmd_cntindex = cpu_to_le32(dcc);
fdir_desc->fd_id = cpu_to_le32(fdir_data->fd_id);
/* Now program a dummy descriptor */
i = tx_ring->next_to_use;
tx_desc = I40E_TX_DESC(tx_ring, i);
- i++;
- tx_ring->next_to_use = (i < tx_ring->count) ? i : 0;
+ tx_ring->next_to_use = (i + 1 < tx_ring->count) ? i + 1 : 0;
tx_desc->buffer_addr = cpu_to_le64(dma);
- td_cmd = I40E_TX_DESC_CMD_EOP |
- I40E_TX_DESC_CMD_RS |
- I40E_TX_DESC_CMD_DUMMY;
+ td_cmd = I40E_TXD_CMD | I40E_TX_DESC_CMD_DUMMY;
tx_desc->cmd_type_offset_bsz =
build_ctob(td_cmd, 0, I40E_FDIR_MAX_RAW_PACKET_LOOKUP, 0);
@@ -1254,7 +1243,6 @@ static void i40e_atr(struct i40e_ring *tx_ring, struct sk_buff *skb,
fdir_desc->dtype_cmd_cntindex = cpu_to_le32(dtype_cmd);
}
-#define I40E_TXD_CMD (I40E_TX_DESC_CMD_EOP | I40E_TX_DESC_CMD_RS)
/**
* i40e_tx_prepare_vlan_flags - prepare generic TX VLAN tagging flags for HW
* @skb: send buffer
--
1.8.3.1
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [net-next v2 10/14] i40e: tweaking icr0 handling for legacy irq
2013-10-22 14:22 [net-next v2 00/14][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (8 preceding siblings ...)
2013-10-22 14:22 ` [net-next v2 09/14] i40e: refactor fdir setup function Jeff Kirsher
@ 2013-10-22 14:22 ` Jeff Kirsher
2013-10-22 14:22 ` [net-next v2 11/14] i40e: reorder block declarations in debugfs Jeff Kirsher
` (4 subsequent siblings)
14 siblings, 0 replies; 23+ messages in thread
From: Jeff Kirsher @ 2013-10-22 14:22 UTC (permalink / raw)
To: davem
Cc: Shannon Nelson, netdev, gospo, sassmann, Jesse Brandeburg,
Jeff Kirsher
From: Shannon Nelson <shannon.nelson@intel.com>
Fix the overactive irq issue seen in testing and allow use of
the legacy interrupt.
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 | 12 +++++-------
drivers/net/ethernet/intel/i40e/i40e_txrx.c | 3 ++-
3 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e.h b/drivers/net/ethernet/intel/i40e/i40e.h
index c06a76c..49572dc 100644
--- a/drivers/net/ethernet/intel/i40e/i40e.h
+++ b/drivers/net/ethernet/intel/i40e/i40e.h
@@ -545,6 +545,7 @@ static inline void i40e_dbg_init(void) {}
static inline void i40e_dbg_exit(void) {}
#endif /* CONFIG_DEBUG_FS*/
void i40e_irq_dynamic_enable(struct i40e_vsi *vsi, int vector);
+void i40e_irq_dynamic_enable_icr0(struct i40e_pf *pf);
int i40e_ioctl(struct net_device *netdev, struct ifreq *ifr, int cmd);
void i40e_vlan_stripping_disable(struct i40e_vsi *vsi);
int i40e_vsi_add_vlan(struct i40e_vsi *vsi, s16 vid);
diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
index 270190a..727d14d 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -2532,7 +2532,7 @@ static void i40e_configure_msi_and_legacy(struct i40e_vsi *vsi)
* i40e_irq_dynamic_enable_icr0 - Enable default interrupt generation for icr0
* @pf: board private structure
**/
-static void i40e_irq_dynamic_enable_icr0(struct i40e_pf *pf)
+void i40e_irq_dynamic_enable_icr0(struct i40e_pf *pf)
{
struct i40e_hw *hw = &pf->hw;
u32 val;
@@ -2742,14 +2742,14 @@ static irqreturn_t i40e_intr(int irq, void *data)
icr0 = rd32(hw, I40E_PFINT_ICR0);
- /* if sharing a legacy IRQ, we might get called w/o an intr pending */
- if ((icr0 & I40E_PFINT_ICR0_INTEVENT_MASK) == 0)
- return IRQ_NONE;
-
val = rd32(hw, I40E_PFINT_DYN_CTL0);
val = val | I40E_PFINT_DYN_CTL0_CLEARPBA_MASK;
wr32(hw, I40E_PFINT_DYN_CTL0, val);
+ /* if sharing a legacy IRQ, we might get called w/o an intr pending */
+ if ((icr0 & I40E_PFINT_ICR0_INTEVENT_MASK) == 0)
+ return IRQ_NONE;
+
ena_mask = rd32(hw, I40E_PFINT_ICR0_ENA);
/* only q0 is used in MSI/Legacy mode, and none are used in MSIX */
@@ -2763,7 +2763,6 @@ static irqreturn_t i40e_intr(int irq, void *data)
qval = rd32(hw, I40E_QINT_TQCTL(0));
qval &= ~I40E_QINT_TQCTL_CAUSE_ENA_MASK;
wr32(hw, I40E_QINT_TQCTL(0), qval);
- i40e_flush(hw);
if (!test_bit(__I40E_DOWN, &pf->state))
napi_schedule(&pf->vsi[pf->lan_vsi]->q_vectors[0]->napi);
@@ -2825,7 +2824,6 @@ static irqreturn_t i40e_intr(int irq, void *data)
/* re-enable interrupt causes */
wr32(hw, I40E_PFINT_ICR0_ENA, ena_mask);
- i40e_flush(hw);
if (!test_bit(__I40E_DOWN, &pf->state)) {
i40e_service_event_schedule(pf);
i40e_irq_dynamic_enable_icr0(pf);
diff --git a/drivers/net/ethernet/intel/i40e/i40e_txrx.c b/drivers/net/ethernet/intel/i40e/i40e_txrx.c
index 41be7a7..f1f03bc 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_txrx.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_txrx.c
@@ -1142,7 +1142,8 @@ int i40e_napi_poll(struct napi_struct *napi, int budget)
qval = rd32(hw, I40E_QINT_TQCTL(0));
qval |= I40E_QINT_TQCTL_CAUSE_ENA_MASK;
wr32(hw, I40E_QINT_TQCTL(0), qval);
- i40e_flush(hw);
+
+ i40e_irq_dynamic_enable_icr0(vsi->back);
}
}
--
1.8.3.1
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [net-next v2 11/14] i40e: reorder block declarations in debugfs
2013-10-22 14:22 [net-next v2 00/14][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (9 preceding siblings ...)
2013-10-22 14:22 ` [net-next v2 10/14] i40e: tweaking icr0 handling for legacy irq Jeff Kirsher
@ 2013-10-22 14:22 ` Jeff Kirsher
2013-10-22 14:22 ` [net-next v2 12/14] i40e: check vsi ptrs before dumping them Jeff Kirsher
` (3 subsequent siblings)
14 siblings, 0 replies; 23+ messages in thread
From: Jeff Kirsher @ 2013-10-22 14:22 UTC (permalink / raw)
To: davem
Cc: Shannon Nelson, netdev, gospo, sassmann, sergei.shtylyov,
Jesse Brandeburg, Jeff Kirsher
From: Shannon Nelson <shannon.nelson@intel.com>
This is a cleanup of the local variables declared at the beginning
of each function.
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>
---
v2:
- Fixed patch description based on feedback from Sergei Shtylyov
---
drivers/net/ethernet/intel/i40e/i40e_debugfs.c | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_debugfs.c b/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
index 387bf94..246b177 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
@@ -1147,9 +1147,9 @@ static ssize_t i40e_dbg_command_write(struct file *filp,
i40e_veb_release(pf->veb[i]);
} else if (strncmp(cmd_buf, "add macaddr", 11) == 0) {
- u8 ma[6];
- int vlan = 0;
struct i40e_mac_filter *f;
+ int vlan = 0;
+ u8 ma[6];
int ret;
cnt = sscanf(&cmd_buf[11],
@@ -1185,8 +1185,8 @@ static ssize_t i40e_dbg_command_write(struct file *filp,
ma, vlan, vsi_seid, f, ret);
} else if (strncmp(cmd_buf, "del macaddr", 11) == 0) {
- u8 ma[6];
int vlan = 0;
+ u8 ma[6];
int ret;
cnt = sscanf(&cmd_buf[11],
@@ -1222,9 +1222,9 @@ static ssize_t i40e_dbg_command_write(struct file *filp,
ma, vlan, vsi_seid, ret);
} else if (strncmp(cmd_buf, "add pvid", 8) == 0) {
- int v;
- u16 vid;
i40e_status ret;
+ u16 vid;
+ int v;
cnt = sscanf(&cmd_buf[8], "%i %u", &vsi_seid, &v);
if (cnt != 2) {
@@ -1535,10 +1535,10 @@ static ssize_t i40e_dbg_command_write(struct file *filp,
} else if ((strncmp(cmd_buf, "add fd_filter", 13) == 0) ||
(strncmp(cmd_buf, "rem fd_filter", 13) == 0)) {
struct i40e_fdir_data fd_data;
- int ret;
u16 packet_len, i, j = 0;
char *asc_packet;
bool add = false;
+ int ret;
asc_packet = kzalloc(I40E_FDIR_MAX_RAW_PACKET_LOOKUP,
GFP_KERNEL);
@@ -1626,9 +1626,9 @@ static ssize_t i40e_dbg_command_write(struct file *filp,
}
} else if (strncmp(&cmd_buf[5],
"get local", 9) == 0) {
+ u16 llen, rlen;
int ret, i;
u8 *buff;
- u16 llen, rlen;
buff = kzalloc(I40E_LLDPDU_SIZE, GFP_KERNEL);
if (!buff)
goto command_write_done;
@@ -1659,9 +1659,9 @@ static ssize_t i40e_dbg_command_write(struct file *filp,
kfree(buff);
buff = NULL;
} else if (strncmp(&cmd_buf[5], "get remote", 10) == 0) {
+ u16 llen, rlen;
int ret, i;
u8 *buff;
- u16 llen, rlen;
buff = kzalloc(I40E_LLDPDU_SIZE, GFP_KERNEL);
if (!buff)
goto command_write_done;
--
1.8.3.1
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [net-next v2 12/14] i40e: check vsi ptrs before dumping them
2013-10-22 14:22 [net-next v2 00/14][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (10 preceding siblings ...)
2013-10-22 14:22 ` [net-next v2 11/14] i40e: reorder block declarations in debugfs Jeff Kirsher
@ 2013-10-22 14:22 ` Jeff Kirsher
2013-10-22 14:22 ` [net-next v2 13/14] i40e: use pf_id for pf function id in qtx_ctl Jeff Kirsher
` (2 subsequent siblings)
14 siblings, 0 replies; 23+ messages in thread
From: Jeff Kirsher @ 2013-10-22 14:22 UTC (permalink / raw)
To: davem
Cc: Shannon Nelson, netdev, gospo, sassmann, Jesse Brandeburg,
Jeff Kirsher
From: Shannon Nelson <shannon.nelson@intel.com>
Make sure there really are rings and queues before trying to dump
information in them.
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_debugfs.c | 39 +++++++++++++++-----------
1 file changed, 23 insertions(+), 16 deletions(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_debugfs.c b/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
index 246b177..ef4cb1c 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
@@ -234,26 +234,33 @@ static ssize_t i40e_dbg_dump_write(struct file *filp,
memcpy(p, vsi, len);
p += len;
- len = (sizeof(struct i40e_q_vector)
- * vsi->num_q_vectors);
- memcpy(p, vsi->q_vectors, len);
- p += len;
-
- len = (sizeof(struct i40e_ring) * vsi->num_queue_pairs);
- memcpy(p, vsi->tx_rings, len);
- p += len;
- memcpy(p, vsi->rx_rings, len);
- p += len;
+ if (vsi->num_q_vectors) {
+ len = (sizeof(struct i40e_q_vector)
+ * vsi->num_q_vectors);
+ memcpy(p, vsi->q_vectors, len);
+ p += len;
+ }
- for (i = 0; i < vsi->num_queue_pairs; i++) {
- len = sizeof(struct i40e_tx_buffer);
- memcpy(p, vsi->tx_rings[i]->tx_bi, len);
+ if (vsi->num_queue_pairs) {
+ len = (sizeof(struct i40e_ring) *
+ vsi->num_queue_pairs);
+ memcpy(p, vsi->tx_rings, len);
+ p += len;
+ memcpy(p, vsi->rx_rings, len);
p += len;
}
- for (i = 0; i < vsi->num_queue_pairs; i++) {
+
+ if (vsi->tx_rings[0]) {
+ len = sizeof(struct i40e_tx_buffer);
+ for (i = 0; i < vsi->num_queue_pairs; i++) {
+ memcpy(p, vsi->tx_rings[i]->tx_bi, len);
+ p += len;
+ }
len = sizeof(struct i40e_rx_buffer);
- memcpy(p, vsi->rx_rings[i]->rx_bi, len);
- p += len;
+ for (i = 0; i < vsi->num_queue_pairs; i++) {
+ memcpy(p, vsi->rx_rings[i]->rx_bi, len);
+ p += len;
+ }
}
/* macvlan filter list */
--
1.8.3.1
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [net-next v2 13/14] i40e: use pf_id for pf function id in qtx_ctl
2013-10-22 14:22 [net-next v2 00/14][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (11 preceding siblings ...)
2013-10-22 14:22 ` [net-next v2 12/14] i40e: check vsi ptrs before dumping them Jeff Kirsher
@ 2013-10-22 14:22 ` Jeff Kirsher
2013-10-22 14:22 ` [net-next v2 14/14] i40e: Bump version Jeff Kirsher
2013-10-22 19:53 ` [net-next v2 00/14][pull request] Intel Wired LAN Driver Updates David Miller
14 siblings, 0 replies; 23+ messages in thread
From: Jeff Kirsher @ 2013-10-22 14:22 UTC (permalink / raw)
To: davem
Cc: Shannon Nelson, netdev, gospo, sassmann, Jesse Brandeburg,
Jeff Kirsher
From: Shannon Nelson <shannon.nelson@intel.com>
Simplify code by using an already existing variable.
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_main.c | 4 ++--
drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
index 727d14d..d889342 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -2174,8 +2174,8 @@ static int i40e_configure_tx_ring(struct i40e_ring *ring)
/* Now associate this queue with this PCI function */
qtx_ctl = I40E_QTX_CTL_PF_QUEUE;
- qtx_ctl |= ((hw->hmc.hmc_fn_id << I40E_QTX_CTL_PF_INDX_SHIFT)
- & I40E_QTX_CTL_PF_INDX_MASK);
+ qtx_ctl |= ((hw->pf_id << I40E_QTX_CTL_PF_INDX_SHIFT) &
+ I40E_QTX_CTL_PF_INDX_MASK);
wr32(hw, I40E_QTX_CTL(pf_q), qtx_ctl);
i40e_flush(hw);
diff --git a/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c b/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
index 35f4909..0759698 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
@@ -383,7 +383,7 @@ static int i40e_config_vsi_tx_queue(struct i40e_vf *vf, u16 vsi_idx,
/* associate this queue with the PCI VF function */
qtx_ctl = I40E_QTX_CTL_VF_QUEUE;
- qtx_ctl |= ((hw->hmc.hmc_fn_id << I40E_QTX_CTL_PF_INDX_SHIFT)
+ qtx_ctl |= ((hw->pf_id << I40E_QTX_CTL_PF_INDX_SHIFT)
& I40E_QTX_CTL_PF_INDX_MASK);
qtx_ctl |= (((vf->vf_id + hw->func_caps.vf_base_id)
<< I40E_QTX_CTL_VFVM_INDX_SHIFT)
--
1.8.3.1
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [net-next v2 14/14] i40e: Bump version
2013-10-22 14:22 [net-next v2 00/14][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (12 preceding siblings ...)
2013-10-22 14:22 ` [net-next v2 13/14] i40e: use pf_id for pf function id in qtx_ctl Jeff Kirsher
@ 2013-10-22 14:22 ` Jeff Kirsher
2013-10-22 19:53 ` [net-next v2 00/14][pull request] Intel Wired LAN Driver Updates David Miller
14 siblings, 0 replies; 23+ messages in thread
From: Jeff Kirsher @ 2013-10-22 14:22 UTC (permalink / raw)
To: davem
Cc: Catherine Sullivan, netdev, gospo, sassmann, Jesse Brandeburg,
Jeff Kirsher
From: Catherine Sullivan <catherine.sullivan@intel.com>
Update the driver version.
Signed-off-by: Catherine Sullivan <catherine.sullivan@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 | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
index d889342..41a79df 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -36,7 +36,7 @@ static const char i40e_driver_string[] =
#define DRV_VERSION_MAJOR 0
#define DRV_VERSION_MINOR 3
-#define DRV_VERSION_BUILD 10
+#define DRV_VERSION_BUILD 11
#define DRV_VERSION __stringify(DRV_VERSION_MAJOR) "." \
__stringify(DRV_VERSION_MINOR) "." \
__stringify(DRV_VERSION_BUILD) DRV_KERN
--
1.8.3.1
^ permalink raw reply related [flat|nested] 23+ messages in thread
* Re: [net-next v2 00/14][pull request] Intel Wired LAN Driver Updates
2013-10-22 14:22 [net-next v2 00/14][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (13 preceding siblings ...)
2013-10-22 14:22 ` [net-next v2 14/14] i40e: Bump version Jeff Kirsher
@ 2013-10-22 19:53 ` David Miller
2013-10-22 20:00 ` Jeff Kirsher
14 siblings, 1 reply; 23+ messages in thread
From: David Miller @ 2013-10-22 19:53 UTC (permalink / raw)
To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Tue, 22 Oct 2013 07:22:23 -0700
> This series contains updates to i40e only.
>
> Jesse provides 6 patches against i40e. First is a patch to reduce
> CPU utilization by reducing read-flush to read in the hot path. Next
> couple of patches resolve coverity issues reported by Hannes Frederic
> Sowa <hannes@stressinduktion.org>. Then Jesse refactored i40e to cleanup
> functions which used cpu_to_xxx(foo) which caused a lot of line wrapping.
>
> Mitch provides 2 i40e patches. First fixes a panic when tx_rings[0]
> are not allocated, his second patch corrects a math error when
> assigning MSI-X vectors to VFs. The vectors-per-vf value reported
> by the hardware already conveniently reports one less than the actual
> value.
>
> Shannon provides 5 patches against i40e. His first patch corrects a
> number of little bugs in the error handling of irq setup, most of
> which ended up panicing the kernel. Next he fixes the overactive
> IRQ issue seen in testing and allows the use of the legacy interrupt.
> Shannon then provides a cleanup of the arguments declared at the
> beginning of each function. Then he provides a patch to make sure
> that there are really rings and queues before trying to dump
> information in them. Lastly he simplifies the code by using an
> already existing variable.
>
> Catherine provides an i40e patch to bump the version.
Pulled, thanks Jeff.
Just a note for the future, and I decided not to push back this time when
I saw it in this series. When you have a construct like:
if (x)
for( ... ) {
}
Put the top-level condition in braces too as it's much easier to read
and audit:
if (x) {
for ( ... ) {
}
}
Thanks.
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [net-next v2 00/14][pull request] Intel Wired LAN Driver Updates
2013-10-22 19:53 ` [net-next v2 00/14][pull request] Intel Wired LAN Driver Updates David Miller
@ 2013-10-22 20:00 ` Jeff Kirsher
0 siblings, 0 replies; 23+ messages in thread
From: Jeff Kirsher @ 2013-10-22 20:00 UTC (permalink / raw)
To: David Miller; +Cc: netdev, gospo, sassmann
[-- Attachment #1: Type: text/plain, Size: 2010 bytes --]
On Tue, 2013-10-22 at 15:53 -0400, David Miller wrote:
> From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
> Date: Tue, 22 Oct 2013 07:22:23 -0700
>
> > This series contains updates to i40e only.
> >
> > Jesse provides 6 patches against i40e. First is a patch to reduce
> > CPU utilization by reducing read-flush to read in the hot path. Next
> > couple of patches resolve coverity issues reported by Hannes Frederic
> > Sowa <hannes@stressinduktion.org>. Then Jesse refactored i40e to cleanup
> > functions which used cpu_to_xxx(foo) which caused a lot of line wrapping.
> >
> > Mitch provides 2 i40e patches. First fixes a panic when tx_rings[0]
> > are not allocated, his second patch corrects a math error when
> > assigning MSI-X vectors to VFs. The vectors-per-vf value reported
> > by the hardware already conveniently reports one less than the actual
> > value.
> >
> > Shannon provides 5 patches against i40e. His first patch corrects a
> > number of little bugs in the error handling of irq setup, most of
> > which ended up panicing the kernel. Next he fixes the overactive
> > IRQ issue seen in testing and allows the use of the legacy interrupt.
> > Shannon then provides a cleanup of the arguments declared at the
> > beginning of each function. Then he provides a patch to make sure
> > that there are really rings and queues before trying to dump
> > information in them. Lastly he simplifies the code by using an
> > already existing variable.
> >
> > Catherine provides an i40e patch to bump the version.
>
> Pulled, thanks Jeff.
>
> Just a note for the future, and I decided not to push back this time when
> I saw it in this series. When you have a construct like:
>
> if (x)
> for( ... ) {
> }
>
> Put the top-level condition in braces too as it's much easier to read
> and audit:
>
> if (x) {
> for ( ... ) {
> }
> }
>
> Thanks.
I agree, I will add that to my list of checks for the future. Thanks
Dave.
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 23+ messages in thread
* [net-next v2 00/14][pull request] Intel Wired LAN Driver Updates
@ 2014-03-14 23:34 Jeff Kirsher
2014-03-15 2:19 ` David Miller
0 siblings, 1 reply; 23+ messages in thread
From: Jeff Kirsher @ 2014-03-14 23:34 UTC (permalink / raw)
To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann
This series contains updates to igb, i40e and i40evf.
I provide a code comment fix which David Miller noticed in the last
series of patches I submitted.
Shannon provides a patch to cleanup the NAPI structs when deleting the
netdev.
Anjali provides several patches for i40e, first fixes a bug in the update
filter logic which was causing a kernel panic. Then provides a fix to
rename an error bit to correctly indicate the error. Adds a definition
for a new state variable to keep track of features automatically disabled
due to hardware resource limitations versus user enforced feature disabled.
Anjali provides a patch to add code to handle when there is a filter
programming error due to a full table, which also resolves a previous
compile warning about an unused "*pf" variable introduced in the last i40e
series patch submission.
Jesse provides three i40e patches to cleanup strings to make more
consistent and to align with other Intel drivers.
Akeem cleans up a misleading function header comment for i40e.
Mitch provides a fix for i40e/i40evf to use the correctly reported number
of MSI-X vectors in the PF an VF. Then provides a patch to use
dma_set_mask_and_coherent() which was introduced in v3.13 and simplifies
the DMA mapping code a bit.
v2:
- dropped the 2 ixgbe patches from Emil based on feedback from David Miller,
where the 2 fixes should be handled in the net core to fix all drivers
The following are changes since commit 177943260a6088bec51fc6c04643d84e43bef423:
6lowpan: reassembly: un-export local functions
and are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
Akeem G Abodunrin (1):
i40e: Fix function comments
Anjali Singhai Jain (6):
i40e: Fix a bug in the update logic for FDIR SB filter.
i40e/i40evf: Some flow director HW definition fixes
i40e: Define a new state variable to keep track of feature auto
disable
i40e: Add code to handle FD table full condition
i40e: Bug fix for FDIR replay logic
i40e: Let MDD events be handled by MDD handler
Jeff Kirsher (1):
igb: Fix code comment
Jesse Brandeburg (3):
i40e: make string references to q be queue
i40e: cleanup strings
i40e: simplified init string
Mitch Williams (2):
i40e/i40evf: Use correct number of VF vectors
i40e/i40evf: Use dma_set_mask_and_coherent
Shannon Nelson (1):
i40e: delete netdev after deleting napi and vectors
drivers/net/ethernet/intel/i40e/i40e.h | 10 +-
drivers/net/ethernet/intel/i40e/i40e_debugfs.c | 25 ++-
drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 37 +++-
drivers/net/ethernet/intel/i40e/i40e_main.c | 190 +++++++++++++++------
drivers/net/ethernet/intel/i40e/i40e_txrx.c | 60 ++++++-
drivers/net/ethernet/intel/i40e/i40e_type.h | 6 +-
drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 9 +-
drivers/net/ethernet/intel/i40evf/i40e_type.h | 6 +-
drivers/net/ethernet/intel/i40evf/i40evf_main.c | 19 +--
drivers/net/ethernet/intel/igb/igb_main.c | 2 +-
10 files changed, 269 insertions(+), 95 deletions(-)
--
1.8.3.1
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [net-next v2 00/14][pull request] Intel Wired LAN Driver Updates
2014-03-14 23:34 Jeff Kirsher
@ 2014-03-15 2:19 ` David Miller
0 siblings, 0 replies; 23+ messages in thread
From: David Miller @ 2014-03-15 2:19 UTC (permalink / raw)
To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Fri, 14 Mar 2014 16:34:21 -0700
> This series contains updates to igb, i40e and i40evf.
>
> I provide a code comment fix which David Miller noticed in the last
> series of patches I submitted.
>
> Shannon provides a patch to cleanup the NAPI structs when deleting the
> netdev.
>
> Anjali provides several patches for i40e, first fixes a bug in the update
> filter logic which was causing a kernel panic. Then provides a fix to
> rename an error bit to correctly indicate the error. Adds a definition
> for a new state variable to keep track of features automatically disabled
> due to hardware resource limitations versus user enforced feature disabled.
> Anjali provides a patch to add code to handle when there is a filter
> programming error due to a full table, which also resolves a previous
> compile warning about an unused "*pf" variable introduced in the last i40e
> series patch submission.
>
> Jesse provides three i40e patches to cleanup strings to make more
> consistent and to align with other Intel drivers.
>
> Akeem cleans up a misleading function header comment for i40e.
>
> Mitch provides a fix for i40e/i40evf to use the correctly reported number
> of MSI-X vectors in the PF an VF. Then provides a patch to use
> dma_set_mask_and_coherent() which was introduced in v3.13 and simplifies
> the DMA mapping code a bit.
>
> v2:
> - dropped the 2 ixgbe patches from Emil based on feedback from David Miller,
> where the 2 fixes should be handled in the net core to fix all drivers
Pulled, thanks Jeff.
^ permalink raw reply [flat|nested] 23+ messages in thread
* [net-next v2 00/14][pull request] Intel Wired LAN Driver Updates
@ 2014-03-28 14:08 Jeff Kirsher
2014-03-28 18:45 ` David Miller
0 siblings, 1 reply; 23+ messages in thread
From: Jeff Kirsher @ 2014-03-28 14:08 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.
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.
v2:
- drop patch 11 "i40e: Add a fallback debug flow for the driver" from the
series based on feedback from David Miller
The following are changes since commit e1250037de22b99694ebfd37b867a3f591b0dc39:
Merge branch 'mdio_reset-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 (5):
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
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 | 1 +
drivers/net/ethernet/intel/i40e/i40e_debugfs.c | 35 +++++++-----
drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 39 +++++++-------
drivers/net/ethernet/intel/i40e/i40e_main.c | 62 +++++++++++++++++-----
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, 131 insertions(+), 61 deletions(-)
--
1.9.0
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [net-next v2 00/14][pull request] Intel Wired LAN Driver Updates
2014-03-28 14:08 Jeff Kirsher
@ 2014-03-28 18:45 ` David Miller
0 siblings, 0 replies; 23+ messages in thread
From: David Miller @ 2014-03-28 18:45 UTC (permalink / raw)
To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Fri, 28 Mar 2014 07:08:01 -0700
> This series contains updates to e1000e, igb, i40e and i40evf
Pulled, thanks a lot Jeff.
^ permalink raw reply [flat|nested] 23+ messages in thread
end of thread, other threads:[~2014-03-28 18:45 UTC | newest]
Thread overview: 23+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-10-22 14:22 [net-next v2 00/14][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
2013-10-22 14:22 ` [net-next v2 01/14] i40e: do not flush after re-enabling interrupts Jeff Kirsher
2013-10-22 14:22 ` [net-next v2 02/14] i40e: don't free nonexistent rings Jeff Kirsher
2013-10-22 14:22 ` [net-next v2 03/14] i40e: assign correct vector to VF Jeff Kirsher
2013-10-22 14:22 ` [net-next v2 04/14] i40e: fixup legacy interrupt handling Jeff Kirsher
2013-10-22 14:22 ` [net-next v2 05/14] i40e: debugfs fixups Jeff Kirsher
2013-10-22 14:22 ` [net-next v2 06/14] i40e: clamp debugfs nvm read command Jeff Kirsher
2013-10-22 14:22 ` [net-next v2 07/14] i40e: fix use of untrusted scalar value warning Jeff Kirsher
2013-10-22 14:22 ` [net-next v2 08/14] i40e: fix sign extension issue Jeff Kirsher
2013-10-22 14:22 ` [net-next v2 09/14] i40e: refactor fdir setup function Jeff Kirsher
2013-10-22 14:22 ` [net-next v2 10/14] i40e: tweaking icr0 handling for legacy irq Jeff Kirsher
2013-10-22 14:22 ` [net-next v2 11/14] i40e: reorder block declarations in debugfs Jeff Kirsher
2013-10-22 14:22 ` [net-next v2 12/14] i40e: check vsi ptrs before dumping them Jeff Kirsher
2013-10-22 14:22 ` [net-next v2 13/14] i40e: use pf_id for pf function id in qtx_ctl Jeff Kirsher
2013-10-22 14:22 ` [net-next v2 14/14] i40e: Bump version Jeff Kirsher
2013-10-22 19:53 ` [net-next v2 00/14][pull request] Intel Wired LAN Driver Updates David Miller
2013-10-22 20:00 ` Jeff Kirsher
-- strict thread matches above, loose matches on Subject: below --
2014-03-28 14:08 Jeff Kirsher
2014-03-28 18:45 ` David Miller
2014-03-14 23:34 Jeff Kirsher
2014-03-15 2:19 ` David Miller
2013-04-25 4:08 Jeff Kirsher
2013-04-25 5:08 ` 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).