* [net-next 00/14][pull request] Intel Wired LAN Driver Updates
@ 2012-03-13 4:03 Jeff Kirsher
2012-03-13 5:55 ` David Miller
0 siblings, 1 reply; 34+ messages in thread
From: Jeff Kirsher @ 2012-03-13 4:03 UTC (permalink / raw)
To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann
This series of patches contains fixes/cleanups igb, ixgbe and net.
Majority of the patches are against ixgbe and this series is part
one of three to update ixgbe.
The following are changes since commit f124488e4713dc9afa2028553261b1d399286e68:
bnx2x: code doesn't use stats for allocating Rx BDs
and are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
Alexander Duyck (12):
ixgbe: add support for byte queue limits
net: Fix issue with netdev_tx_reset_queue not resetting queue from
XOFF state
net: Add memory barriers to prevent possible race in byte queue
limits
ixgbe: Do no clear Tx status bits since eop_desc provides enough info
ixgbe: Reorder adapter contents for better cache utilization
ixgbe: Address issues with Tx WHTRESH value not being set correctly
ixgbe: Correct Adaptive Interrupt Moderation so that it will change
values
ixgbe: Default to queue pairs when number of queues is less than CPUs
ixgbe: Drop unnecessary napi_schedule_prep and spare blank line from
ixgbe_intr
ixgbe: Allocate rings as part of the q_vector
ixgbe: Add iterator for cycling through rings on a q_vector
ixgbe: Simplify logic for ethtool loopback frame creation and testing
Jeff Kirsher (2):
igb: fix ethtool offline test
ixgbe: remove tie between NAPI work limits and interrupt moderation
drivers/net/ethernet/intel/igb/igb_ethtool.c | 7 +
drivers/net/ethernet/intel/igb/igb_main.c | 3 +-
drivers/net/ethernet/intel/ixgbe/ixgbe.h | 115 +++--
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c | 71 ++--
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 547 +++++++++++-----------
include/linux/netdevice.h | 50 ++-
6 files changed, 409 insertions(+), 384 deletions(-)
--
1.7.7.6
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [net-next 00/14][pull request] Intel Wired LAN Driver Updates
2012-03-13 4:03 Jeff Kirsher
@ 2012-03-13 5:55 ` David Miller
0 siblings, 0 replies; 34+ messages in thread
From: David Miller @ 2012-03-13 5:55 UTC (permalink / raw)
To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Mon, 12 Mar 2012 21:03:38 -0700
> This series of patches contains fixes/cleanups igb, ixgbe and net.
> Majority of the patches are against ixgbe and this series is part
> one of three to update ixgbe.
>
> The following are changes since commit f124488e4713dc9afa2028553261b1d399286e68:
> bnx2x: code doesn't use stats for allocating Rx BDs
> 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] 34+ messages in thread
* [net-next 00/14][pull request] Intel Wired LAN Driver Updates
@ 2012-10-19 11:45 Jeff Kirsher
2012-10-20 2:36 ` David Miller
0 siblings, 1 reply; 34+ messages in thread
From: Jeff Kirsher @ 2012-10-19 11:45 UTC (permalink / raw)
To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann
This series contains updates to ixgbe and igb.
The following are changes since commit db0fe0b2f6bba2fda939737d063db2ae14c58d71:
Merge tag 'batman-adv-fix-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 Duyck (13):
ixgbe: Initialize q_vector cpu and affinity masks correctly
ixgbe: Enable jumbo frames support w/ SR-IOV
ixgbe: Move message handling routines into their own functions
ixgbe: Add mailbox API version negotiation support to ixgbe PF
igb: Split Rx timestamping into two separate functions
igb: Do not use header split, instead receive all frames into a
single buffer
igb: Combine post-processing of skb into a single function
igb: Map entire page and sync half instead of mapping and unmapping
half pages
igb: Move rx_buffer related code in Rx cleanup path into separate
function
igb: Lock buffer size at 2K even on systems with larger pages
igb: Combine q_vector and ring allocation into a single function
igb: Move the calls to set the Tx and Rx queues into igb_open
igb: Split igb_update_dca into separate Tx and Rx functions
Tushar Dave (1):
igb: Correcting and improving small packet check and padding
drivers/net/ethernet/intel/igb/e1000_82575.h | 3 +
drivers/net/ethernet/intel/igb/igb.h | 70 +-
drivers/net/ethernet/intel/igb/igb_ethtool.c | 53 +-
drivers/net/ethernet/intel/igb/igb_main.c | 1242 +++++++++++++++---------
drivers/net/ethernet/intel/igb/igb_ptp.c | 55 +-
drivers/net/ethernet/intel/ixgbe/ixgbe.h | 1 +
drivers/net/ethernet/intel/ixgbe/ixgbe_fcoe.c | 4 +
drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c | 7 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 13 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.h | 21 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c | 359 ++++---
11 files changed, 1195 insertions(+), 633 deletions(-)
--
1.7.11.7
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [net-next 00/14][pull request] Intel Wired LAN Driver Updates
2012-10-19 11:45 Jeff Kirsher
@ 2012-10-20 2:36 ` David Miller
0 siblings, 0 replies; 34+ messages in thread
From: David Miller @ 2012-10-20 2:36 UTC (permalink / raw)
To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Fri, 19 Oct 2012 04:45:00 -0700
> This series contains updates to ixgbe and igb.
>
> The following are changes since commit db0fe0b2f6bba2fda939737d063db2ae14c58d71:
> Merge tag 'batman-adv-fix-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
Pulled, thanks Jeff.
^ permalink raw reply [flat|nested] 34+ messages in thread
* [net-next 00/14][pull request] Intel Wired LAN Driver Updates
@ 2012-10-26 11:58 Jeff Kirsher
0 siblings, 0 replies; 34+ messages in thread
From: Jeff Kirsher @ 2012-10-26 11:58 UTC (permalink / raw)
To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann
This series contains updates to ixgbe, ixgbevf, igbvf, igb and
networking core (bridge). Most notably is the addition of support
for local link multicast addresses in SR-IOV mode to the networking
core.
Also note, the ixgbe patch "ixgbe: Add support for pipeline reset" is
v2 based on community feedback.
The following are changes since commit e269ed26d4c9e6da1614709c1bf4c50ff8c8c5b3:
l2tp: session is an array not a pointer
and are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
Alexander Duyck (2):
ixgbe: Do not decrement budget in ixgbe_clean_rx_irq
igb: Fix sparse warning in igb_ptp_rx_pktstamp
Carolyn Wyborny (1):
igb: Update firmware version info for ethtool output.
Don Skidmore (1):
ixgbe: Add support for pipeline reset
Emil Tantilov (1):
ixgbe: clean up the condition for turning on/off the laser
Greg Rose (4):
ixgbe: Fix return value from macvlan filter function
ixgbe: Return success or failure on VF MAC filter set
ixgbevf: Do not forward LLDP type frames
igbvf: Check for error on dma_map_single call
Jakub Kicinski (1):
ixgbevf: make sure probe fails on MSI-X enable error
John Fastabend (1):
net, ixgbe: handle link local multicast addresses in SR-IOV mode
Matthew Vick (1):
igb: Enable auto-crossover during forced operation on 82580 and
above.
joshua.a.hay@intel.com (2):
ixgbe: eliminate Smatch warnings in ixgbe_debugfs.c
ixgbe: add/udpate descriptor maps in comments
drivers/net/ethernet/intel/igb/e1000_defines.h | 14 +++
drivers/net/ethernet/intel/igb/e1000_mac.c | 4 +
drivers/net/ethernet/intel/igb/e1000_nvm.c | 70 +++++++++++++
drivers/net/ethernet/intel/igb/e1000_nvm.h | 16 +++
drivers/net/ethernet/intel/igb/e1000_phy.c | 29 +++---
drivers/net/ethernet/intel/igb/igb_main.c | 76 +++++----------
drivers/net/ethernet/intel/igb/igb_ptp.c | 2 +-
drivers/net/ethernet/intel/igbvf/netdev.c | 13 +++
drivers/net/ethernet/intel/ixgbe/ixgbe.h | 1 +
drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c | 114 ++++++++++++++++------
drivers/net/ethernet/intel/ixgbe/ixgbe_common.c | 70 ++++++++++++-
drivers/net/ethernet/intel/ixgbe/ixgbe_debugfs.c | 72 +++++++-------
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 103 ++++++++++++-------
drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c | 5 +-
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 29 +++---
drivers/net/ethernet/intel/ixgbevf/vf.c | 3 +
include/linux/etherdevice.h | 19 ++++
net/bridge/br_device.c | 2 +-
net/bridge/br_input.c | 15 ---
net/bridge/br_private.h | 1 -
net/bridge/br_sysfs_br.c | 3 +-
21 files changed, 460 insertions(+), 201 deletions(-)
--
1.7.11.7
^ permalink raw reply [flat|nested] 34+ messages in thread
* [net-next 00/14][pull request] Intel Wired LAN Driver Updates
@ 2013-01-17 11:35 Jeff Kirsher
0 siblings, 0 replies; 34+ messages in thread
From: Jeff Kirsher @ 2013-01-17 11:35 UTC (permalink / raw)
To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann
This series contains updates to e1000e and igb. Most notably is the
added timestamp support in e1000e and additional software timestamp
support in igb. As well as, the added thermal data support and SR-IOV
configuration support in igb.
The following are changes since commit d59577b6ffd313d0ab3be39cb1ab47e29bdc9182:
sk-filter: Add ability to lock a socket filter program
and are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
Alexander Duyck (1):
igb: Report L4 Rx hash via skb->l4_rxhash
Bjorn Helgaas (1):
e1000e: Use standard #defines for PCIe Capability ASPM fields
Bruce Allan (3):
e1000e: add ethtool .get_eee/.set_eee
e1000e: add support for hardware timestamping on some devices
e1000e: add support for IEEE-1588 PTP
Carolyn Wyborny (3):
igb: Add i2c interface to igb.
igb: Add support functions to access thermal data.
igb: Enable hwmon data output for thermal sensors via I2C.
Greg Rose (1):
igb: Enable SR-IOV configuration via PCI sysfs interface
Matthew Vick (5):
igb: Add support for SW timestamping
igb: Add timeout for PTP Tx work item
igb: Add mechanism for detecting latched hardware Rx timestamp
igb: Use in-kernel PTP_EV_PORT #define
igb: Free any held skb that should have been timestamped on remove
drivers/net/ethernet/intel/Kconfig | 14 +
drivers/net/ethernet/intel/e1000e/82571.c | 2 +
drivers/net/ethernet/intel/e1000e/Makefile | 2 +-
drivers/net/ethernet/intel/e1000e/defines.h | 55 +++
drivers/net/ethernet/intel/e1000e/e1000.h | 56 ++-
drivers/net/ethernet/intel/e1000e/ethtool.c | 171 ++++++-
drivers/net/ethernet/intel/e1000e/hw.h | 13 +
drivers/net/ethernet/intel/e1000e/ich8lan.c | 26 +-
drivers/net/ethernet/intel/e1000e/netdev.c | 487 +++++++++++++++++-
drivers/net/ethernet/intel/e1000e/ptp.c | 276 +++++++++++
drivers/net/ethernet/intel/igb/Makefile | 2 +-
drivers/net/ethernet/intel/igb/e1000_82575.c | 140 ++++++
drivers/net/ethernet/intel/igb/e1000_82575.h | 26 +-
drivers/net/ethernet/intel/igb/e1000_defines.h | 13 +
drivers/net/ethernet/intel/igb/e1000_hw.h | 20 +
drivers/net/ethernet/intel/igb/e1000_regs.h | 16 +
drivers/net/ethernet/intel/igb/igb.h | 46 +-
drivers/net/ethernet/intel/igb/igb_ethtool.c | 11 +
drivers/net/ethernet/intel/igb/igb_hwmon.c | 242 +++++++++
drivers/net/ethernet/intel/igb/igb_main.c | 653 +++++++++++++++++++++----
drivers/net/ethernet/intel/igb/igb_ptp.c | 65 ++-
21 files changed, 2191 insertions(+), 145 deletions(-)
create mode 100644 drivers/net/ethernet/intel/e1000e/ptp.c
create mode 100644 drivers/net/ethernet/intel/igb/igb_hwmon.c
--
1.7.11.7
^ permalink raw reply [flat|nested] 34+ messages in thread
* [net-next 00/14][pull request] Intel Wired LAN Driver Updates
@ 2013-01-23 22:44 Jeff Kirsher
2013-01-27 6:28 ` David Miller
0 siblings, 1 reply; 34+ messages in thread
From: Jeff Kirsher @ 2013-01-23 22:44 UTC (permalink / raw)
To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann
This series contains updates to ixgbe and ixgbevf. Majority of the
changes are against ixgbe PTP and SR-IOV.
The following are changes since commit 93b9c1ddd3fb4a5b67d512e534b30070f9ecec28:
Merge branch 'testing' of git://git.kernel.org/pub/scm/linux/kernel/git/klassert/ipsec-next
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: Inline Rx PTP descriptor handling
Donald Dutile (1):
ixgbe: Limit number of reported VFs to device specific value
Greg Rose (4):
ixgbe: Make mailbox ops initialization unconditional
ixgbe: Modularize SR-IOV enablement code
ixgbe: Implement PCI SR-IOV sysfs callback operation
ixgbevf: Fix link speed message to support 100Mbps
Jacob Keller (8):
ixgbe: ethtool ixgbe_diag_test cleanup
ixgbe: add missing supported filters to get_ts_info
ixgbe: Update ptp_overflow check comment and jiffies
ixgbe: Use watchdog check in favor of BPF for detecting latched
timestamp
ixgbe: Add ptp work item to poll for the Tx timestamp
ixgbe: add warning when scheduling reset
ixgbe: Fix overwriting of rx_mtrl in ixgbe_ptp_hwtstamp_ioctl
ixgbe: only compile ixgbe_debugfs.o when enabled
drivers/net/ethernet/intel/ixgbe/Makefile | 3 +-
drivers/net/ethernet/intel/ixgbe/ixgbe.h | 34 +++-
drivers/net/ethernet/intel/ixgbe/ixgbe_debugfs.c | 5 -
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c | 46 +++--
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 62 +++++-
drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c | 221 ++++++++++------------
drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c | 192 ++++++++++++++-----
drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.h | 6 +-
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 19 +-
9 files changed, 375 insertions(+), 213 deletions(-)
--
1.7.11.7
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [net-next 00/14][pull request] Intel Wired LAN Driver Updates
2013-01-23 22:44 Jeff Kirsher
@ 2013-01-27 6:28 ` David Miller
2013-01-27 6:41 ` Jeff Kirsher
0 siblings, 1 reply; 34+ messages in thread
From: David Miller @ 2013-01-27 6:28 UTC (permalink / raw)
To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Wed, 23 Jan 2013 14:44:36 -0800
> This series contains updates to ixgbe and ixgbevf. Majority of the
> changes are against ixgbe PTP and SR-IOV.
>
> The following are changes since commit 93b9c1ddd3fb4a5b67d512e534b30070f9ecec28:
> Merge branch 'testing' of git://git.kernel.org/pub/scm/linux/kernel/git/klassert/ipsec-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.
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [net-next 00/14][pull request] Intel Wired LAN Driver Updates
2013-01-27 6:28 ` David Miller
@ 2013-01-27 6:41 ` Jeff Kirsher
2013-01-27 6:44 ` David Miller
0 siblings, 1 reply; 34+ messages in thread
From: Jeff Kirsher @ 2013-01-27 6:41 UTC (permalink / raw)
To: David Miller; +Cc: netdev, gospo, sassmann
[-- Attachment #1: Type: text/plain, Size: 651 bytes --]
On Sun, 2013-01-27 at 01:28 -0500, David Miller wrote:
> From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
> Date: Wed, 23 Jan 2013 14:44:36 -0800
>
> > This series contains updates to ixgbe and ixgbevf. Majority of the
> > changes are against ixgbe PTP and SR-IOV.
> >
> > The following are changes since commit 93b9c1ddd3fb4a5b67d512e534b30070f9ecec28:
> > Merge branch 'testing' of git://git.kernel.org/pub/scm/linux/kernel/git/klassert/ipsec-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.
Hope you are feeling better!
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [net-next 00/14][pull request] Intel Wired LAN Driver Updates
2013-01-27 6:41 ` Jeff Kirsher
@ 2013-01-27 6:44 ` David Miller
0 siblings, 0 replies; 34+ messages in thread
From: David Miller @ 2013-01-27 6:44 UTC (permalink / raw)
To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Sat, 26 Jan 2013 22:41:01 -0800
> On Sun, 2013-01-27 at 01:28 -0500, David Miller wrote:
>> From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
>> Date: Wed, 23 Jan 2013 14:44:36 -0800
>>
>> > This series contains updates to ixgbe and ixgbevf. Majority of the
>> > changes are against ixgbe PTP and SR-IOV.
>> >
>> > The following are changes since commit 93b9c1ddd3fb4a5b67d512e534b30070f9ecec28:
>> > Merge branch 'testing' of git://git.kernel.org/pub/scm/linux/kernel/git/klassert/ipsec-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.
>
> Hope you are feeling better!
I'm starting to turn the corner on this flu, thanks for your concern :-)
^ permalink raw reply [flat|nested] 34+ messages in thread
* [net-next 00/14][pull request] Intel Wired LAN Driver Updates
@ 2013-01-28 9:04 Jeff Kirsher
2013-01-28 23:18 ` David Miller
0 siblings, 1 reply; 34+ messages in thread
From: Jeff Kirsher @ 2013-01-28 9:04 UTC (permalink / raw)
To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann
This series contains updates to e1000e, ixgbevf, igb and igbvf.
Majority of the patches are code cleanups of e1000e where code
is removed (Yeah!). The other two e1000e patches are fixes. The
first is to fix the maximum frame size for 82579 devices. The second
fix is to resolve an issue with devices other than 82579 that suffer
from dropped transactions on platforms with deep C-states when
jumbo frames are enabled.
The ixgbevf patch is to ensure that the driver fetches the correct,
refreshed value for link status and speed when the values have changed.
The igb and igbvf patches are a solution to an issue Stefan Assmann
reported, where when the PF is up and igbvf is loaded, the MAC address
is not generated using eth_hw_addr_random().
The following are changes since commit a1b1add07fa794974573d93483d68e373edfe7bd:
gro: Fix kcalloc argument order
and are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
Bruce Allan (11):
e1000e: cleanup: remove e1000_set_d0_lplu_state()
e1000e: cleanup: remove e1000_force_speed_duplex()
e1000e: cleanup: rename e1000_get_cfg_done()
e1000e: cleanup: remove e1000_get_phy_cfg_done()
e1000e: cleanup: remove e1000_get_cable_length()
e1000e: cleanup: remove e1000e_commit_phy()
e1000e: correct maximum frame size on 82579
e1000e: adjust PM QoS request
e1000e: cleanup: remove unused #define
e1000e: cleanup hw.h
e1000e: cleanup: remove comments which are no longer applicable
Greg Rose (1):
ixgbevf: Make sure link status and speed are fetched
Mitch A Williams (2):
igb: Don't give VFs random MAC addresses
igbvf: be sane about random MAC addresses
drivers/net/ethernet/intel/e1000e/80003es2lan.c | 2 +-
drivers/net/ethernet/intel/e1000e/82571.c | 4 +-
drivers/net/ethernet/intel/e1000e/defines.h | 9 +-
drivers/net/ethernet/intel/e1000e/e1000.h | 12 +--
drivers/net/ethernet/intel/e1000e/ethtool.c | 5 +-
drivers/net/ethernet/intel/e1000e/hw.h | 25 +++---
drivers/net/ethernet/intel/e1000e/ich8lan.c | 4 +-
drivers/net/ethernet/intel/e1000e/netdev.c | 32 +++----
drivers/net/ethernet/intel/e1000e/phy.c | 114 +++++-------------------
drivers/net/ethernet/intel/igb/igb_main.c | 6 +-
drivers/net/ethernet/intel/igbvf/netdev.c | 24 +++--
drivers/net/ethernet/intel/ixgbevf/ethtool.c | 1 +
12 files changed, 76 insertions(+), 162 deletions(-)
--
1.7.11.7
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [net-next 00/14][pull request] Intel Wired LAN Driver Updates
2013-01-28 9:04 Jeff Kirsher
@ 2013-01-28 23:18 ` David Miller
0 siblings, 0 replies; 34+ messages in thread
From: David Miller @ 2013-01-28 23:18 UTC (permalink / raw)
To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Mon, 28 Jan 2013 01:04:15 -0800
> This series contains updates to e1000e, ixgbevf, igb and igbvf.
> Majority of the patches are code cleanups of e1000e where code
> is removed (Yeah!). The other two e1000e patches are fixes. The
> first is to fix the maximum frame size for 82579 devices. The second
> fix is to resolve an issue with devices other than 82579 that suffer
> from dropped transactions on platforms with deep C-states when
> jumbo frames are enabled.
>
> The ixgbevf patch is to ensure that the driver fetches the correct,
> refreshed value for link status and speed when the values have changed.
>
> The igb and igbvf patches are a solution to an issue Stefan Assmann
> reported, where when the PF is up and igbvf is loaded, the MAC address
> is not generated using eth_hw_addr_random().
>
> The following are changes since commit a1b1add07fa794974573d93483d68e373edfe7bd:
> gro: Fix kcalloc argument order
> 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] 34+ messages in thread
* [net-next 00/14][pull request] Intel Wired LAN Driver Updates
@ 2013-04-20 9:48 Jeff Kirsher
0 siblings, 0 replies; 34+ messages in thread
From: Jeff Kirsher @ 2013-04-20 9:48 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
The following are changes since commit 95a06161e6b903ad5b96285cb57c8df3b7c8ad34:
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
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] 34+ messages in thread
* [net-next 00/14][pull request] Intel Wired LAN Driver Updates
@ 2013-10-18 13:23 Jeff Kirsher
0 siblings, 0 replies; 34+ messages in thread
From: Jeff Kirsher @ 2013-10-18 13:23 UTC (permalink / raw)
To: a, 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.
The following are changes since commit 7cc7c5e54b7128195a1403747a63971c3c3f8e25:
net: Delete trailing semi-colon from definition of netdev_WARN()
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] 34+ messages in thread
* [net-next 00/14][pull request] Intel Wired LAN Driver Updates
@ 2013-12-07 2:17 Jeff Kirsher
2013-12-10 0:21 ` David Miller
0 siblings, 1 reply; 34+ messages in thread
From: Jeff Kirsher @ 2013-12-07 2:17 UTC (permalink / raw)
To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann
This series contains updates to i40e only.
Jacob provides a i40e patch to get 1588 work correctly by separating
TSYNVALID and TSYNINDX fields in the receive descriptor.
Jesse provides several i40e patches, first to correct the checking
of the multi-bit state. The hash is reported correctly in the RSS
field if and only if the filter status is 3. Other values of the
filter status mean different things and we should not depend on a
bitwise result. Then provides a patch to enable a couple of
workarounds based on revision ID that allow the driver to work
more fully on early hardware.
Shannon provides several i40e patches as well. First sets the media
type in the hardware structure based on the external connection type.
Then provides a patch to only setup the rings that will be used. Lastly
provides a fix where the TESTING state was still set when exiting the
ethtool diagnostics.
Kevin Scott provides one i40e patch to add a new flag to the i40e_add_veb()
which allows the driver to request the hardware to filter on layer 2
parameters.
Anjali provides four i40e patches, first refactors the reset code in
order to re-size queues and vectors while the interface is still up.
Then provides a patch to enable all PCTYPEs expect FCoE for RSS. Adds
a message to notify the user of how many VFs are initialized on each
port. Lastly adds a new variable to track the number of PF instances,
this is a global counter on purpose so that each PF loaded has a
unique ID.
Catherine bumps the driver version.
The following are changes since commit 0d74c42f788caf3cad727c61c490d9459bc8918b:
ether_addr_equal: Optimize implementation, remove unused compare_ether_addr
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: refactor reset code
i40e: Enable all PCTYPEs except FCOE for RSS.
i40e: add num_VFs message
i40e: Add a new variable to track number of pf instances
Catherine Sullivan (1):
i40e: Bump version
Jacob Keller (1):
i40e: separate TSYNVALID and TSYNINDX fields in Rx descriptor
Jeff Kirsher (1):
i40e: whitespace
Jesse Brandeburg (3):
i40e: check multi-bit state correctly
i40e: get media type during link info
i40e: enable early hardware support
Kevin Scott (1):
i40e: Add flag for L2 VEB filtering
Shannon Nelson (3):
i40e: only set up the rings to be used
i40e: clear test state bit after all ethtool tests
i40e: refactor ethtool tests
drivers/net/ethernet/intel/i40e/i40e.h | 3 +
drivers/net/ethernet/intel/i40e/i40e_common.c | 77 +++++++-
drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 66 ++++---
drivers/net/ethernet/intel/i40e/i40e_main.c | 241 +++++++++++++++++------
drivers/net/ethernet/intel/i40e/i40e_prototype.h | 3 +-
drivers/net/ethernet/intel/i40e/i40e_register.h | 7 +
drivers/net/ethernet/intel/i40e/i40e_txrx.c | 16 +-
drivers/net/ethernet/intel/i40e/i40e_type.h | 10 +-
8 files changed, 316 insertions(+), 107 deletions(-)
--
1.8.3.1
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [net-next 00/14][pull request] Intel Wired LAN Driver Updates
2013-12-07 2:17 Jeff Kirsher
@ 2013-12-10 0:21 ` David Miller
0 siblings, 0 replies; 34+ messages in thread
From: David Miller @ 2013-12-10 0:21 UTC (permalink / raw)
To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Fri, 6 Dec 2013 18:17:09 -0800
> This series contains updates to i40e only.
Pulled, thanks Jeff.
^ permalink raw reply [flat|nested] 34+ messages in thread
* [net-next 00/14][pull request] Intel Wired LAN Driver Updates
@ 2013-12-18 6:44 Jeff Kirsher
2013-12-18 6:44 ` [net-next 01/14] i40e: Fix dump output from debugfs calls Jeff Kirsher
` (14 more replies)
0 siblings, 15 replies; 34+ messages in thread
From: Jeff Kirsher @ 2013-12-18 6:44 UTC (permalink / raw)
To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann
This series contains updates to i40e, ixgbevf, ixgbe and igb.
Don provides an ixgbevf patch to add DCB configuration into the queue
setup so that we won't have to allocate queues in a separate place when
enabling DCB.
Guenter Roeck provides 2 patches for ixgbe to simplify the code by
attaching hwmon sysfs attributes to hwmon device instead of PCI device.
Also fix an issues where the temperature sensor attribute index was
being started with the value 0 and not 1 as per the hwmon API.
Carolyn provides igb patches to fix queue allocation method to
accommodate changes during runtime. This includes changing how the
driver initializes MSIx and checks for MSIx configuration to make it
easier to reconfigure the device when queue changes happen at runtime.
Neerav and Shannon fixes i40e debugfs commands that dump hex information
by using print_hex_dump().
Shannon provides several i40e fixes which include the prevention of
null pointer exception in the dump descriptor by checking that rings
were allocated before trying to reference them. Fixed up a couple of
scanfs to accept various base numbers instead of silently requiring hex.
Anjali fixes up i40e where the incorrect defines were being used for
misc interrupts.
Alan Cox provides a fix for i40e where we assume that the resulting
buffer is zero terminated when we then re-use it. The sscanf is limited
to 512 bytes but needs to be 511 to allow for a terminator.
Stephen Hemminger fixes i40e by making local functions static and removes
unused code (i40e_aq_add/remove_vlan() functions).
The following are changes since commit 02d5cb5bb20b9d34db20860aad1891cd9b8e81d5:
qeth: Accurate ethtool output
and are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
Alan Cox (1):
i40e: Fix off by one in i40e_dbg_command_write
Anjali Singhai Jain (1):
i40e: Fix wrong mask bits being used in misc interrupt
Carolyn Wyborny (2):
igb: Fix queue allocation method to accomodate changing during runtime
igb: Change to use statically allocated array for MSIx entries
Catherine Sullivan (1):
i40e: Bump version number
Don Skidmore (1):
ixgbevf: add DCB configuration into queue setup
Guenter Roeck (2):
ixgbe: Convert to use devm_hwmon_device_register_with_groups
ixgbe: Start temperature sensor attribute index with 1
Neerav Parikh (1):
i40e: Fix dump output from debugfs calls
Shannon Nelson (4):
i40e: prevent null pointer exception in dump descriptor
i40e: simplify error messages for dump descriptor
i40e: fix up scanf decoders
i40e: more print_hex_dump use
Stephen Hemminger (1):
i40e: make functions static and remove dead code
drivers/net/ethernet/intel/i40e/i40e_adminq.c | 6 +-
drivers/net/ethernet/intel/i40e/i40e_common.c | 80 --------
drivers/net/ethernet/intel/i40e/i40e_debugfs.c | 132 ++++---------
drivers/net/ethernet/intel/i40e/i40e_main.c | 6 +-
drivers/net/ethernet/intel/i40e/i40e_prototype.h | 8 -
drivers/net/ethernet/intel/igb/igb.h | 9 +-
drivers/net/ethernet/intel/igb/igb_ethtool.c | 6 +-
drivers/net/ethernet/intel/igb/igb_main.c | 94 +++++----
drivers/net/ethernet/intel/ixgbe/ixgbe.h | 8 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_sysfs.c | 84 ++++----
drivers/net/ethernet/intel/ixgbevf/ixgbevf.h | 1 +
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 228 +++++++++-------------
12 files changed, 243 insertions(+), 419 deletions(-)
--
1.8.3.1
^ permalink raw reply [flat|nested] 34+ messages in thread
* [net-next 01/14] i40e: Fix dump output from debugfs calls
2013-12-18 6:44 [net-next 00/14][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
@ 2013-12-18 6:44 ` Jeff Kirsher
2013-12-18 6:44 ` [net-next 02/14] i40e: prevent null pointer exception in dump descriptor Jeff Kirsher
` (13 subsequent siblings)
14 siblings, 0 replies; 34+ messages in thread
From: Jeff Kirsher @ 2013-12-18 6:44 UTC (permalink / raw)
To: davem
Cc: Neerav Parikh, netdev, gospo, sassmann, Jesse Brandeburg,
Jeff Kirsher
From: Neerav Parikh <Neerav.Parikh@intel.com>
The debugfs commands that dump hex information are not doing these as
expected viz. "lldp get local", "nvm read", "dump debug fwdata", etc.
Use print_hex_dump() instead to hex dump and remove the print buffer
stuff from the code.
Change-Id: I507bd8b2187aae8bad5055b7872978c309cf143e
Signed-off-by: Neerav Parikh <Neerav.Parikh@intel.com>
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/i40e/i40e_debugfs.c | 72 +++++++-------------------
1 file changed, 19 insertions(+), 53 deletions(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_debugfs.c b/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
index 9a59dda..18296f8 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
@@ -1022,8 +1022,6 @@ static ssize_t i40e_dbg_command_write(struct file *filp,
char *cmd_buf, *cmd_buf_tmp;
int bytes_not_copied;
struct i40e_vsi *vsi;
- u8 *print_buf_start;
- u8 *print_buf;
int vsi_seid;
int veb_seid;
int cnt;
@@ -1048,11 +1046,6 @@ static ssize_t i40e_dbg_command_write(struct file *filp,
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;
- print_buf = print_buf_start;
-
if (strncmp(cmd_buf, "add vsi", 7) == 0) {
vsi_seid = -1;
cnt = sscanf(&cmd_buf[7], "%i", &vsi_seid);
@@ -1592,19 +1585,15 @@ static ssize_t i40e_dbg_command_write(struct file *filp,
packet_len = min_t(u16,
packet_len, I40E_FDIR_MAX_RAW_PACKET_LOOKUP);
- dev_info(&pf->pdev->dev, "FD raw packet:\n");
for (i = 0; i < packet_len; i++) {
sscanf(&asc_packet[j], "%2hhx ",
&fd_data.raw_packet[i]);
j += 3;
- snprintf(print_buf, 3, "%02x ", fd_data.raw_packet[i]);
- print_buf += 3;
- if ((i % 16) == 15) {
- snprintf(print_buf, 1, "\n");
- print_buf++;
- }
}
- dev_info(&pf->pdev->dev, "%s\n", print_buf_start);
+ dev_info(&pf->pdev->dev, "FD raw packet dump\n");
+ print_hex_dump(KERN_INFO, "FD raw packet: ",
+ DUMP_PREFIX_OFFSET, 16, 1,
+ fd_data.raw_packet, packet_len, true);
ret = i40e_program_fdir_filter(&fd_data, pf, add);
if (!ret) {
dev_info(&pf->pdev->dev, "Filter command send Status : Success\n");
@@ -1638,7 +1627,7 @@ 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;
+ int ret;
u8 *buff;
buff = kzalloc(I40E_LLDPDU_SIZE, GFP_KERNEL);
if (!buff)
@@ -1656,22 +1645,15 @@ static ssize_t i40e_dbg_command_write(struct file *filp,
buff = NULL;
goto command_write_done;
}
- dev_info(&pf->pdev->dev,
- "Get LLDP MIB (local) AQ buffer written back:\n");
- for (i = 0; i < I40E_LLDPDU_SIZE; i++) {
- snprintf(print_buf, 3, "%02x ", buff[i]);
- print_buf += 3;
- if ((i % 16) == 15) {
- snprintf(print_buf, 1, "\n");
- print_buf++;
- }
- }
- dev_info(&pf->pdev->dev, "%s\n", print_buf_start);
+ dev_info(&pf->pdev->dev, "LLDP MIB (local)\n");
+ print_hex_dump(KERN_INFO, "LLDP MIB (local): ",
+ DUMP_PREFIX_OFFSET, 16, 1,
+ buff, I40E_LLDPDU_SIZE, true);
kfree(buff);
buff = NULL;
} else if (strncmp(&cmd_buf[5], "get remote", 10) == 0) {
u16 llen, rlen;
- int ret, i;
+ int ret;
u8 *buff;
buff = kzalloc(I40E_LLDPDU_SIZE, GFP_KERNEL);
if (!buff)
@@ -1690,17 +1672,10 @@ static ssize_t i40e_dbg_command_write(struct file *filp,
buff = NULL;
goto command_write_done;
}
- dev_info(&pf->pdev->dev,
- "Get LLDP MIB (remote) AQ buffer written back:\n");
- for (i = 0; i < I40E_LLDPDU_SIZE; i++) {
- snprintf(print_buf, 3, "%02x ", buff[i]);
- print_buf += 3;
- if ((i % 16) == 15) {
- snprintf(print_buf, 1, "\n");
- print_buf++;
- }
- }
- dev_info(&pf->pdev->dev, "%s\n", print_buf_start);
+ dev_info(&pf->pdev->dev, "LLDP MIB (remote)\n");
+ print_hex_dump(KERN_INFO, "LLDP MIB (remote): ",
+ DUMP_PREFIX_OFFSET, 16, 1,
+ buff, I40E_LLDPDU_SIZE, true);
kfree(buff);
buff = NULL;
} else if (strncmp(&cmd_buf[5], "event on", 8) == 0) {
@@ -1725,7 +1700,7 @@ static ssize_t i40e_dbg_command_write(struct file *filp,
}
}
} else if (strncmp(cmd_buf, "nvm read", 8) == 0) {
- u16 buffer_len, i, bytes;
+ u16 buffer_len, bytes;
u16 module;
u32 offset;
u16 *buff;
@@ -1779,16 +1754,10 @@ static ssize_t i40e_dbg_command_write(struct file *filp,
dev_info(&pf->pdev->dev,
"Read NVM module=0x%x offset=0x%x words=%d\n",
module, offset, buffer_len);
- for (i = 0; i < buffer_len; i++) {
- if ((i % 16) == 0) {
- snprintf(print_buf, 11, "\n0x%08x: ",
- offset + i);
- print_buf += 11;
- }
- snprintf(print_buf, 5, "%04x ", buff[i]);
- print_buf += 5;
- }
- dev_info(&pf->pdev->dev, "%s\n", print_buf_start);
+ if (buffer_len)
+ print_hex_dump(KERN_INFO, "NVM Dump: ",
+ DUMP_PREFIX_OFFSET, 16, 2,
+ buff, buffer_len, true);
}
kfree(buff);
buff = NULL;
@@ -1832,9 +1801,6 @@ static ssize_t i40e_dbg_command_write(struct file *filp,
command_write_done:
kfree(cmd_buf);
cmd_buf = NULL;
- kfree(print_buf_start);
- print_buf = NULL;
- print_buf_start = NULL;
return count;
}
--
1.8.3.1
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [net-next 02/14] i40e: prevent null pointer exception in dump descriptor
2013-12-18 6:44 [net-next 00/14][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
2013-12-18 6:44 ` [net-next 01/14] i40e: Fix dump output from debugfs calls Jeff Kirsher
@ 2013-12-18 6:44 ` Jeff Kirsher
2013-12-18 6:44 ` [net-next 03/14] i40e: simplify error messages for " Jeff Kirsher
` (12 subsequent siblings)
14 siblings, 0 replies; 34+ messages in thread
From: Jeff Kirsher @ 2013-12-18 6:44 UTC (permalink / raw)
To: davem
Cc: Shannon Nelson, netdev, gospo, sassmann, Jesse Brandeburg,
Jeff Kirsher
From: Shannon Nelson <shannon.nelson@intel.com>
Check that rings were allocated before trying to reference them.
Change-Id: I33151e55ab7a7a305fecdb88ccb2709ac246b7c7
Signed-off-by: Shannon Nelson <shannon.nelson@intel.com>
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/i40e/i40e_debugfs.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_debugfs.c b/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
index 18296f8..0ce0664 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
@@ -782,6 +782,12 @@ static void i40e_dbg_dump_desc(int cnt, int vsi_seid, int ring_id, int desc_n,
dev_info(&pf->pdev->dev, "dump desc tx <vsi_seid> <ring_id> [<desc_n>]\n");
return;
}
+ if (!vsi->tx_rings) {
+ dev_info(&pf->pdev->dev,
+ "descriptor rings have not been allocated for vsi %d\n",
+ vsi_seid);
+ return;
+ }
if (is_rx_ring)
ring = *vsi->rx_rings[ring_id];
else
--
1.8.3.1
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [net-next 03/14] i40e: simplify error messages for dump descriptor
2013-12-18 6:44 [net-next 00/14][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
2013-12-18 6:44 ` [net-next 01/14] i40e: Fix dump output from debugfs calls Jeff Kirsher
2013-12-18 6:44 ` [net-next 02/14] i40e: prevent null pointer exception in dump descriptor Jeff Kirsher
@ 2013-12-18 6:44 ` Jeff Kirsher
2013-12-18 6:44 ` [net-next 04/14] i40e: fix up scanf decoders Jeff Kirsher
` (11 subsequent siblings)
14 siblings, 0 replies; 34+ messages in thread
From: Jeff Kirsher @ 2013-12-18 6:44 UTC (permalink / raw)
To: davem
Cc: Shannon Nelson, netdev, gospo, sassmann, Jesse Brandeburg,
Jeff Kirsher
From: Shannon Nelson <shannon.nelson@intel.com>
debugfs fixes: We don't really need to give usage messages for data errors,
only for invalid command errors.
Change-Id: If3f74ac49e43c3ced7fd388323fa738ac145e055
Signed-off-by: Shannon Nelson <shannon.nelson@intel.com>
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/i40e/i40e_debugfs.c | 16 ++--------------
1 file changed, 2 insertions(+), 14 deletions(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_debugfs.c b/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
index 0ce0664..0768beb 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
@@ -766,20 +766,11 @@ static void i40e_dbg_dump_desc(int cnt, int vsi_seid, int ring_id, int desc_n,
vsi = i40e_dbg_find_vsi(pf, vsi_seid);
if (!vsi) {
- dev_info(&pf->pdev->dev,
- "vsi %d not found\n", vsi_seid);
- if (is_rx_ring)
- dev_info(&pf->pdev->dev, "dump desc rx <vsi_seid> <ring_id> [<desc_n>]\n");
- else
- dev_info(&pf->pdev->dev, "dump desc tx <vsi_seid> <ring_id> [<desc_n>]\n");
+ dev_info(&pf->pdev->dev, "vsi %d not found\n", vsi_seid);
return;
}
if (ring_id >= vsi->num_queue_pairs || ring_id < 0) {
dev_info(&pf->pdev->dev, "ring %d not found\n", ring_id);
- if (is_rx_ring)
- dev_info(&pf->pdev->dev, "dump desc rx <vsi_seid> <ring_id> [<desc_n>]\n");
- else
- dev_info(&pf->pdev->dev, "dump desc tx <vsi_seid> <ring_id> [<desc_n>]\n");
return;
}
if (!vsi->tx_rings) {
@@ -836,10 +827,7 @@ static void i40e_dbg_dump_desc(int cnt, int vsi_seid, int ring_id, int desc_n,
desc_n, ds->read.pkt_addr, ds->read.hdr_addr,
ds->read.rsvd1, ds->read.rsvd2);
} else {
- if (is_rx_ring)
- dev_info(&pf->pdev->dev, "dump desc rx <vsi_seid> <ring_id> [<desc_n>]\n");
- else
- dev_info(&pf->pdev->dev, "dump desc tx <vsi_seid> <ring_id> [<desc_n>]\n");
+ dev_info(&pf->pdev->dev, "dump desc rx/tx <vsi_seid> <ring_id> [<desc_n>]\n");
}
}
--
1.8.3.1
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [net-next 04/14] i40e: fix up scanf decoders
2013-12-18 6:44 [net-next 00/14][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (2 preceding siblings ...)
2013-12-18 6:44 ` [net-next 03/14] i40e: simplify error messages for " Jeff Kirsher
@ 2013-12-18 6:44 ` Jeff Kirsher
2013-12-18 6:44 ` [net-next 05/14] i40e: more print_hex_dump use Jeff Kirsher
` (10 subsequent siblings)
14 siblings, 0 replies; 34+ messages in thread
From: Jeff Kirsher @ 2013-12-18 6:44 UTC (permalink / raw)
To: davem
Cc: Shannon Nelson, netdev, gospo, sassmann, Jesse Brandeburg,
Jeff Kirsher
From: Shannon Nelson <shannon.nelson@intel.com>
Fix up a couple of scanfs to accept various base numbers instead of silently
requiring hex.
Change-Id: I1cc4dffbb1d011bf603cbf34a8db093da57fad7a
Signed-off-by: Shannon Nelson <shannon.nelson@intel.com>
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/i40e/i40e_debugfs.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_debugfs.c b/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
index 0768beb..abac831 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
@@ -1466,7 +1466,7 @@ static ssize_t i40e_dbg_command_write(struct file *filp,
} else if (strncmp(cmd_buf, "read", 4) == 0) {
u32 address;
u32 value;
- cnt = sscanf(&cmd_buf[4], "%x", &address);
+ cnt = sscanf(&cmd_buf[4], "%i", &address);
if (cnt != 1) {
dev_info(&pf->pdev->dev, "read <reg>\n");
goto command_write_done;
@@ -1485,7 +1485,7 @@ static ssize_t i40e_dbg_command_write(struct file *filp,
} else if (strncmp(cmd_buf, "write", 5) == 0) {
u32 address, value;
- cnt = sscanf(&cmd_buf[5], "%x %x", &address, &value);
+ cnt = sscanf(&cmd_buf[5], "%i %i", &address, &value);
if (cnt != 2) {
dev_info(&pf->pdev->dev, "write <reg> <value>\n");
goto command_write_done;
@@ -1503,7 +1503,7 @@ static ssize_t i40e_dbg_command_write(struct file *filp,
address, value);
} else if (strncmp(cmd_buf, "clear_stats", 11) == 0) {
if (strncmp(&cmd_buf[12], "vsi", 3) == 0) {
- cnt = sscanf(&cmd_buf[15], "%d", &vsi_seid);
+ cnt = sscanf(&cmd_buf[15], "%i", &vsi_seid);
if (cnt == 0) {
int i;
for (i = 0; i < pf->hw.func_caps.num_vsis; i++)
--
1.8.3.1
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [net-next 05/14] i40e: more print_hex_dump use
2013-12-18 6:44 [net-next 00/14][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (3 preceding siblings ...)
2013-12-18 6:44 ` [net-next 04/14] i40e: fix up scanf decoders Jeff Kirsher
@ 2013-12-18 6:44 ` Jeff Kirsher
2013-12-18 6:44 ` [net-next 06/14] i40e: Fix wrong mask bits being used in misc interrupt Jeff Kirsher
` (9 subsequent siblings)
14 siblings, 0 replies; 34+ messages in thread
From: Jeff Kirsher @ 2013-12-18 6:44 UTC (permalink / raw)
To: davem
Cc: Shannon Nelson, netdev, gospo, sassmann, Jesse Brandeburg,
Jeff Kirsher
From: Shannon Nelson <shannon.nelson@intel.com>
Take advantage of print_hex_dump() in another couple places to
clean up the code.
Change-Id: Ib618e75f928308c0afd0d8d74105da0c6577a024
Signed-off-by: Shannon Nelson <shannon.nelson@intel.com>
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/i40e/i40e_debugfs.c | 30 ++++++++++----------------
1 file changed, 11 insertions(+), 19 deletions(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_debugfs.c b/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
index abac831..aaa2b5c 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
@@ -362,7 +362,7 @@ static ssize_t i40e_dbg_command_read(struct file *filp, char __user *buffer,
}
/**
- * i40e_dbg_dump_vsi_seid - handles dump vsi seid write into pokem datum
+ * i40e_dbg_dump_vsi_seid - handles dump vsi seid write into command datum
* @pf: the i40e_pf created in command write
* @seid: the seid the user put in
**/
@@ -707,8 +707,13 @@ static void i40e_dbg_dump_aq_desc(struct i40e_pf *pf)
{
struct i40e_adminq_ring *ring;
struct i40e_hw *hw = &pf->hw;
+ char hdr[32];
int i;
+ snprintf(hdr, sizeof(hdr), "%s %s: ",
+ dev_driver_string(&pf->pdev->dev),
+ dev_name(&pf->pdev->dev));
+
/* first the send (command) ring, then the receive (event) ring */
dev_info(&pf->pdev->dev, "AdminQ Tx Ring\n");
ring = &(hw->aq.asq);
@@ -718,14 +723,8 @@ static void i40e_dbg_dump_aq_desc(struct i40e_pf *pf)
" at[%02d] flags=0x%04x op=0x%04x dlen=0x%04x ret=0x%04x cookie_h=0x%08x cookie_l=0x%08x\n",
i, d->flags, d->opcode, d->datalen, d->retval,
d->cookie_high, d->cookie_low);
- dev_info(&pf->pdev->dev,
- " %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x\n",
- d->params.raw[0], d->params.raw[1], d->params.raw[2],
- d->params.raw[3], d->params.raw[4], d->params.raw[5],
- d->params.raw[6], d->params.raw[7], d->params.raw[8],
- d->params.raw[9], d->params.raw[10], d->params.raw[11],
- d->params.raw[12], d->params.raw[13],
- d->params.raw[14], d->params.raw[15]);
+ print_hex_dump(KERN_INFO, hdr, DUMP_PREFIX_NONE,
+ 16, 1, d->params.raw, 16, 0);
}
dev_info(&pf->pdev->dev, "AdminQ Rx Ring\n");
@@ -736,14 +735,8 @@ static void i40e_dbg_dump_aq_desc(struct i40e_pf *pf)
" ar[%02d] flags=0x%04x op=0x%04x dlen=0x%04x ret=0x%04x cookie_h=0x%08x cookie_l=0x%08x\n",
i, d->flags, d->opcode, d->datalen, d->retval,
d->cookie_high, d->cookie_low);
- dev_info(&pf->pdev->dev,
- " %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x\n",
- d->params.raw[0], d->params.raw[1], d->params.raw[2],
- d->params.raw[3], d->params.raw[4], d->params.raw[5],
- d->params.raw[6], d->params.raw[7], d->params.raw[8],
- d->params.raw[9], d->params.raw[10], d->params.raw[11],
- d->params.raw[12], d->params.raw[13],
- d->params.raw[14], d->params.raw[15]);
+ print_hex_dump(KERN_INFO, hdr, DUMP_PREFIX_NONE,
+ 16, 1, d->params.raw, 16, 0);
}
}
@@ -973,8 +966,7 @@ static void i40e_dbg_dump_veb_seid(struct i40e_pf *pf, int seid)
veb = i40e_dbg_find_veb(pf, seid);
if (!veb) {
- dev_info(&pf->pdev->dev,
- "%d: can't find veb\n", seid);
+ dev_info(&pf->pdev->dev, "can't find veb %d\n", seid);
return;
}
dev_info(&pf->pdev->dev,
--
1.8.3.1
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [net-next 06/14] i40e: Fix wrong mask bits being used in misc interrupt
2013-12-18 6:44 [net-next 00/14][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (4 preceding siblings ...)
2013-12-18 6:44 ` [net-next 05/14] i40e: more print_hex_dump use Jeff Kirsher
@ 2013-12-18 6:44 ` Jeff Kirsher
2013-12-18 6:44 ` [net-next 07/14] i40e: Bump version number Jeff Kirsher
` (8 subsequent siblings)
14 siblings, 0 replies; 34+ messages in thread
From: Jeff Kirsher @ 2013-12-18 6:44 UTC (permalink / raw)
To: davem
Cc: Anjali Singhai Jain, netdev, gospo, sassmann, Jesse Brandeburg,
Jeff Kirsher
From: Anjali Singhai Jain <anjali.singhai@intel.com>
No functional change, but the wrong defines were being used.
Change-Id: Ica2afd2dfe18154ca0f1260a508f31e372319ba7
Signed-off-by: Anjali Singhai Jain <anjali.singhai@intel.com>
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/i40e/i40e_main.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
index fba0aad..994eb02 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -2489,8 +2489,8 @@ static void i40e_enable_misc_int_causes(struct i40e_hw *hw)
wr32(hw, I40E_PFINT_ICR0_ENA, val);
/* SW_ITR_IDX = 0, but don't change INTENA */
- wr32(hw, I40E_PFINT_DYN_CTL0, I40E_PFINT_DYN_CTLN_SW_ITR_INDX_MASK |
- I40E_PFINT_DYN_CTLN_INTENA_MSK_MASK);
+ wr32(hw, I40E_PFINT_DYN_CTL0, I40E_PFINT_DYN_CTL0_SW_ITR_INDX_MASK |
+ I40E_PFINT_DYN_CTL0_INTENA_MSK_MASK);
/* OTHER_ITR_IDX = 0 */
wr32(hw, I40E_PFINT_STAT_CTL0, 0);
--
1.8.3.1
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [net-next 07/14] i40e: Bump version number
2013-12-18 6:44 [net-next 00/14][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (5 preceding siblings ...)
2013-12-18 6:44 ` [net-next 06/14] i40e: Fix wrong mask bits being used in misc interrupt Jeff Kirsher
@ 2013-12-18 6:44 ` Jeff Kirsher
2013-12-18 6:44 ` [net-next 08/14] i40e: Fix off by one in i40e_dbg_command_write Jeff Kirsher
` (7 subsequent siblings)
14 siblings, 0 replies; 34+ messages in thread
From: Jeff Kirsher @ 2013-12-18 6:44 UTC (permalink / raw)
To: davem
Cc: Catherine Sullivan, netdev, gospo, sassmann, Jesse Brandeburg,
Jeff Kirsher
From: Catherine Sullivan <catherine.sullivan@intel.com>
Version updated to 0.3.14-k
Signed-off-by: Catherine Sullivan <catherine.sullivan@intel.com>
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@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 994eb02..da5e8e4 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 13
+#define DRV_VERSION_BUILD 14
#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] 34+ messages in thread
* [net-next 08/14] i40e: Fix off by one in i40e_dbg_command_write
2013-12-18 6:44 [net-next 00/14][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (6 preceding siblings ...)
2013-12-18 6:44 ` [net-next 07/14] i40e: Bump version number Jeff Kirsher
@ 2013-12-18 6:44 ` Jeff Kirsher
2013-12-18 6:44 ` [net-next 09/14] i40e: make functions static and remove dead code Jeff Kirsher
` (6 subsequent siblings)
14 siblings, 0 replies; 34+ messages in thread
From: Jeff Kirsher @ 2013-12-18 6:44 UTC (permalink / raw)
To: davem; +Cc: Alan Cox, netdev, gospo, sassmann, Jeff Kirsher
From: Alan Cox <alan@linux.intel.com>
We assume that the resulting buffer is zero terminated when we then
re-use it. The sscanf is limited to 512 bytes but needs to be 511
to allow for a terminator.
One of a set of problems noted by Jackie Chang
Signed-off-by: Alan Cox <alan@linux.intel.com>
Acked-by: Shannon Nelson <Shannon.nelson@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 | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_debugfs.c b/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
index aaa2b5c..e201060 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
@@ -1547,7 +1547,7 @@ static ssize_t i40e_dbg_command_write(struct file *filp,
if (strncmp(cmd_buf, "add", 3) == 0)
add = true;
cnt = sscanf(&cmd_buf[13],
- "%hx %2hhx %2hhx %hx %2hhx %2hhx %hx %x %hd %512s",
+ "%hx %2hhx %2hhx %hx %2hhx %2hhx %hx %x %hd %511s",
&fd_data.q_index,
&fd_data.flex_off, &fd_data.pctype,
&fd_data.dest_vsi, &fd_data.dest_ctl,
--
1.8.3.1
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [net-next 09/14] i40e: make functions static and remove dead code
2013-12-18 6:44 [net-next 00/14][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (7 preceding siblings ...)
2013-12-18 6:44 ` [net-next 08/14] i40e: Fix off by one in i40e_dbg_command_write Jeff Kirsher
@ 2013-12-18 6:44 ` Jeff Kirsher
2013-12-18 6:44 ` [net-next 10/14] ixgbevf: add DCB configuration into queue setup Jeff Kirsher
` (5 subsequent siblings)
14 siblings, 0 replies; 34+ messages in thread
From: Jeff Kirsher @ 2013-12-18 6:44 UTC (permalink / raw)
To: davem; +Cc: Stephen Hemminger, netdev, gospo, sassmann, Jeff Kirsher
From: Stephen Hemminger <stephen@networkplumber.org>
Make local functions static in the file they are used.
Remove functions i40e_aq_add_vlan and i40e_aq_remove_vlan since
they are not used anywhere by current code.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.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_adminq.c | 6 +-
drivers/net/ethernet/intel/i40e/i40e_common.c | 80 ------------------------
drivers/net/ethernet/intel/i40e/i40e_prototype.h | 8 ---
3 files changed, 4 insertions(+), 90 deletions(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_adminq.c b/drivers/net/ethernet/intel/i40e/i40e_adminq.c
index 30f32f3..c7e2866 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_adminq.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_adminq.c
@@ -31,6 +31,8 @@
#include "i40e_adminq.h"
#include "i40e_prototype.h"
+static void i40e_resume_aq(struct i40e_hw *hw);
+
/**
* i40e_adminq_init_regs - Initialize AdminQ registers
* @hw: pointer to the hardware structure
@@ -675,7 +677,7 @@ static u16 i40e_clean_asq(struct i40e_hw *hw)
* Returns true if the firmware has processed all descriptors on the
* admin send queue. Returns false if there are still requests pending.
**/
-bool i40e_asq_done(struct i40e_hw *hw)
+static bool i40e_asq_done(struct i40e_hw *hw)
{
/* AQ designers suggest use of head for better
* timing reliability than DD bit
@@ -963,7 +965,7 @@ clean_arq_element_out:
return ret_code;
}
-void i40e_resume_aq(struct i40e_hw *hw)
+static void i40e_resume_aq(struct i40e_hw *hw)
{
u32 reg = 0;
diff --git a/drivers/net/ethernet/intel/i40e/i40e_common.c b/drivers/net/ethernet/intel/i40e/i40e_common.c
index e526d40..8b6d56a 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_common.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_common.c
@@ -1129,86 +1129,6 @@ i40e_status i40e_aq_remove_macvlan(struct i40e_hw *hw, u16 seid,
}
/**
- * i40e_aq_add_vlan - Add VLAN ids to the HW filtering
- * @hw: pointer to the hw struct
- * @seid: VSI for the vlan filters
- * @v_list: list of vlan filters to be added
- * @count: length of the list
- * @cmd_details: pointer to command details structure or NULL
- **/
-i40e_status i40e_aq_add_vlan(struct i40e_hw *hw, u16 seid,
- struct i40e_aqc_add_remove_vlan_element_data *v_list,
- u8 count, struct i40e_asq_cmd_details *cmd_details)
-{
- struct i40e_aq_desc desc;
- struct i40e_aqc_macvlan *cmd =
- (struct i40e_aqc_macvlan *)&desc.params.raw;
- i40e_status status;
- u16 buf_size;
-
- if (count == 0 || !v_list || !hw)
- return I40E_ERR_PARAM;
-
- buf_size = count * sizeof(struct i40e_aqc_add_remove_vlan_element_data);
-
- /* prep the rest of the request */
- i40e_fill_default_direct_cmd_desc(&desc, i40e_aqc_opc_add_vlan);
- cmd->num_addresses = cpu_to_le16(count);
- cmd->seid[0] = cpu_to_le16(seid | I40E_AQC_MACVLAN_CMD_SEID_VALID);
- cmd->seid[1] = 0;
- cmd->seid[2] = 0;
-
- desc.flags |= cpu_to_le16((u16)(I40E_AQ_FLAG_BUF | I40E_AQ_FLAG_RD));
- if (buf_size > I40E_AQ_LARGE_BUF)
- desc.flags |= cpu_to_le16((u16)I40E_AQ_FLAG_LB);
-
- status = i40e_asq_send_command(hw, &desc, v_list, buf_size,
- cmd_details);
-
- return status;
-}
-
-/**
- * i40e_aq_remove_vlan - Remove VLANs from the HW filtering
- * @hw: pointer to the hw struct
- * @seid: VSI for the vlan filters
- * @v_list: list of macvlans to be removed
- * @count: length of the list
- * @cmd_details: pointer to command details structure or NULL
- **/
-i40e_status i40e_aq_remove_vlan(struct i40e_hw *hw, u16 seid,
- struct i40e_aqc_add_remove_vlan_element_data *v_list,
- u8 count, struct i40e_asq_cmd_details *cmd_details)
-{
- struct i40e_aq_desc desc;
- struct i40e_aqc_macvlan *cmd =
- (struct i40e_aqc_macvlan *)&desc.params.raw;
- i40e_status status;
- u16 buf_size;
-
- if (count == 0 || !v_list || !hw)
- return I40E_ERR_PARAM;
-
- buf_size = count * sizeof(struct i40e_aqc_add_remove_vlan_element_data);
-
- /* prep the rest of the request */
- i40e_fill_default_direct_cmd_desc(&desc, i40e_aqc_opc_remove_vlan);
- cmd->num_addresses = cpu_to_le16(count);
- cmd->seid[0] = cpu_to_le16(seid | I40E_AQC_MACVLAN_CMD_SEID_VALID);
- cmd->seid[1] = 0;
- cmd->seid[2] = 0;
-
- desc.flags |= cpu_to_le16((u16)(I40E_AQ_FLAG_BUF | I40E_AQ_FLAG_RD));
- if (buf_size > I40E_AQ_LARGE_BUF)
- desc.flags |= cpu_to_le16((u16)I40E_AQ_FLAG_LB);
-
- status = i40e_asq_send_command(hw, &desc, v_list, buf_size,
- cmd_details);
-
- return status;
-}
-
-/**
* i40e_aq_send_msg_to_vf
* @hw: pointer to the hardware structure
* @vfid: vf id to send msg
diff --git a/drivers/net/ethernet/intel/i40e/i40e_prototype.h b/drivers/net/ethernet/intel/i40e/i40e_prototype.h
index 930f53a..2fc9ce5 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_prototype.h
+++ b/drivers/net/ethernet/intel/i40e/i40e_prototype.h
@@ -51,7 +51,6 @@ i40e_status i40e_asq_send_command(struct i40e_hw *hw,
void *buff, /* can be NULL */
u16 buff_size,
struct i40e_asq_cmd_details *cmd_details);
-bool i40e_asq_done(struct i40e_hw *hw);
/* debug function for adminq */
void i40e_debug_aq(struct i40e_hw *hw,
@@ -60,7 +59,6 @@ void i40e_debug_aq(struct i40e_hw *hw,
void *buffer);
void i40e_idle_aq(struct i40e_hw *hw);
-void i40e_resume_aq(struct i40e_hw *hw);
u32 i40e_led_get(struct i40e_hw *hw);
void i40e_led_set(struct i40e_hw *hw, u32 mode);
@@ -120,12 +118,6 @@ i40e_status i40e_aq_add_macvlan(struct i40e_hw *hw, u16 vsi_id,
i40e_status i40e_aq_remove_macvlan(struct i40e_hw *hw, u16 vsi_id,
struct i40e_aqc_remove_macvlan_element_data *mv_list,
u16 count, struct i40e_asq_cmd_details *cmd_details);
-i40e_status i40e_aq_add_vlan(struct i40e_hw *hw, u16 vsi_id,
- struct i40e_aqc_add_remove_vlan_element_data *v_list,
- u8 count, struct i40e_asq_cmd_details *cmd_details);
-i40e_status i40e_aq_remove_vlan(struct i40e_hw *hw, u16 vsi_id,
- struct i40e_aqc_add_remove_vlan_element_data *v_list,
- u8 count, struct i40e_asq_cmd_details *cmd_details);
i40e_status i40e_aq_send_msg_to_vf(struct i40e_hw *hw, u16 vfid,
u32 v_opcode, u32 v_retval, u8 *msg, u16 msglen,
struct i40e_asq_cmd_details *cmd_details);
--
1.8.3.1
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [net-next 10/14] ixgbevf: add DCB configuration into queue setup
2013-12-18 6:44 [net-next 00/14][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (8 preceding siblings ...)
2013-12-18 6:44 ` [net-next 09/14] i40e: make functions static and remove dead code Jeff Kirsher
@ 2013-12-18 6:44 ` Jeff Kirsher
2013-12-18 6:44 ` [net-next 11/14] ixgbe: Convert to use devm_hwmon_device_register_with_groups Jeff Kirsher
` (4 subsequent siblings)
14 siblings, 0 replies; 34+ messages in thread
From: Jeff Kirsher @ 2013-12-18 6:44 UTC (permalink / raw)
To: davem; +Cc: Don Skidmore, netdev, gospo, sassmann, Alexander Duyck,
Jeff Kirsher
From: Don Skidmore <donald.c.skidmore@intel.com>
This patch takes the DCB config checks and adds them to the normal setting
up of the queues. This way we won't have to allocation queues in a separate
place for enabling DCB.
Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Signed-off-by: Don Skidmore <donald.c.skidmore@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Tested-By: Jack Morgan<jack.morgan@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/ixgbevf/ixgbevf.h | 1 +
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 228 +++++++++-------------
2 files changed, 91 insertions(+), 138 deletions(-)
diff --git a/drivers/net/ethernet/intel/ixgbevf/ixgbevf.h b/drivers/net/ethernet/intel/ixgbevf/ixgbevf.h
index eaaa3ec..bb76e96 100644
--- a/drivers/net/ethernet/intel/ixgbevf/ixgbevf.h
+++ b/drivers/net/ethernet/intel/ixgbevf/ixgbevf.h
@@ -354,6 +354,7 @@ struct ixgbevf_adapter {
u32 flags;
#define IXGBE_FLAG_IN_WATCHDOG_TASK (u32)(1)
#define IXGBE_FLAG_IN_NETPOLL (u32)(1 << 1)
+#define IXGBEVF_FLAG_QUEUE_RESET_REQUESTED (u32)(1 << 2)
/* OS defined structs */
struct net_device *netdev;
diff --git a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
index 84b55fe..a5d3167 100644
--- a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
+++ b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
@@ -95,6 +95,7 @@ module_param(debug, int, 0);
MODULE_PARM_DESC(debug, "Debug level (0=none,...,16=all)");
/* forward decls */
+static void ixgbevf_queue_reset_subtask(struct ixgbevf_adapter *adapter);
static void ixgbevf_set_itr(struct ixgbevf_q_vector *q_vector);
static void ixgbevf_free_all_rx_resources(struct ixgbevf_adapter *adapter);
@@ -1368,11 +1369,51 @@ static void ixgbevf_napi_disable_all(struct ixgbevf_adapter *adapter)
}
}
+static int ixgbevf_configure_dcb(struct ixgbevf_adapter *adapter)
+{
+ struct ixgbe_hw *hw = &adapter->hw;
+ unsigned int def_q = 0;
+ unsigned int num_tcs = 0;
+ unsigned int num_rx_queues = 1;
+ int err;
+
+ spin_lock_bh(&adapter->mbx_lock);
+
+ /* fetch queue configuration from the PF */
+ err = ixgbevf_get_queues(hw, &num_tcs, &def_q);
+
+ spin_unlock_bh(&adapter->mbx_lock);
+
+ if (err)
+ return err;
+
+ if (num_tcs > 1) {
+ /* update default Tx ring register index */
+ adapter->tx_ring[0].reg_idx = def_q;
+
+ /* we need as many queues as traffic classes */
+ num_rx_queues = num_tcs;
+ }
+
+ /* if we have a bad config abort request queue reset */
+ if (adapter->num_rx_queues != num_rx_queues) {
+ /* force mailbox timeout to prevent further messages */
+ hw->mbx.timeout = 0;
+
+ /* wait for watchdog to come around and bail us out */
+ adapter->flags |= IXGBEVF_FLAG_QUEUE_RESET_REQUESTED;
+ }
+
+ return 0;
+}
+
static void ixgbevf_configure(struct ixgbevf_adapter *adapter)
{
struct net_device *netdev = adapter->netdev;
int i;
+ ixgbevf_configure_dcb(adapter);
+
ixgbevf_set_rx_mode(netdev);
ixgbevf_restore_vlan(adapter);
@@ -1551,85 +1592,10 @@ static void ixgbevf_up_complete(struct ixgbevf_adapter *adapter)
mod_timer(&adapter->watchdog_timer, jiffies);
}
-static int ixgbevf_reset_queues(struct ixgbevf_adapter *adapter)
-{
- struct ixgbe_hw *hw = &adapter->hw;
- struct ixgbevf_ring *rx_ring;
- unsigned int def_q = 0;
- unsigned int num_tcs = 0;
- unsigned int num_rx_queues = 1;
- int err, i;
-
- spin_lock_bh(&adapter->mbx_lock);
-
- /* fetch queue configuration from the PF */
- err = ixgbevf_get_queues(hw, &num_tcs, &def_q);
-
- spin_unlock_bh(&adapter->mbx_lock);
-
- if (err)
- return err;
-
- if (num_tcs > 1) {
- /* update default Tx ring register index */
- adapter->tx_ring[0].reg_idx = def_q;
-
- /* we need as many queues as traffic classes */
- num_rx_queues = num_tcs;
- }
-
- /* nothing to do if we have the correct number of queues */
- if (adapter->num_rx_queues == num_rx_queues)
- return 0;
-
- /* allocate new rings */
- rx_ring = kcalloc(num_rx_queues,
- sizeof(struct ixgbevf_ring), GFP_KERNEL);
- if (!rx_ring)
- return -ENOMEM;
-
- /* setup ring fields */
- for (i = 0; i < num_rx_queues; i++) {
- rx_ring[i].count = adapter->rx_ring_count;
- rx_ring[i].queue_index = i;
- rx_ring[i].reg_idx = i;
- rx_ring[i].dev = &adapter->pdev->dev;
- rx_ring[i].netdev = adapter->netdev;
-
- /* allocate resources on the ring */
- err = ixgbevf_setup_rx_resources(adapter, &rx_ring[i]);
- if (err) {
- while (i) {
- i--;
- ixgbevf_free_rx_resources(adapter, &rx_ring[i]);
- }
- kfree(rx_ring);
- return err;
- }
- }
-
- /* free the existing rings and queues */
- ixgbevf_free_all_rx_resources(adapter);
- adapter->num_rx_queues = 0;
- kfree(adapter->rx_ring);
-
- /* move new rings into position on the adapter struct */
- adapter->rx_ring = rx_ring;
- adapter->num_rx_queues = num_rx_queues;
-
- /* reset ring to vector mapping */
- ixgbevf_reset_q_vectors(adapter);
- ixgbevf_map_rings_to_vectors(adapter);
-
- return 0;
-}
-
void ixgbevf_up(struct ixgbevf_adapter *adapter)
{
struct ixgbe_hw *hw = &adapter->hw;
- ixgbevf_reset_queues(adapter);
-
ixgbevf_configure(adapter);
ixgbevf_up_complete(adapter);
@@ -1875,9 +1841,28 @@ static int ixgbevf_acquire_msix_vectors(struct ixgbevf_adapter *adapter,
**/
static void ixgbevf_set_num_queues(struct ixgbevf_adapter *adapter)
{
+ struct ixgbe_hw *hw = &adapter->hw;
+ unsigned int def_q = 0;
+ unsigned int num_tcs = 0;
+ int err;
+
/* Start with base case */
adapter->num_rx_queues = 1;
adapter->num_tx_queues = 1;
+
+ spin_lock_bh(&adapter->mbx_lock);
+
+ /* fetch queue configuration from the PF */
+ err = ixgbevf_get_queues(hw, &num_tcs, &def_q);
+
+ spin_unlock_bh(&adapter->mbx_lock);
+
+ if (err)
+ return;
+
+ /* we need as many queues as traffic classes */
+ if (num_tcs > 1)
+ adapter->num_rx_queues = num_tcs;
}
/**
@@ -2326,6 +2311,8 @@ static void ixgbevf_watchdog_task(struct work_struct *work)
bool link_up = adapter->link_up;
s32 need_reset;
+ ixgbevf_queue_reset_subtask(adapter);
+
adapter->flags |= IXGBE_FLAG_IN_WATCHDOG_TASK;
/*
@@ -2595,63 +2582,6 @@ static void ixgbevf_free_all_rx_resources(struct ixgbevf_adapter *adapter)
&adapter->rx_ring[i]);
}
-static int ixgbevf_setup_queues(struct ixgbevf_adapter *adapter)
-{
- struct ixgbe_hw *hw = &adapter->hw;
- struct ixgbevf_ring *rx_ring;
- unsigned int def_q = 0;
- unsigned int num_tcs = 0;
- unsigned int num_rx_queues = 1;
- int err, i;
-
- spin_lock_bh(&adapter->mbx_lock);
-
- /* fetch queue configuration from the PF */
- err = ixgbevf_get_queues(hw, &num_tcs, &def_q);
-
- spin_unlock_bh(&adapter->mbx_lock);
-
- if (err)
- return err;
-
- if (num_tcs > 1) {
- /* update default Tx ring register index */
- adapter->tx_ring[0].reg_idx = def_q;
-
- /* we need as many queues as traffic classes */
- num_rx_queues = num_tcs;
- }
-
- /* nothing to do if we have the correct number of queues */
- if (adapter->num_rx_queues == num_rx_queues)
- return 0;
-
- /* allocate new rings */
- rx_ring = kcalloc(num_rx_queues,
- sizeof(struct ixgbevf_ring), GFP_KERNEL);
- if (!rx_ring)
- return -ENOMEM;
-
- /* setup ring fields */
- for (i = 0; i < num_rx_queues; i++) {
- rx_ring[i].count = adapter->rx_ring_count;
- rx_ring[i].queue_index = i;
- rx_ring[i].reg_idx = i;
- rx_ring[i].dev = &adapter->pdev->dev;
- rx_ring[i].netdev = adapter->netdev;
- }
-
- /* free the existing ring and queues */
- adapter->num_rx_queues = 0;
- kfree(adapter->rx_ring);
-
- /* move new rings into position on the adapter struct */
- adapter->rx_ring = rx_ring;
- adapter->num_rx_queues = num_rx_queues;
-
- return 0;
-}
-
/**
* ixgbevf_open - Called when a network interface is made active
* @netdev: network interface device structure
@@ -2695,11 +2625,6 @@ static int ixgbevf_open(struct net_device *netdev)
}
}
- /* setup queue reg_idx and Rx queue count */
- err = ixgbevf_setup_queues(adapter);
- if (err)
- goto err_setup_queues;
-
/* allocate transmit descriptors */
err = ixgbevf_setup_all_tx_resources(adapter);
if (err)
@@ -2737,7 +2662,6 @@ err_setup_rx:
ixgbevf_free_all_rx_resources(adapter);
err_setup_tx:
ixgbevf_free_all_tx_resources(adapter);
-err_setup_queues:
ixgbevf_reset(adapter);
err_setup_reset:
@@ -2769,6 +2693,34 @@ static int ixgbevf_close(struct net_device *netdev)
return 0;
}
+static void ixgbevf_queue_reset_subtask(struct ixgbevf_adapter *adapter)
+{
+ struct net_device *dev = adapter->netdev;
+
+ if (!(adapter->flags & IXGBEVF_FLAG_QUEUE_RESET_REQUESTED))
+ return;
+
+ adapter->flags &= ~IXGBEVF_FLAG_QUEUE_RESET_REQUESTED;
+
+ /* if interface is down do nothing */
+ if (test_bit(__IXGBEVF_DOWN, &adapter->state) ||
+ test_bit(__IXGBEVF_RESETTING, &adapter->state))
+ return;
+
+ /* Hardware has to reinitialize queues and interrupts to
+ * match packet buffer alignment. Unfortunately, the
+ * hardware is not flexible enough to do this dynamically.
+ */
+ if (netif_running(dev))
+ ixgbevf_close(dev);
+
+ ixgbevf_clear_interrupt_scheme(adapter);
+ ixgbevf_init_interrupt_scheme(adapter);
+
+ if (netif_running(dev))
+ ixgbevf_open(dev);
+}
+
static void ixgbevf_tx_ctxtdesc(struct ixgbevf_ring *tx_ring,
u32 vlan_macip_lens, u32 type_tucmd,
u32 mss_l4len_idx)
--
1.8.3.1
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [net-next 11/14] ixgbe: Convert to use devm_hwmon_device_register_with_groups
2013-12-18 6:44 [net-next 00/14][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (9 preceding siblings ...)
2013-12-18 6:44 ` [net-next 10/14] ixgbevf: add DCB configuration into queue setup Jeff Kirsher
@ 2013-12-18 6:44 ` Jeff Kirsher
2013-12-18 6:44 ` [net-next 12/14] ixgbe: Start temperature sensor attribute index with 1 Jeff Kirsher
` (3 subsequent siblings)
14 siblings, 0 replies; 34+ messages in thread
From: Jeff Kirsher @ 2013-12-18 6:44 UTC (permalink / raw)
To: davem; +Cc: Guenter Roeck, netdev, gospo, sassmann, Jeff Kirsher
From: Guenter Roeck <linux@roeck-us.net>
Simplify the code. Attach hwmon sysfs attributes to hwmon device
instead of pci device. Avoid race conditions caused by attributes
being created after hwmon device registration. Implicitly
(through hwmon API) add mandatory 'name' sysfs attribute.
Other cleanup:
Instead of allocating memory for hwmon attributes, move attributes
and all other hwmon related data into struct hwmon_buff and allocate
the entire structure using devm_kzalloc.
Check return value from calls to igb_add_hwmon_attr() one by one instead
of logically combining them all together.
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/ixgbe/ixgbe.h | 8 ++-
drivers/net/ethernet/intel/ixgbe/ixgbe_sysfs.c | 76 +++++++++++---------------
2 files changed, 36 insertions(+), 48 deletions(-)
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe.h b/drivers/net/ethernet/intel/ixgbe/ixgbe.h
index f38fc0a..49531cd 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe.h
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe.h
@@ -552,8 +552,10 @@ struct hwmon_attr {
};
struct hwmon_buff {
- struct device *device;
- struct hwmon_attr *hwmon_list;
+ struct attribute_group group;
+ const struct attribute_group *groups[2];
+ struct attribute *attrs[IXGBE_MAX_SENSORS * 4 + 1];
+ struct hwmon_attr hwmon_list[IXGBE_MAX_SENSORS * 4];
unsigned int n_hwmon;
};
#endif /* CONFIG_IXGBE_HWMON */
@@ -775,7 +777,7 @@ struct ixgbe_adapter {
u32 vferr_refcount;
struct kobject *info_kobj;
#ifdef CONFIG_IXGBE_HWMON
- struct hwmon_buff ixgbe_hwmon_buff;
+ struct hwmon_buff *ixgbe_hwmon_buff;
#endif /* CONFIG_IXGBE_HWMON */
#ifdef CONFIG_DEBUG_FS
struct dentry *ixgbe_dbg_adapter;
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_sysfs.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_sysfs.c
index d118def..3081974 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_sysfs.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_sysfs.c
@@ -111,8 +111,8 @@ static int ixgbe_add_hwmon_attr(struct ixgbe_adapter *adapter,
unsigned int n_attr;
struct hwmon_attr *ixgbe_attr;
- n_attr = adapter->ixgbe_hwmon_buff.n_hwmon;
- ixgbe_attr = &adapter->ixgbe_hwmon_buff.hwmon_list[n_attr];
+ n_attr = adapter->ixgbe_hwmon_buff->n_hwmon;
+ ixgbe_attr = &adapter->ixgbe_hwmon_buff->hwmon_list[n_attr];
switch (type) {
case IXGBE_HWMON_TYPE_LOC:
@@ -147,32 +147,17 @@ static int ixgbe_add_hwmon_attr(struct ixgbe_adapter *adapter,
ixgbe_attr->dev_attr.store = NULL;
ixgbe_attr->dev_attr.attr.mode = S_IRUGO;
ixgbe_attr->dev_attr.attr.name = ixgbe_attr->name;
+ sysfs_attr_init(&ixgbe_attr->dev_attr.attr);
- rc = device_create_file(&adapter->pdev->dev,
- &ixgbe_attr->dev_attr);
+ adapter->ixgbe_hwmon_buff->attrs[n_attr] = &ixgbe_attr->dev_attr.attr;
- if (rc == 0)
- ++adapter->ixgbe_hwmon_buff.n_hwmon;
+ ++adapter->ixgbe_hwmon_buff->n_hwmon;
- return rc;
+ return 0;
}
static void ixgbe_sysfs_del_adapter(struct ixgbe_adapter *adapter)
{
- int i;
-
- if (adapter == NULL)
- return;
-
- for (i = 0; i < adapter->ixgbe_hwmon_buff.n_hwmon; i++) {
- device_remove_file(&adapter->pdev->dev,
- &adapter->ixgbe_hwmon_buff.hwmon_list[i].dev_attr);
- }
-
- kfree(adapter->ixgbe_hwmon_buff.hwmon_list);
-
- if (adapter->ixgbe_hwmon_buff.device)
- hwmon_device_unregister(adapter->ixgbe_hwmon_buff.device);
}
/* called from ixgbe_main.c */
@@ -184,9 +169,9 @@ void ixgbe_sysfs_exit(struct ixgbe_adapter *adapter)
/* called from ixgbe_main.c */
int ixgbe_sysfs_init(struct ixgbe_adapter *adapter)
{
- struct hwmon_buff *ixgbe_hwmon = &adapter->ixgbe_hwmon_buff;
+ struct hwmon_buff *ixgbe_hwmon;
+ struct device *hwmon_dev;
unsigned int i;
- int n_attrs;
int rc = 0;
/* If this method isn't defined we don't support thermals */
@@ -198,23 +183,13 @@ int ixgbe_sysfs_init(struct ixgbe_adapter *adapter)
if (adapter->hw.mac.ops.init_thermal_sensor_thresh(&adapter->hw))
goto exit;
- /*
- * Allocation space for max attributs
- * max num sensors * values (loc, temp, max, caution)
- */
- n_attrs = IXGBE_MAX_SENSORS * 4;
- ixgbe_hwmon->hwmon_list = kcalloc(n_attrs, sizeof(struct hwmon_attr),
- GFP_KERNEL);
- if (!ixgbe_hwmon->hwmon_list) {
+ ixgbe_hwmon = devm_kzalloc(&adapter->pdev->dev, sizeof(*ixgbe_hwmon),
+ GFP_KERNEL);
+ if (ixgbe_hwmon == NULL) {
rc = -ENOMEM;
- goto err;
- }
-
- ixgbe_hwmon->device = hwmon_device_register(&adapter->pdev->dev);
- if (IS_ERR(ixgbe_hwmon->device)) {
- rc = PTR_ERR(ixgbe_hwmon->device);
- goto err;
+ goto exit;
}
+ adapter->ixgbe_hwmon_buff = ixgbe_hwmon;
for (i = 0; i < IXGBE_MAX_SENSORS; i++) {
/*
@@ -226,17 +201,28 @@ int ixgbe_sysfs_init(struct ixgbe_adapter *adapter)
/* Bail if any hwmon attr struct fails to initialize */
rc = ixgbe_add_hwmon_attr(adapter, i, IXGBE_HWMON_TYPE_CAUTION);
- rc |= ixgbe_add_hwmon_attr(adapter, i, IXGBE_HWMON_TYPE_LOC);
- rc |= ixgbe_add_hwmon_attr(adapter, i, IXGBE_HWMON_TYPE_TEMP);
- rc |= ixgbe_add_hwmon_attr(adapter, i, IXGBE_HWMON_TYPE_MAX);
if (rc)
- goto err;
+ goto exit;
+ rc = ixgbe_add_hwmon_attr(adapter, i, IXGBE_HWMON_TYPE_LOC);
+ if (rc)
+ goto exit;
+ rc = ixgbe_add_hwmon_attr(adapter, i, IXGBE_HWMON_TYPE_TEMP);
+ if (rc)
+ goto exit;
+ rc = ixgbe_add_hwmon_attr(adapter, i, IXGBE_HWMON_TYPE_MAX);
+ if (rc)
+ goto exit;
}
- goto exit;
+ ixgbe_hwmon->groups[0] = &ixgbe_hwmon->group;
+ ixgbe_hwmon->group.attrs = ixgbe_hwmon->attrs;
-err:
- ixgbe_sysfs_del_adapter(adapter);
+ hwmon_dev = devm_hwmon_device_register_with_groups(&adapter->pdev->dev,
+ "ixgbe",
+ ixgbe_hwmon,
+ ixgbe_hwmon->groups);
+ if (IS_ERR(hwmon_dev))
+ rc = PTR_ERR(hwmon_dev);
exit:
return rc;
}
--
1.8.3.1
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [net-next 12/14] ixgbe: Start temperature sensor attribute index with 1
2013-12-18 6:44 [net-next 00/14][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (10 preceding siblings ...)
2013-12-18 6:44 ` [net-next 11/14] ixgbe: Convert to use devm_hwmon_device_register_with_groups Jeff Kirsher
@ 2013-12-18 6:44 ` Jeff Kirsher
2013-12-18 6:44 ` [net-next 13/14] igb: Fix queue allocation method to accommodate changing during runtime Jeff Kirsher
` (2 subsequent siblings)
14 siblings, 0 replies; 34+ messages in thread
From: Jeff Kirsher @ 2013-12-18 6:44 UTC (permalink / raw)
To: davem; +Cc: Guenter Roeck, netdev, gospo, sassmann, Jeff Kirsher
From: Guenter Roeck <linux@roeck-us.net>
Per hwmon ABI, temperature sensor attribute index starts with 1, not 0.
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Reviewed-by: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/ixgbe/ixgbe_sysfs.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_sysfs.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_sysfs.c
index 3081974..e74ae36 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_sysfs.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_sysfs.c
@@ -118,22 +118,22 @@ static int ixgbe_add_hwmon_attr(struct ixgbe_adapter *adapter,
case IXGBE_HWMON_TYPE_LOC:
ixgbe_attr->dev_attr.show = ixgbe_hwmon_show_location;
snprintf(ixgbe_attr->name, sizeof(ixgbe_attr->name),
- "temp%u_label", offset);
+ "temp%u_label", offset + 1);
break;
case IXGBE_HWMON_TYPE_TEMP:
ixgbe_attr->dev_attr.show = ixgbe_hwmon_show_temp;
snprintf(ixgbe_attr->name, sizeof(ixgbe_attr->name),
- "temp%u_input", offset);
+ "temp%u_input", offset + 1);
break;
case IXGBE_HWMON_TYPE_CAUTION:
ixgbe_attr->dev_attr.show = ixgbe_hwmon_show_cautionthresh;
snprintf(ixgbe_attr->name, sizeof(ixgbe_attr->name),
- "temp%u_max", offset);
+ "temp%u_max", offset + 1);
break;
case IXGBE_HWMON_TYPE_MAX:
ixgbe_attr->dev_attr.show = ixgbe_hwmon_show_maxopthresh;
snprintf(ixgbe_attr->name, sizeof(ixgbe_attr->name),
- "temp%u_crit", offset);
+ "temp%u_crit", offset + 1);
break;
default:
rc = -EPERM;
--
1.8.3.1
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [net-next 13/14] igb: Fix queue allocation method to accommodate changing during runtime
2013-12-18 6:44 [net-next 00/14][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (11 preceding siblings ...)
2013-12-18 6:44 ` [net-next 12/14] ixgbe: Start temperature sensor attribute index with 1 Jeff Kirsher
@ 2013-12-18 6:44 ` Jeff Kirsher
2013-12-18 6:44 ` [net-next 14/14] igb: Change to use statically allocated array for MSIx entries Jeff Kirsher
2013-12-18 19:58 ` [net-next 00/14][pull request] Intel Wired LAN Driver Updates David Miller
14 siblings, 0 replies; 34+ messages in thread
From: Jeff Kirsher @ 2013-12-18 6:44 UTC (permalink / raw)
To: davem; +Cc: Carolyn Wyborny, netdev, gospo, sassmann, Jeff Kirsher
From: Carolyn Wyborny <carolyn.wyborny@intel.com>
When changing number of queues using ethtool's set_channels during runtime,
a queue allocation could fail, which can leave the device in a down state.
In order to preserve the usability of the device in this scenario, this patch
changes the driver to allocate the number of queues only if they have not
been allocated already. The first allocation is then done for the max number
of queues, which is the default queues for this driver. With this change,
queue quantity changes are not subject to queue allocation failures.
Signed-off-by: Carolyn Wyborny <carolyn.wyborny@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/igb/igb_main.c | 66 ++++++++++++++++++++-----------
1 file changed, 44 insertions(+), 22 deletions(-)
diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
index 3bc10bd..db040d6 100644
--- a/drivers/net/ethernet/intel/igb/igb_main.c
+++ b/drivers/net/ethernet/intel/igb/igb_main.c
@@ -983,43 +983,61 @@ err_out:
return err;
}
-static void igb_reset_interrupt_capability(struct igb_adapter *adapter)
-{
- if (adapter->msix_entries) {
- pci_disable_msix(adapter->pdev);
- kfree(adapter->msix_entries);
- adapter->msix_entries = NULL;
- } else if (adapter->flags & IGB_FLAG_HAS_MSI) {
- pci_disable_msi(adapter->pdev);
- }
-}
-
/**
* igb_free_q_vector - Free memory allocated for specific interrupt vector
* @adapter: board private structure to initialize
* @v_idx: Index of vector to be freed
*
- * This function frees the memory allocated to the q_vector. In addition if
- * NAPI is enabled it will delete any references to the NAPI struct prior
- * to freeing the q_vector.
+ * This function frees the memory allocated to the q_vector.
**/
static void igb_free_q_vector(struct igb_adapter *adapter, int v_idx)
{
struct igb_q_vector *q_vector = adapter->q_vector[v_idx];
+ adapter->q_vector[v_idx] = NULL;
+
+ /* igb_get_stats64() might access the rings on this vector,
+ * we must wait a grace period before freeing it.
+ */
+ kfree_rcu(q_vector, rcu);
+}
+
+/**
+ * igb_reset_q_vector - Reset config for interrupt vector
+ * @adapter: board private structure to initialize
+ * @v_idx: Index of vector to be reset
+ *
+ * If NAPI is enabled it will delete any references to the
+ * NAPI struct. This is preparation for igb_free_q_vector.
+ **/
+static void igb_reset_q_vector(struct igb_adapter *adapter, int v_idx)
+{
+ struct igb_q_vector *q_vector = adapter->q_vector[v_idx];
+
if (q_vector->tx.ring)
adapter->tx_ring[q_vector->tx.ring->queue_index] = NULL;
if (q_vector->rx.ring)
adapter->tx_ring[q_vector->rx.ring->queue_index] = NULL;
- adapter->q_vector[v_idx] = NULL;
netif_napi_del(&q_vector->napi);
- /* igb_get_stats64() might access the rings on this vector,
- * we must wait a grace period before freeing it.
- */
- kfree_rcu(q_vector, rcu);
+}
+
+static void igb_reset_interrupt_capability(struct igb_adapter *adapter)
+{
+ int v_idx = adapter->num_q_vectors;
+
+ if (adapter->msix_entries) {
+ pci_disable_msix(adapter->pdev);
+ kfree(adapter->msix_entries);
+ adapter->msix_entries = NULL;
+ } else if (adapter->flags & IGB_FLAG_HAS_MSI) {
+ pci_disable_msi(adapter->pdev);
+ }
+
+ while (v_idx--)
+ igb_reset_q_vector(adapter, v_idx);
}
/**
@@ -1038,8 +1056,10 @@ static void igb_free_q_vectors(struct igb_adapter *adapter)
adapter->num_rx_queues = 0;
adapter->num_q_vectors = 0;
- while (v_idx--)
+ while (v_idx--) {
+ igb_reset_q_vector(adapter, v_idx);
igb_free_q_vector(adapter, v_idx);
+ }
}
/**
@@ -1172,7 +1192,9 @@ static int igb_alloc_q_vector(struct igb_adapter *adapter,
(sizeof(struct igb_ring) * ring_count);
/* allocate q_vector and rings */
- q_vector = kzalloc(size, GFP_KERNEL);
+ q_vector = adapter->q_vector[v_idx];
+ if (!q_vector)
+ q_vector = kzalloc(size, GFP_KERNEL);
if (!q_vector)
return -ENOMEM;
@@ -8037,7 +8059,7 @@ int igb_reinit_queues(struct igb_adapter *adapter)
if (netif_running(netdev))
igb_close(netdev);
- igb_clear_interrupt_scheme(adapter);
+ igb_reset_interrupt_capability(adapter);
if (igb_init_interrupt_scheme(adapter, true)) {
dev_err(&pdev->dev, "Unable to allocate memory for queues\n");
--
1.8.3.1
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [net-next 14/14] igb: Change to use statically allocated array for MSIx entries
2013-12-18 6:44 [net-next 00/14][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (12 preceding siblings ...)
2013-12-18 6:44 ` [net-next 13/14] igb: Fix queue allocation method to accommodate changing during runtime Jeff Kirsher
@ 2013-12-18 6:44 ` Jeff Kirsher
2013-12-18 19:58 ` [net-next 00/14][pull request] Intel Wired LAN Driver Updates David Miller
14 siblings, 0 replies; 34+ messages in thread
From: Jeff Kirsher @ 2013-12-18 6:44 UTC (permalink / raw)
To: davem; +Cc: Carolyn Wyborny, netdev, gospo, sassmann, Jeff Kirsher
From: Carolyn Wyborny <carolyn.wyborny@intel.com>
This patch changes how the driver initializes MSIx and checks
for MSIx configuration. This change makes it easier to reconfigure the
device when queue changes happen at runtime using ethtool's set_channels
feature.
Signed-off-by: Carolyn Wyborny <carolyn.wyborny@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/igb/igb.h | 9 ++++---
drivers/net/ethernet/intel/igb/igb_ethtool.c | 6 ++---
drivers/net/ethernet/intel/igb/igb_main.c | 38 +++++++++++-----------------
3 files changed, 24 insertions(+), 29 deletions(-)
diff --git a/drivers/net/ethernet/intel/igb/igb.h b/drivers/net/ethernet/intel/igb/igb.h
index 8aaca0a..ccf472f 100644
--- a/drivers/net/ethernet/intel/igb/igb.h
+++ b/drivers/net/ethernet/intel/igb/igb.h
@@ -41,6 +41,7 @@
#include <linux/if_vlan.h>
#include <linux/i2c.h>
#include <linux/i2c-algo-bit.h>
+#include <linux/pci.h>
struct igb_adapter;
@@ -67,6 +68,7 @@ struct igb_adapter;
#define IGB_MIN_ITR_USECS 10
#define NON_Q_VECTORS 1
#define MAX_Q_VECTORS 8
+#define MAX_MSIX_ENTRIES 10
/* Transmit and receive queues */
#define IGB_MAX_RX_QUEUES 8
@@ -127,9 +129,9 @@ struct vf_data_storage {
#define IGB_TX_PTHRESH ((hw->mac.type == e1000_i354) ? 20 : 8)
#define IGB_TX_HTHRESH 1
#define IGB_RX_WTHRESH ((hw->mac.type == e1000_82576 && \
- adapter->msix_entries) ? 1 : 4)
+ (adapter->flags & IGB_FLAG_HAS_MSIX)) ? 1 : 4)
#define IGB_TX_WTHRESH ((hw->mac.type == e1000_82576 && \
- adapter->msix_entries) ? 1 : 16)
+ (adapter->flags & IGB_FLAG_HAS_MSIX)) ? 1 : 16)
/* this is the size past which hardware will drop packets when setting LPE=0 */
#define MAXIMUM_ETHERNET_VLAN_SIZE 1522
@@ -357,7 +359,7 @@ struct igb_adapter {
unsigned int flags;
unsigned int num_q_vectors;
- struct msix_entry *msix_entries;
+ struct msix_entry msix_entries[MAX_MSIX_ENTRIES];
/* Interrupt Throttle Rate */
u32 rx_itr_setting;
@@ -469,6 +471,7 @@ struct igb_adapter {
#define IGB_FLAG_MEDIA_RESET (1 << 10)
#define IGB_FLAG_MAS_CAPABLE (1 << 11)
#define IGB_FLAG_MAS_ENABLE (1 << 12)
+#define IGB_FLAG_HAS_MSIX (1 << 13)
/* Media Auto Sense */
#define IGB_MAS_ENABLE_0 0X0001
diff --git a/drivers/net/ethernet/intel/igb/igb_ethtool.c b/drivers/net/ethernet/intel/igb/igb_ethtool.c
index 1c7d238..1df0237 100644
--- a/drivers/net/ethernet/intel/igb/igb_ethtool.c
+++ b/drivers/net/ethernet/intel/igb/igb_ethtool.c
@@ -1386,7 +1386,7 @@ static int igb_intr_test(struct igb_adapter *adapter, u64 *data)
*data = 0;
/* Hook up test interrupt handler just for this test */
- if (adapter->msix_entries) {
+ if (adapter->flags & IGB_FLAG_HAS_MSIX) {
if (request_irq(adapter->msix_entries[0].vector,
igb_test_intr, 0, netdev->name, adapter)) {
*data = 1;
@@ -1519,7 +1519,7 @@ static int igb_intr_test(struct igb_adapter *adapter, u64 *data)
msleep(10);
/* Unhook test interrupt handler */
- if (adapter->msix_entries)
+ if (adapter->flags & IGB_FLAG_HAS_MSIX)
free_irq(adapter->msix_entries[0].vector, adapter);
else
free_irq(irq, adapter);
@@ -2933,7 +2933,7 @@ static void igb_get_channels(struct net_device *netdev,
ch->max_combined = igb_max_channels(adapter);
/* Report info for other vector */
- if (adapter->msix_entries) {
+ if (adapter->flags & IGB_FLAG_HAS_MSIX) {
ch->max_other = NON_Q_VECTORS;
ch->other_count = NON_Q_VECTORS;
}
diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
index db040d6..46d31a4 100644
--- a/drivers/net/ethernet/intel/igb/igb_main.c
+++ b/drivers/net/ethernet/intel/igb/igb_main.c
@@ -803,7 +803,7 @@ static void igb_assign_vector(struct igb_q_vector *q_vector, int msix_vector)
msixbm = E1000_EICR_RX_QUEUE0 << rx_queue;
if (tx_queue > IGB_N0_QUEUE)
msixbm |= E1000_EICR_TX_QUEUE0 << tx_queue;
- if (!adapter->msix_entries && msix_vector == 0)
+ if (!(adapter->flags & IGB_FLAG_HAS_MSIX) && msix_vector == 0)
msixbm |= E1000_EIMS_OTHER;
array_wr32(E1000_MSIXBM(0), msix_vector, msixbm);
q_vector->eims_value = msixbm;
@@ -1028,13 +1028,10 @@ static void igb_reset_interrupt_capability(struct igb_adapter *adapter)
{
int v_idx = adapter->num_q_vectors;
- if (adapter->msix_entries) {
+ if (adapter->flags & IGB_FLAG_HAS_MSIX)
pci_disable_msix(adapter->pdev);
- kfree(adapter->msix_entries);
- adapter->msix_entries = NULL;
- } else if (adapter->flags & IGB_FLAG_HAS_MSI) {
+ else if (adapter->flags & IGB_FLAG_HAS_MSI)
pci_disable_msi(adapter->pdev);
- }
while (v_idx--)
igb_reset_q_vector(adapter, v_idx);
@@ -1090,6 +1087,7 @@ static void igb_set_interrupt_capability(struct igb_adapter *adapter, bool msix)
if (!msix)
goto msi_only;
+ adapter->flags |= IGB_FLAG_HAS_MSIX;
/* Number of supported queues. */
adapter->num_rx_queues = adapter->rss_queues;
@@ -1110,12 +1108,6 @@ static void igb_set_interrupt_capability(struct igb_adapter *adapter, bool msix)
/* add 1 vector for link status interrupts */
numvecs++;
- adapter->msix_entries = kcalloc(numvecs, sizeof(struct msix_entry),
- GFP_KERNEL);
-
- if (!adapter->msix_entries)
- goto msi_only;
-
for (i = 0; i < numvecs; i++)
adapter->msix_entries[i].entry = i;
@@ -1392,7 +1384,7 @@ static int igb_request_irq(struct igb_adapter *adapter)
struct pci_dev *pdev = adapter->pdev;
int err = 0;
- if (adapter->msix_entries) {
+ if (adapter->flags & IGB_FLAG_HAS_MSIX) {
err = igb_request_msix(adapter);
if (!err)
goto request_done;
@@ -1436,7 +1428,7 @@ request_done:
static void igb_free_irq(struct igb_adapter *adapter)
{
- if (adapter->msix_entries) {
+ if (adapter->flags & IGB_FLAG_HAS_MSIX) {
int vector = 0, i;
free_irq(adapter->msix_entries[vector++].vector, adapter);
@@ -1461,7 +1453,7 @@ static void igb_irq_disable(struct igb_adapter *adapter)
* mapped into these registers and so clearing the bits can cause
* issues on the VF drivers so we only need to clear what we set
*/
- if (adapter->msix_entries) {
+ if (adapter->flags & IGB_FLAG_HAS_MSIX) {
u32 regval = rd32(E1000_EIAM);
wr32(E1000_EIAM, regval & ~adapter->eims_enable_mask);
wr32(E1000_EIMC, adapter->eims_enable_mask);
@@ -1472,7 +1464,7 @@ static void igb_irq_disable(struct igb_adapter *adapter)
wr32(E1000_IAM, 0);
wr32(E1000_IMC, ~0);
wrfl();
- if (adapter->msix_entries) {
+ if (adapter->flags & IGB_FLAG_HAS_MSIX) {
int i;
for (i = 0; i < adapter->num_q_vectors; i++)
synchronize_irq(adapter->msix_entries[i].vector);
@@ -1489,7 +1481,7 @@ static void igb_irq_enable(struct igb_adapter *adapter)
{
struct e1000_hw *hw = &adapter->hw;
- if (adapter->msix_entries) {
+ if (adapter->flags & IGB_FLAG_HAS_MSIX) {
u32 ims = E1000_IMS_LSC | E1000_IMS_DOUTSYNC | E1000_IMS_DRSTA;
u32 regval = rd32(E1000_EIAC);
wr32(E1000_EIAC, regval | adapter->eims_enable_mask);
@@ -1712,7 +1704,7 @@ int igb_up(struct igb_adapter *adapter)
for (i = 0; i < adapter->num_q_vectors; i++)
napi_enable(&(adapter->q_vector[i]->napi));
- if (adapter->msix_entries)
+ if (adapter->flags & IGB_FLAG_HAS_MSIX)
igb_configure_msix(adapter);
else
igb_assign_vector(adapter->q_vector[0], 0);
@@ -2565,7 +2557,7 @@ static int igb_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
dev_info(&pdev->dev, "%s: PBA No: %s\n", netdev->name, part_str);
dev_info(&pdev->dev,
"Using %s interrupts. %d rx queue(s), %d tx queue(s)\n",
- adapter->msix_entries ? "MSI-X" :
+ (adapter->flags & IGB_FLAG_HAS_MSIX) ? "MSI-X" :
(adapter->flags & IGB_FLAG_HAS_MSI) ? "MSI" : "legacy",
adapter->num_rx_queues, adapter->num_tx_queues);
switch (hw->mac.type) {
@@ -2653,7 +2645,7 @@ static int igb_enable_sriov(struct pci_dev *pdev, int num_vfs)
int err = 0;
int i;
- if (!adapter->msix_entries || num_vfs > 7) {
+ if (!(adapter->flags & IGB_FLAG_HAS_MSIX) || num_vfs > 7) {
err = -EPERM;
goto out;
}
@@ -4273,7 +4265,7 @@ static void igb_watchdog_task(struct work_struct *work)
}
/* Cause software interrupt to ensure Rx ring is cleaned */
- if (adapter->msix_entries) {
+ if (adapter->flags & IGB_FLAG_HAS_MSIX) {
u32 eics = 0;
for (i = 0; i < adapter->num_q_vectors; i++)
eics |= adapter->q_vector[i]->eims_value;
@@ -6194,7 +6186,7 @@ static void igb_ring_irq_enable(struct igb_q_vector *q_vector)
}
if (!test_bit(__IGB_DOWN, &adapter->state)) {
- if (adapter->msix_entries)
+ if (adapter->flags & IGB_FLAG_HAS_MSIX)
wr32(E1000_EIMS, q_vector->eims_value);
else
igb_irq_enable(adapter);
@@ -7561,7 +7553,7 @@ static void igb_netpoll(struct net_device *netdev)
for (i = 0; i < adapter->num_q_vectors; i++) {
q_vector = adapter->q_vector[i];
- if (adapter->msix_entries)
+ if (adapter->flags & IGB_FLAG_HAS_MSIX)
wr32(E1000_EIMC, q_vector->eims_value);
else
igb_irq_disable(adapter);
--
1.8.3.1
^ permalink raw reply related [flat|nested] 34+ messages in thread
* Re: [net-next 00/14][pull request] Intel Wired LAN Driver Updates
2013-12-18 6:44 [net-next 00/14][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (13 preceding siblings ...)
2013-12-18 6:44 ` [net-next 14/14] igb: Change to use statically allocated array for MSIx entries Jeff Kirsher
@ 2013-12-18 19:58 ` David Miller
14 siblings, 0 replies; 34+ messages in thread
From: David Miller @ 2013-12-18 19:58 UTC (permalink / raw)
To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Tue, 17 Dec 2013 22:44:28 -0800
> This series contains updates to i40e, ixgbevf, ixgbe and igb.
Pulled, thanks Jeff.
^ permalink raw reply [flat|nested] 34+ messages in thread
* [net-next 00/14][pull request] Intel Wired LAN Driver Updates
@ 2014-04-23 11:15 Jeff Kirsher
2014-04-23 21:07 ` David Miller
0 siblings, 1 reply; 34+ messages in thread
From: Jeff Kirsher @ 2014-04-23 11:15 UTC (permalink / raw)
To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann
This series contains updates to ixgbe, ixgbevf, e1000e, igb and i40e.
Jacob converts the ixgbe low_water into an array which allows the
algorithm to output different values for different TCs and we can
distinguish between them. Removes vlan_filter_disable() and
vlan_filter_enable() in ixgbe so that we can do the work directly in
set_rx_mode(). Changes the setting of multicast filters only when
the interface is not in promiscuous mode for multicast packets in
ixgbe. Improves MAC filter handling by adding mac_table API based
on work done for igb, which includes functions to add/delete MAC
filters.
Mark changes register reads in ixgbe to an out-of-line function since
register reads are slow.
Emil provides a ixgbevf patch to update the driver description since
it supports more than just 82599 parts now.
David provides several cleanup patches for e1000e which resolve some
checkpatch issues as well as changing occurrences of returning 0 or 1 in
bool functions to returning true false or true.
Carolyn provides several cleanup patches for igb which fix checkpatch
warnings.
Mitch provides a fix for i40evf where the driver would correctly allow
the virtual function link state to be controlled by 'ip set link', but
would not report it correctly back. This is fixed by filling out
the appropriate field in the VF info struct.
The following are changes since commit fd0d192be6e814495aec91f357b5801afc3b6262:
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
Carolyn Wyborny (3):
igb: Cleanups for messaging
igb: Cleanups to fix braces location warnings
igb: Cleanups to fix incorrect indentation
David Ertman (4):
e1000e: Cleanup return values in ethtool
e1000e: Cleanup to fix checkpatch missing blank lines
e1000e: Cleanup checkpatch extra space
e1000e: Cleanup use of deprecated DEFINE_PCI_DEVICE_TABLE
Emil Tantilov (1):
ixgbevf: remove 82599 from the module description
Jacob Keller (4):
ixgbe: convert low_water into an array
ixgbe: remove vlan_filter_disable and enable functions
ixgbe: change handling of multicast filters
ixgbe: improve mac filter handling
Mark Rustad (1):
ixgbe: Use out-of-line function for register reads
Mitch Williams (1):
i40e: report VF link state correctly
drivers/net/ethernet/intel/e1000e/e1000.h | 8 +-
drivers/net/ethernet/intel/e1000e/ethtool.c | 11 +-
drivers/net/ethernet/intel/e1000e/ich8lan.c | 1 +
drivers/net/ethernet/intel/e1000e/netdev.c | 19 +-
drivers/net/ethernet/intel/e1000e/nvm.c | 1 +
drivers/net/ethernet/intel/e1000e/param.c | 4 +
drivers/net/ethernet/intel/e1000e/phy.c | 1 +
drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 7 +
drivers/net/ethernet/intel/igb/e1000_82575.c | 24 +-
drivers/net/ethernet/intel/igb/e1000_82575.h | 22 +-
drivers/net/ethernet/intel/igb/e1000_defines.h | 25 +-
drivers/net/ethernet/intel/igb/e1000_hw.h | 50 ++--
drivers/net/ethernet/intel/igb/e1000_mac.c | 10 +-
drivers/net/ethernet/intel/igb/e1000_nvm.c | 1 +
drivers/net/ethernet/intel/igb/e1000_nvm.h | 2 +-
drivers/net/ethernet/intel/igb/e1000_phy.c | 3 +-
drivers/net/ethernet/intel/igb/e1000_regs.h | 7 +-
drivers/net/ethernet/intel/igb/igb.h | 1 +
drivers/net/ethernet/intel/igb/igb_ethtool.c | 24 +-
drivers/net/ethernet/intel/igb/igb_main.c | 74 ++---
drivers/net/ethernet/intel/ixgbe/ixgbe.h | 18 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_82598.c | 27 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_common.c | 35 ++-
drivers/net/ethernet/intel/ixgbe/ixgbe_common.h | 15 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_82598.c | 2 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_82599.c | 2 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_fcoe.h | 2 -
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 319 +++++++++++++++------
drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c | 49 ++--
drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.h | 2 +
drivers/net/ethernet/intel/ixgbe/ixgbe_type.h | 2 +-
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 2 +-
32 files changed, 478 insertions(+), 292 deletions(-)
--
1.9.0
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [net-next 00/14][pull request] Intel Wired LAN Driver Updates
2014-04-23 11:15 Jeff Kirsher
@ 2014-04-23 21:07 ` David Miller
0 siblings, 0 replies; 34+ messages in thread
From: David Miller @ 2014-04-23 21:07 UTC (permalink / raw)
To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Wed, 23 Apr 2014 04:15:12 -0700
> This series contains updates to ixgbe, ixgbevf, e1000e, igb and i40e.
Pulled, thanks a lot Jeff.
^ permalink raw reply [flat|nested] 34+ messages in thread
end of thread, other threads:[~2014-04-23 21:07 UTC | newest]
Thread overview: 34+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-12-18 6:44 [net-next 00/14][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
2013-12-18 6:44 ` [net-next 01/14] i40e: Fix dump output from debugfs calls Jeff Kirsher
2013-12-18 6:44 ` [net-next 02/14] i40e: prevent null pointer exception in dump descriptor Jeff Kirsher
2013-12-18 6:44 ` [net-next 03/14] i40e: simplify error messages for " Jeff Kirsher
2013-12-18 6:44 ` [net-next 04/14] i40e: fix up scanf decoders Jeff Kirsher
2013-12-18 6:44 ` [net-next 05/14] i40e: more print_hex_dump use Jeff Kirsher
2013-12-18 6:44 ` [net-next 06/14] i40e: Fix wrong mask bits being used in misc interrupt Jeff Kirsher
2013-12-18 6:44 ` [net-next 07/14] i40e: Bump version number Jeff Kirsher
2013-12-18 6:44 ` [net-next 08/14] i40e: Fix off by one in i40e_dbg_command_write Jeff Kirsher
2013-12-18 6:44 ` [net-next 09/14] i40e: make functions static and remove dead code Jeff Kirsher
2013-12-18 6:44 ` [net-next 10/14] ixgbevf: add DCB configuration into queue setup Jeff Kirsher
2013-12-18 6:44 ` [net-next 11/14] ixgbe: Convert to use devm_hwmon_device_register_with_groups Jeff Kirsher
2013-12-18 6:44 ` [net-next 12/14] ixgbe: Start temperature sensor attribute index with 1 Jeff Kirsher
2013-12-18 6:44 ` [net-next 13/14] igb: Fix queue allocation method to accommodate changing during runtime Jeff Kirsher
2013-12-18 6:44 ` [net-next 14/14] igb: Change to use statically allocated array for MSIx entries Jeff Kirsher
2013-12-18 19:58 ` [net-next 00/14][pull request] Intel Wired LAN Driver Updates David Miller
-- strict thread matches above, loose matches on Subject: below --
2014-04-23 11:15 Jeff Kirsher
2014-04-23 21:07 ` David Miller
2013-12-07 2:17 Jeff Kirsher
2013-12-10 0:21 ` David Miller
2013-10-18 13:23 Jeff Kirsher
2013-04-20 9:48 Jeff Kirsher
2013-01-28 9:04 Jeff Kirsher
2013-01-28 23:18 ` David Miller
2013-01-23 22:44 Jeff Kirsher
2013-01-27 6:28 ` David Miller
2013-01-27 6:41 ` Jeff Kirsher
2013-01-27 6:44 ` David Miller
2013-01-17 11:35 Jeff Kirsher
2012-10-26 11:58 Jeff Kirsher
2012-10-19 11:45 Jeff Kirsher
2012-10-20 2:36 ` David Miller
2012-03-13 4:03 Jeff Kirsher
2012-03-13 5:55 ` 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).