* [net-next 00/11][pull request] Intel Wired LAN Driver Updates
@ 2011-09-16 4:42 Jeff Kirsher
2011-09-16 19:20 ` David Miller
0 siblings, 1 reply; 42+ messages in thread
From: Jeff Kirsher @ 2011-09-16 4:42 UTC (permalink / raw)
To: davem; +Cc: Jeff Kirsher, netdev, gospo
The following series contains updates to ixgbe only. These are primarily
cleanups of the ixgbe driver. The first two patches of the series:
ixgbe: Change default Tx work limit size to 256 buffers
ixgbe: consolidate all MSI-X ring interrupts and poll routines into one
are re-worked based on previous community feedback (Dave and Ben).
The following are changes since commit 4bc71cb983fd2844e603bf633df2bb53385182d2:
net: consolidate and fix ethtool_ops->get_settings calling
and are available in the git repository at:
git://github.com/Jkirsher/net-next.git
Alexander Duyck (11):
ixgbe: Change default Tx work limit size to 256 buffers
v2 ixgbe: consolidate all MSI-X ring interrupts and poll routines
into one
ixgbe: cleanup allocation and freeing of IRQ affinity hint
ixgbe: Use ring->dev instead of adapter->pdev->dev when updating DCA
ixgbe: commonize ixgbe_map_rings_to_vectors to work for all interrupt
types
ixgbe: Drop unnecessary adapter->hw dereference in loopback test
setup
ixgbe: combine PCI_VDEVICE and board declaration to same line
ixgbe: Update TXDCTL configuration to correctly handle WTHRESH
ixgbe: cleanup reset paths
ixgbe: cleanup configuration of EITRSEL and VF reset path
ixgbe: Correctly name and handle MSI-X other interrupt
drivers/net/ethernet/intel/ixgbe/ixgbe.h | 2 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_82598.c | 13 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c | 40 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c | 18 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 775 ++++++++--------------
drivers/net/ethernet/intel/ixgbe/ixgbe_type.h | 1 +
drivers/net/ethernet/intel/ixgbe/ixgbe_x540.c | 72 +--
7 files changed, 341 insertions(+), 580 deletions(-)
--
1.7.6
^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: [net-next 00/11][pull request] Intel Wired LAN Driver Updates
2011-09-16 4:42 Jeff Kirsher
@ 2011-09-16 19:20 ` David Miller
0 siblings, 0 replies; 42+ messages in thread
From: David Miller @ 2011-09-16 19:20 UTC (permalink / raw)
To: jeffrey.t.kirsher; +Cc: netdev, gospo
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Thu, 15 Sep 2011 21:42:42 -0700
> The following series contains updates to ixgbe only. These are primarily
> cleanups of the ixgbe driver. The first two patches of the series:
>
> ixgbe: Change default Tx work limit size to 256 buffers
> ixgbe: consolidate all MSI-X ring interrupts and poll routines into one
>
> are re-worked based on previous community feedback (Dave and Ben).
>
> The following are changes since commit 4bc71cb983fd2844e603bf633df2bb53385182d2:
> net: consolidate and fix ethtool_ops->get_settings calling
> and are available in the git repository at:
> git://github.com/Jkirsher/net-next.git
Pulled, thanks Jeff.
^ permalink raw reply [flat|nested] 42+ messages in thread
* [net-next 00/11][pull request] Intel Wired LAN Driver Updates
@ 2011-09-17 2:15 Jeff Kirsher
0 siblings, 0 replies; 42+ messages in thread
From: Jeff Kirsher @ 2011-09-17 2:15 UTC (permalink / raw)
To: davem; +Cc: Jeff Kirsher, netdev, gospo
The following series contains updates to ixgb and ixgbe. The ixgb patch
does the conversion to ndo_fix_features. The remaining patches are for
ixgbe to do the following:
- cleanup register reads, comments, memory allocations
- add SFP support for 82598 PHY and overheat sensor code
- fix register dump for X50
The following are changes since commit f78a5fda9116525809d088917638be912b85f838:
Revert "Scm: Remove unnecessary pid & credential references in Unix socket's send and receive path"
and are available in the git repository at:
git://github.com/Jkirsher/net-next.git
Alexander Duyck (7):
ixgbe: remove redundant configuration of tx_sample_rate
v2 ixgbe: Update packet buffer reservation to correct fdir headroom
size
ixgbe: make ixgbe_up and ixgbe_up_complete void functions
ixgbe: Add missing code for enabling overheat sensor interrupt
ixgbe: Add SFP support for missed 82598 PHY
ixgbe: drop adapter from ixgbe_fso call documentation
ixgbe: Make better use of memory allocations in one-buffer mode w/
RSC
Emil Tantilov (3):
ixgbe: cleanup some register reads
ixgbe: fix FCRTL/H register dump for X540
ixgbe: remove duplicate netif_tx_start_all_queues
Michał Mirosław (1):
ixgb: convert to ndo_fix_features
drivers/net/ethernet/intel/ixgb/ixgb.h | 2 +
drivers/net/ethernet/intel/ixgb/ixgb_ethtool.c | 59 +----------
drivers/net/ethernet/intel/ixgb/ixgb_main.c | 31 +++++-
drivers/net/ethernet/intel/ixgbe/ixgbe.h | 13 ++-
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c | 3 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_fcoe.c | 1 -
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 126 ++++++++++++----------
7 files changed, 112 insertions(+), 123 deletions(-)
--
1.7.6
^ permalink raw reply [flat|nested] 42+ messages in thread
* [net-next 00/11][pull request] Intel Wired LAN Driver Updates
@ 2011-09-30 5:24 Jeff Kirsher
2011-09-30 18:35 ` Jeff Kirsher
0 siblings, 1 reply; 42+ messages in thread
From: Jeff Kirsher @ 2011-09-30 5:24 UTC (permalink / raw)
To: davem; +Cc: Jeff Kirsher, netdev, gospo
The following series contains updates to e1000e and ixgbe. The one
patch for e1000e makes function tables const, thanks to Stephen
Hemminger for reporting this. The remaining patches are for ixgbe,
and the contain the following:
- minor cleanups
- add support for 82599 device and ethtool -E support
- removal of a PHY which is not used in production silicon
The following are changes since commit 56fd49e399ce1d82200fad5b8924d4e35a587809:
bna: Driver Version changed to 3.0.2.2
and are available in the git repository at
git://github.com/Jkirsher/net-next.git
Emil Tantilov (8):
ixgbe: prevent link checks while resetting
ixgbe: clear the data field in ixgbe_read_i2c_byte_generic
ixgbe: remove return code for functions that always return 0
ixgbe: add support for new 82599 device
ixgbe: send MFLCN to ethtool
ixgbe: do not disable flow control in ixgbe_check_mac_link
ixgbe: remove instances of ixgbe_phy_aq for 82598 and 82599
ixgbe: allow eeprom writes via ethtool
Jacob Keller (1):
ixgbe: fix driver version initialization in firmware
Jeff Kirsher (1):
e1000e: make function tables const
Mika Lansirinne (1):
ixgbe: get pauseparam autoneg
drivers/net/ethernet/intel/e1000e/80003es2lan.c | 8 +-
drivers/net/ethernet/intel/e1000e/82571.c | 20 +++---
drivers/net/ethernet/intel/e1000e/e1000.h | 28 ++++----
drivers/net/ethernet/intel/e1000e/ich8lan.c | 16 +++---
drivers/net/ethernet/intel/ixgbe/ixgbe_82598.c | 8 +--
drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c | 7 +--
drivers/net/ethernet/intel/ixgbe/ixgbe_common.c | 6 --
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c | 74 +++++++++++++++++++---
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 12 +++-
drivers/net/ethernet/intel/ixgbe/ixgbe_phy.c | 33 +++-------
drivers/net/ethernet/intel/ixgbe/ixgbe_type.h | 1 +
drivers/net/ethernet/intel/ixgbe/ixgbe_x540.c | 1 +
12 files changed, 125 insertions(+), 89 deletions(-)
--
1.7.6.2
^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: [net-next 00/11][pull request] Intel Wired LAN Driver Updates
2011-09-30 5:24 Jeff Kirsher
@ 2011-09-30 18:35 ` Jeff Kirsher
0 siblings, 0 replies; 42+ messages in thread
From: Jeff Kirsher @ 2011-09-30 18:35 UTC (permalink / raw)
To: davem@davemloft.net; +Cc: netdev@vger.kernel.org, gospo@redhat.com
[-- Attachment #1: Type: text/plain, Size: 2427 bytes --]
On Thu, 2011-09-29 at 22:24 -0700, Kirsher, Jeffrey T wrote:
> The following series contains updates to e1000e and ixgbe. The one
> patch for e1000e makes function tables const, thanks to Stephen
> Hemminger for reporting this. The remaining patches are for ixgbe,
> and the contain the following:
>
> - minor cleanups
> - add support for 82599 device and ethtool -E support
> - removal of a PHY which is not used in production silicon
>
> The following are changes since commit 56fd49e399ce1d82200fad5b8924d4e35a587809:
> bna: Driver Version changed to 3.0.2.2
> and are available in the git repository at
> git://github.com/Jkirsher/net-next.git
>
> Emil Tantilov (8):
> ixgbe: prevent link checks while resetting
> ixgbe: clear the data field in ixgbe_read_i2c_byte_generic
> ixgbe: remove return code for functions that always return 0
> ixgbe: add support for new 82599 device
> ixgbe: send MFLCN to ethtool
> ixgbe: do not disable flow control in ixgbe_check_mac_link
> ixgbe: remove instances of ixgbe_phy_aq for 82598 and 82599
> ixgbe: allow eeprom writes via ethtool
>
> Jacob Keller (1):
> ixgbe: fix driver version initialization in firmware
>
> Jeff Kirsher (1):
> e1000e: make function tables const
>
> Mika Lansirinne (1):
> ixgbe: get pauseparam autoneg
>
> drivers/net/ethernet/intel/e1000e/80003es2lan.c | 8 +-
> drivers/net/ethernet/intel/e1000e/82571.c | 20 +++---
> drivers/net/ethernet/intel/e1000e/e1000.h | 28 ++++----
> drivers/net/ethernet/intel/e1000e/ich8lan.c | 16 +++---
> drivers/net/ethernet/intel/ixgbe/ixgbe_82598.c | 8 +--
> drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c | 7 +--
> drivers/net/ethernet/intel/ixgbe/ixgbe_common.c | 6 --
> drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c | 74 +++++++++++++++++++---
> drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 12 +++-
> drivers/net/ethernet/intel/ixgbe/ixgbe_phy.c | 33 +++-------
> drivers/net/ethernet/intel/ixgbe/ixgbe_type.h | 1 +
> drivers/net/ethernet/intel/ixgbe/ixgbe_x540.c | 1 +
> 12 files changed, 125 insertions(+), 89 deletions(-)
>
Currently there is only 1 small change that needs to be made to patch 11
of the series, based on Ben's comments.
I will wait a bit longer before fixing up patch 11, to ensure that there
are no other changes needed.
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 490 bytes --]
^ permalink raw reply [flat|nested] 42+ messages in thread
* [net-next 00/11][pull request] Intel Wired LAN Driver Updates
@ 2011-10-08 6:47 Jeff Kirsher
2011-10-08 6:52 ` Jeff Kirsher
0 siblings, 1 reply; 42+ messages in thread
From: Jeff Kirsher @ 2011-10-08 6:47 UTC (permalink / raw)
To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann
The following series contains updates to igb only. They are a
continuation of the cleanups and refactoring that Alex has done.
After this series there are 4-5 more patches to complete the work
that Alex has done on igb.
The following are changes since commit 1d0861acfb24d0ca0661ff5a156b992b2c589458:
Add ethtool -g support to 8139cp
and are available in the git repository at
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next.git
or
git://github.com/Jkirsher/net-next.git
Alexander Duyck (11):
igb: push data into first igb_tx_buffer sooner to reduce stack usage
igb: Use node specific allocations for the q_vectors and rings
igb: avoid unnecessary conversions from u16 to int
igb: Consolidate all of the ring feature flags into a single value
igb: Move ITR related data into work container within the q_vector
igb: cleanup IVAR configuration
igb: retire the RX_CSUM flag and use the netdev flag instead
igb: leave staterr in place and instead us a helper function to check
bits
igb: fix recent VLAN changes that would leave VLANs disabled after
reset
igb: move TX hang check flag into ring->flags
igb: add support for NETIF_F_RXHASH
drivers/net/ethernet/intel/igb/e1000_defines.h | 3 +
drivers/net/ethernet/intel/igb/igb.h | 53 ++-
drivers/net/ethernet/intel/igb/igb_ethtool.c | 14 +-
drivers/net/ethernet/intel/igb/igb_main.c | 675 +++++++++++++-----------
4 files changed, 411 insertions(+), 334 deletions(-)
--
1.7.6.4
^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: [net-next 00/11][pull request] Intel Wired LAN Driver Updates
2011-10-08 6:47 Jeff Kirsher
@ 2011-10-08 6:52 ` Jeff Kirsher
0 siblings, 0 replies; 42+ messages in thread
From: Jeff Kirsher @ 2011-10-08 6:52 UTC (permalink / raw)
To: davem@davemloft.net
Cc: netdev@vger.kernel.org, gospo@redhat.com, sassmann@redhat.com
[-- Attachment #1: Type: text/plain, Size: 715 bytes --]
On Fri, 2011-10-07 at 23:47 -0700, Kirsher, Jeffrey T wrote:
> The following series contains updates to igb only. They are a
> continuation of the cleanups and refactoring that Alex has done.
> After this series there are 4-5 more patches to complete the work
> that Alex has done on igb.
>
> The following are changes since commit
> 1d0861acfb24d0ca0661ff5a156b992b2c589458:
> Add ethtool -g support to 8139cp
> and are available in the git repository at
> git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next.git
> or
> git://github.com/Jkirsher/net-next.git
Even though I have my kernel.org tree back up and running, I will keep
the github tree's updated (at least for now).
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 42+ messages in thread
* [net-next 00/11][pull request] Intel Wired LAN Driver Updates
@ 2012-01-03 19:19 Jeff Kirsher
0 siblings, 0 replies; 42+ messages in thread
From: Jeff Kirsher @ 2012-01-03 19:19 UTC (permalink / raw)
To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann
The following series contains updates to e1000, e1000e, igb and
netdev/ixgbe. There are 2 fixes and the remaining patches are
either add support or cleanup.
Here is a list of the new support added:
- igb adds support for byte queue limits and basic runtime PM
- e1000e adds Receive Packet Steering (RPS)
- FCoE adds ndo_get_fcoe_hbainfo() call
The following are changes since commit fa0f5aa74316c636427ac92dad0bc5714c34ca17:
net_sched: qdisc_alloc_handle() can be too slow
and are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
Bruce Allan (5):
e1000e: cleanup Rx checksum offload code
e1000e: add Receive Packet Steering (RPS) support
e1000e: re-enable alternate MAC address for all devices which support
it
e1000e: convert head, tail and itr_register offsets to __iomem
pointers
e1000e: pass pointer to ring struct instead of adapter struct
Eric Dumazet (1):
igb: Add support for byte queue limits.
Jesse Brandeburg (1):
e1000: fix lockdep splat in shutdown handler
Koki Sanagi (1):
igb: reset PHY after recovering from PHY power down
Neerav Parikh (2):
netdev: FCoE: Add new ndo_get_fcoe_hbainfo() call
ixgbe: FCoE: Add support for ndo_get_fcoe_hbainfo() call
Yan, Zheng (1):
igb: add basic runtime PM support
drivers/net/ethernet/intel/e1000/e1000_main.c | 8 +-
drivers/net/ethernet/intel/e1000e/defines.h | 7 +
drivers/net/ethernet/intel/e1000e/e1000.h | 27 +-
drivers/net/ethernet/intel/e1000e/ethtool.c | 10 +-
drivers/net/ethernet/intel/e1000e/hw.h | 9 +-
drivers/net/ethernet/intel/e1000e/lib.c | 7 +-
drivers/net/ethernet/intel/e1000e/netdev.c | 397 +++++++++++++++----------
drivers/net/ethernet/intel/igb/igb.h | 5 +
drivers/net/ethernet/intel/igb/igb_ethtool.c | 16 +
drivers/net/ethernet/intel/igb/igb_main.c | 142 ++++++++--
drivers/net/ethernet/intel/ixgbe/ixgbe.h | 3 +
drivers/net/ethernet/intel/ixgbe/ixgbe_fcoe.c | 83 +++++
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 5 +-
include/linux/netdevice.h | 26 ++
14 files changed, 541 insertions(+), 204 deletions(-)
--
1.7.7.4
^ permalink raw reply [flat|nested] 42+ messages in thread
* [net-next 00/11][pull request] Intel Wired LAN Driver Updates
@ 2012-01-27 3:08 Jeff Kirsher
2012-01-28 1:47 ` David Miller
0 siblings, 1 reply; 42+ messages in thread
From: Jeff Kirsher @ 2012-01-27 3:08 UTC (permalink / raw)
To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann
The following series contains updates to e1000e only. This is the
second batch of e1000e patches and these changes contain
fixups/cleanups/conversions. Most notably is the split up of lib.c
into mac.c, manage.c and nvm.c.
The following are changes since commit a7563f342db6490e66dbf2c8a50577a72a158c9a:
ipv6: Use ipv6_addr_any()
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: disable Early Receive DMA on ICH LOMs
e1000e: update workaround for 82579 intermittently disabled during
S0->Sx
e1000e: ICHx/PCHx LOMs should use LPLU setting in NVM when going to
Sx
e1000e: increase Rx PBA to prevent dropping received packets on
82566/82567
e1000e: conditionally restart autoneg on 82577/8/9 when setting LPLU
state
e1000e: concatenate long debug strings which span multiple lines
e1000e: convert final strncpy() to strlcpy()
e1000e: increase version number
e1000e: call er16flash() instead of __er16flash()
e1000e: split lib.c into three more-appropriate files
e1000e: update copyright year
drivers/net/ethernet/intel/e1000e/80003es2lan.c | 5 +-
drivers/net/ethernet/intel/e1000e/82571.c | 2 +-
drivers/net/ethernet/intel/e1000e/Makefile | 5 +-
drivers/net/ethernet/intel/e1000e/defines.h | 2 +-
drivers/net/ethernet/intel/e1000e/e1000.h | 4 +-
drivers/net/ethernet/intel/e1000e/ethtool.c | 2 +-
drivers/net/ethernet/intel/e1000e/hw.h | 2 +-
drivers/net/ethernet/intel/e1000e/ich8lan.c | 141 ++--
drivers/net/ethernet/intel/e1000e/{lib.c => mac.c} | 1041 +-------------------
drivers/net/ethernet/intel/e1000e/manage.c | 377 +++++++
drivers/net/ethernet/intel/e1000e/netdev.c | 72 +-
drivers/net/ethernet/intel/e1000e/nvm.c | 647 ++++++++++++
drivers/net/ethernet/intel/e1000e/param.c | 2 +-
drivers/net/ethernet/intel/e1000e/phy.c | 5 +-
14 files changed, 1168 insertions(+), 1139 deletions(-)
rename drivers/net/ethernet/intel/e1000e/{lib.c => mac.c} (64%)
create mode 100644 drivers/net/ethernet/intel/e1000e/manage.c
create mode 100644 drivers/net/ethernet/intel/e1000e/nvm.c
--
1.7.7.6
^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: [net-next 00/11][pull request] Intel Wired LAN Driver Updates
2012-01-27 3:08 Jeff Kirsher
@ 2012-01-28 1:47 ` David Miller
0 siblings, 0 replies; 42+ messages in thread
From: David Miller @ 2012-01-28 1:47 UTC (permalink / raw)
To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Thu, 26 Jan 2012 19:08:38 -0800
> The following series contains updates to e1000e only. This is the
> second batch of e1000e patches and these changes contain
> fixups/cleanups/conversions. Most notably is the split up of lib.c
> into mac.c, manage.c and nvm.c.
>
> The following are changes since commit a7563f342db6490e66dbf2c8a50577a72a158c9a:
> ipv6: Use ipv6_addr_any()
> 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] 42+ messages in thread
* [net-next 00/11][pull request] Intel Wired LAN Driver Updates
@ 2012-02-07 12:33 Jeff Kirsher
2012-02-07 12:33 ` [net-next 01/11] igbvf: refactor Interrupt Throttle Rate code Jeff Kirsher
` (11 more replies)
0 siblings, 12 replies; 42+ messages in thread
From: Jeff Kirsher @ 2012-02-07 12:33 UTC (permalink / raw)
To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann
The following series contains updates to e1000, igbvf and e1000e.
Majority of the updates are to e1000e and do the following:
- cleanup 82571 and 80003es2lan code
- fix checkpatch and sparse warnings
- fix whitespace/indentation
- add missing initializers
The following are changes since commit 59d74026fa4b5df72a268f1e9578af500154ad07:
Merge branch 'for-davem' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next
and are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
Bruce Allan (9):
e1000e: add missing initializers reported when compiling with W=1
e1000e: cleanup - check return values consistently
e1000e: cleanup e1000_init_mac_params_80003es2lan()
e1000e: cleanup e1000_init_mac_params_82571()
e1000e: cleanup e1000_set_phys_id
e1000e: cleanup - use braces in both branches of a conditional
statement
e1000e: fix checkpatch warning from MINMAX test
e1000e: fix sparse warnings with -D__CHECK_ENDIAN__
e1000e: minor whitespace and indentation cleanup
Mitch A Williams (1):
igbvf: refactor Interrupt Throttle Rate code
Tushar Dave (1):
e1000: Adding e1000_dump function
drivers/net/ethernet/intel/e1000/e1000.h | 1 +
drivers/net/ethernet/intel/e1000/e1000_hw.h | 10 +
drivers/net/ethernet/intel/e1000/e1000_main.c | 224 +++++++++++++++++++++++
drivers/net/ethernet/intel/e1000e/80003es2lan.c | 28 +--
drivers/net/ethernet/intel/e1000e/82571.c | 72 +++-----
drivers/net/ethernet/intel/e1000e/ethtool.c | 8 +-
drivers/net/ethernet/intel/e1000e/ich8lan.c | 12 +-
drivers/net/ethernet/intel/e1000e/netdev.c | 104 ++++++-----
drivers/net/ethernet/intel/igbvf/ethtool.c | 19 +-
drivers/net/ethernet/intel/igbvf/igbvf.h | 27 ++--
drivers/net/ethernet/intel/igbvf/netdev.c | 131 ++++++++------
11 files changed, 438 insertions(+), 198 deletions(-)
--
1.7.7.6
^ permalink raw reply [flat|nested] 42+ messages in thread
* [net-next 01/11] igbvf: refactor Interrupt Throttle Rate code
2012-02-07 12:33 [net-next 00/11][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
@ 2012-02-07 12:33 ` Jeff Kirsher
2012-02-07 12:33 ` [net-next 02/11] e1000: Adding e1000_dump function Jeff Kirsher
` (10 subsequent siblings)
11 siblings, 0 replies; 42+ messages in thread
From: Jeff Kirsher @ 2012-02-07 12:33 UTC (permalink / raw)
To: davem; +Cc: Mitch A Williams, netdev, gospo, sassmann, Jeff Kirsher
From: Mitch A Williams <mitch.a.williams@intel.com>
The existing ITR code is broken and confusing, with lots of similarly-named
variables that do different things. Additionally, after the driver carefully
determines the optimal interrupt rate for the adapter, it then
ignores it and always writes a fixed, suboptimal value.
This patch refactors that code to make variable names more descriptive of
what they actually do, and then actually writes the calculated result to
the hardware.
Preliminary testing shows that netperf TCP_STREAM tests goes from ~918Mbps
to ~940Mbps, and TCP_RR goes from ~2k transactions/sec up to > 8k.
Signed-off-by: Mitch Williams <mitch.a.williams@intel.com>
Tested-by: Robert E Garrett <robertX.e.garrett@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/igbvf/ethtool.c | 19 ++--
drivers/net/ethernet/intel/igbvf/igbvf.h | 27 +++---
drivers/net/ethernet/intel/igbvf/netdev.c | 131 ++++++++++++++++------------
3 files changed, 99 insertions(+), 78 deletions(-)
diff --git a/drivers/net/ethernet/intel/igbvf/ethtool.c b/drivers/net/ethernet/intel/igbvf/ethtool.c
index db7dce2..8ce6706 100644
--- a/drivers/net/ethernet/intel/igbvf/ethtool.c
+++ b/drivers/net/ethernet/intel/igbvf/ethtool.c
@@ -343,10 +343,10 @@ static int igbvf_get_coalesce(struct net_device *netdev,
{
struct igbvf_adapter *adapter = netdev_priv(netdev);
- if (adapter->itr_setting <= 3)
- ec->rx_coalesce_usecs = adapter->itr_setting;
+ if (adapter->requested_itr <= 3)
+ ec->rx_coalesce_usecs = adapter->requested_itr;
else
- ec->rx_coalesce_usecs = adapter->itr_setting >> 2;
+ ec->rx_coalesce_usecs = adapter->current_itr >> 2;
return 0;
}
@@ -365,15 +365,16 @@ static int igbvf_set_coalesce(struct net_device *netdev,
/* convert to rate of irq's per second */
if (ec->rx_coalesce_usecs && ec->rx_coalesce_usecs <= 3) {
- adapter->itr = IGBVF_START_ITR;
- adapter->itr_setting = ec->rx_coalesce_usecs;
+ adapter->current_itr = IGBVF_START_ITR;
+ adapter->requested_itr = ec->rx_coalesce_usecs;
} else {
- adapter->itr = ec->rx_coalesce_usecs << 2;
- adapter->itr_setting = adapter->itr;
+ adapter->current_itr = ec->rx_coalesce_usecs << 2;
+ adapter->requested_itr = 1000000000 /
+ (adapter->current_itr * 256);
}
- writel(adapter->itr,
- hw->hw_addr + adapter->rx_ring[0].itr_register);
+ writel(adapter->current_itr,
+ hw->hw_addr + adapter->rx_ring->itr_register);
return 0;
}
diff --git a/drivers/net/ethernet/intel/igbvf/igbvf.h b/drivers/net/ethernet/intel/igbvf/igbvf.h
index 2c6d87e..a895e2f 100644
--- a/drivers/net/ethernet/intel/igbvf/igbvf.h
+++ b/drivers/net/ethernet/intel/igbvf/igbvf.h
@@ -43,7 +43,18 @@ struct igbvf_info;
struct igbvf_adapter;
/* Interrupt defines */
-#define IGBVF_START_ITR 648 /* ~6000 ints/sec */
+#define IGBVF_START_ITR 488 /* ~8000 ints/sec */
+#define IGBVF_4K_ITR 980
+#define IGBVF_20K_ITR 196
+#define IGBVF_70K_ITR 56
+
+enum latency_range {
+ lowest_latency = 0,
+ low_latency = 1,
+ bulk_latency = 2,
+ latency_invalid = 255
+};
+
/* Interrupt modes, as used by the IntMode parameter */
#define IGBVF_INT_MODE_LEGACY 0
@@ -155,6 +166,7 @@ struct igbvf_ring {
char name[IFNAMSIZ + 5];
u32 eims_value;
u32 itr_val;
+ enum latency_range itr_range;
u16 itr_register;
int set_itr;
@@ -187,10 +199,8 @@ struct igbvf_adapter {
unsigned long state;
/* Interrupt Throttle Rate */
- u32 itr;
- u32 itr_setting;
- u16 tx_itr;
- u16 rx_itr;
+ u32 requested_itr; /* ints/sec or adaptive */
+ u32 current_itr; /* Actual ITR register value, not ints/sec */
/*
* Tx
@@ -299,13 +309,6 @@ enum igbvf_state_t {
__IGBVF_DOWN
};
-enum latency_range {
- lowest_latency = 0,
- low_latency = 1,
- bulk_latency = 2,
- latency_invalid = 255
-};
-
extern char igbvf_driver_name[];
extern const char igbvf_driver_version[];
diff --git a/drivers/net/ethernet/intel/igbvf/netdev.c b/drivers/net/ethernet/intel/igbvf/netdev.c
index 4e9141c..446297f 100644
--- a/drivers/net/ethernet/intel/igbvf/netdev.c
+++ b/drivers/net/ethernet/intel/igbvf/netdev.c
@@ -632,14 +632,13 @@ void igbvf_free_rx_resources(struct igbvf_ring *rx_ring)
* traffic pattern. Constants in this function were computed
* based on theoretical maximum wire speed and thresholds were set based
* on testing data as well as attempting to minimize response time
- * while increasing bulk throughput. This functionality is controlled
- * by the InterruptThrottleRate module parameter.
+ * while increasing bulk throughput.
**/
-static unsigned int igbvf_update_itr(struct igbvf_adapter *adapter,
- u16 itr_setting, int packets,
- int bytes)
+static enum latency_range igbvf_update_itr(struct igbvf_adapter *adapter,
+ enum latency_range itr_setting,
+ int packets, int bytes)
{
- unsigned int retval = itr_setting;
+ enum latency_range retval = itr_setting;
if (packets == 0)
goto update_itr_done;
@@ -675,65 +674,87 @@ static unsigned int igbvf_update_itr(struct igbvf_adapter *adapter,
retval = low_latency;
}
break;
+ default:
+ break;
}
update_itr_done:
return retval;
}
-static void igbvf_set_itr(struct igbvf_adapter *adapter)
+static int igbvf_range_to_itr(enum latency_range current_range)
{
- struct e1000_hw *hw = &adapter->hw;
- u16 current_itr;
- u32 new_itr = adapter->itr;
-
- adapter->tx_itr = igbvf_update_itr(adapter, adapter->tx_itr,
- adapter->total_tx_packets,
- adapter->total_tx_bytes);
- /* conservative mode (itr 3) eliminates the lowest_latency setting */
- if (adapter->itr_setting == 3 && adapter->tx_itr == lowest_latency)
- adapter->tx_itr = low_latency;
-
- adapter->rx_itr = igbvf_update_itr(adapter, adapter->rx_itr,
- adapter->total_rx_packets,
- adapter->total_rx_bytes);
- /* conservative mode (itr 3) eliminates the lowest_latency setting */
- if (adapter->itr_setting == 3 && adapter->rx_itr == lowest_latency)
- adapter->rx_itr = low_latency;
+ int new_itr;
- current_itr = max(adapter->rx_itr, adapter->tx_itr);
-
- switch (current_itr) {
+ switch (current_range) {
/* counts and packets in update_itr are dependent on these numbers */
case lowest_latency:
- new_itr = 70000;
+ new_itr = IGBVF_70K_ITR;
break;
case low_latency:
- new_itr = 20000; /* aka hwitr = ~200 */
+ new_itr = IGBVF_20K_ITR;
break;
case bulk_latency:
- new_itr = 4000;
+ new_itr = IGBVF_4K_ITR;
break;
default:
+ new_itr = IGBVF_START_ITR;
break;
}
+ return new_itr;
+}
+
+static void igbvf_set_itr(struct igbvf_adapter *adapter)
+{
+ u32 new_itr;
+
+ adapter->tx_ring->itr_range =
+ igbvf_update_itr(adapter,
+ adapter->tx_ring->itr_val,
+ adapter->total_tx_packets,
+ adapter->total_tx_bytes);
+
+ /* conservative mode (itr 3) eliminates the lowest_latency setting */
+ if (adapter->requested_itr == 3 &&
+ adapter->tx_ring->itr_range == lowest_latency)
+ adapter->tx_ring->itr_range = low_latency;
- if (new_itr != adapter->itr) {
+ new_itr = igbvf_range_to_itr(adapter->tx_ring->itr_range);
+
+
+ if (new_itr != adapter->tx_ring->itr_val) {
+ u32 current_itr = adapter->tx_ring->itr_val;
/*
* this attempts to bias the interrupt rate towards Bulk
* by adding intermediate steps when interrupt rate is
* increasing
*/
- new_itr = new_itr > adapter->itr ?
- min(adapter->itr + (new_itr >> 2), new_itr) :
- new_itr;
- adapter->itr = new_itr;
- adapter->rx_ring->itr_val = 1952;
-
- if (adapter->msix_entries)
- adapter->rx_ring->set_itr = 1;
- else
- ew32(ITR, 1952);
+ new_itr = new_itr > current_itr ?
+ min(current_itr + (new_itr >> 2), new_itr) :
+ new_itr;
+ adapter->tx_ring->itr_val = new_itr;
+
+ adapter->tx_ring->set_itr = 1;
+ }
+
+ adapter->rx_ring->itr_range =
+ igbvf_update_itr(adapter, adapter->rx_ring->itr_val,
+ adapter->total_rx_packets,
+ adapter->total_rx_bytes);
+ if (adapter->requested_itr == 3 &&
+ adapter->rx_ring->itr_range == lowest_latency)
+ adapter->rx_ring->itr_range = low_latency;
+
+ new_itr = igbvf_range_to_itr(adapter->rx_ring->itr_range);
+
+ if (new_itr != adapter->rx_ring->itr_val) {
+ u32 current_itr = adapter->rx_ring->itr_val;
+ new_itr = new_itr > current_itr ?
+ min(current_itr + (new_itr >> 2), new_itr) :
+ new_itr;
+ adapter->rx_ring->itr_val = new_itr;
+
+ adapter->rx_ring->set_itr = 1;
}
}
@@ -835,6 +856,11 @@ static irqreturn_t igbvf_intr_msix_tx(int irq, void *data)
struct e1000_hw *hw = &adapter->hw;
struct igbvf_ring *tx_ring = adapter->tx_ring;
+ if (tx_ring->set_itr) {
+ writel(tx_ring->itr_val,
+ adapter->hw.hw_addr + tx_ring->itr_register);
+ adapter->tx_ring->set_itr = 0;
+ }
adapter->total_tx_bytes = 0;
adapter->total_tx_packets = 0;
@@ -937,19 +963,10 @@ static void igbvf_configure_msix(struct igbvf_adapter *adapter)
igbvf_assign_vector(adapter, IGBVF_NO_QUEUE, 0, vector++);
adapter->eims_enable_mask |= tx_ring->eims_value;
- if (tx_ring->itr_val)
- writel(tx_ring->itr_val,
- hw->hw_addr + tx_ring->itr_register);
- else
- writel(1952, hw->hw_addr + tx_ring->itr_register);
-
+ writel(tx_ring->itr_val, hw->hw_addr + tx_ring->itr_register);
igbvf_assign_vector(adapter, 0, IGBVF_NO_QUEUE, vector++);
adapter->eims_enable_mask |= rx_ring->eims_value;
- if (rx_ring->itr_val)
- writel(rx_ring->itr_val,
- hw->hw_addr + rx_ring->itr_register);
- else
- writel(1952, hw->hw_addr + rx_ring->itr_register);
+ writel(rx_ring->itr_val, hw->hw_addr + rx_ring->itr_register);
/* set vector for other causes, i.e. link changes */
@@ -1027,7 +1044,7 @@ static int igbvf_request_msix(struct igbvf_adapter *adapter)
goto out;
adapter->tx_ring->itr_register = E1000_EITR(vector);
- adapter->tx_ring->itr_val = 1952;
+ adapter->tx_ring->itr_val = adapter->current_itr;
vector++;
err = request_irq(adapter->msix_entries[vector].vector,
@@ -1037,7 +1054,7 @@ static int igbvf_request_msix(struct igbvf_adapter *adapter)
goto out;
adapter->rx_ring->itr_register = E1000_EITR(vector);
- adapter->rx_ring->itr_val = 1952;
+ adapter->rx_ring->itr_val = adapter->current_itr;
vector++;
err = request_irq(adapter->msix_entries[vector].vector,
@@ -1151,7 +1168,7 @@ static int igbvf_poll(struct napi_struct *napi, int budget)
if (work_done < budget) {
napi_complete(napi);
- if (adapter->itr_setting & 3)
+ if (adapter->requested_itr & 3)
igbvf_set_itr(adapter);
if (!test_bit(__IGBVF_DOWN, &adapter->state))
@@ -1521,8 +1538,8 @@ static int __devinit igbvf_sw_init(struct igbvf_adapter *adapter)
adapter->tx_abs_int_delay = 32;
adapter->rx_int_delay = 0;
adapter->rx_abs_int_delay = 8;
- adapter->itr_setting = 3;
- adapter->itr = 20000;
+ adapter->requested_itr = 3;
+ adapter->current_itr = IGBVF_START_ITR;
/* Set various function pointers */
adapter->ei->init_ops(&adapter->hw);
--
1.7.7.6
^ permalink raw reply related [flat|nested] 42+ messages in thread
* [net-next 02/11] e1000: Adding e1000_dump function
2012-02-07 12:33 [net-next 00/11][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
2012-02-07 12:33 ` [net-next 01/11] igbvf: refactor Interrupt Throttle Rate code Jeff Kirsher
@ 2012-02-07 12:33 ` Jeff Kirsher
2012-02-07 15:40 ` Joe Perches
2012-02-07 17:38 ` [net-next 02/11] e1000: Adding " Michal Kubeček
2012-02-07 12:33 ` [net-next 03/11] e1000e: add missing initializers reported when compiling with W=1 Jeff Kirsher
` (9 subsequent siblings)
11 siblings, 2 replies; 42+ messages in thread
From: Jeff Kirsher @ 2012-02-07 12:33 UTC (permalink / raw)
To: davem; +Cc: Tushar Dave, netdev, gospo, sassmann, Jeff Kirsher
From: Tushar Dave <tushar.n.dave@intel.com>
When TX hang occurs e1000_dump prints TX ring, RX ring and Device registers.
Signed-off-by: Tushar Dave <tushar.n.dave@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/e1000/e1000.h | 1 +
drivers/net/ethernet/intel/e1000/e1000_hw.h | 10 +
drivers/net/ethernet/intel/e1000/e1000_main.c | 224 +++++++++++++++++++++++++
3 files changed, 235 insertions(+), 0 deletions(-)
diff --git a/drivers/net/ethernet/intel/e1000/e1000.h b/drivers/net/ethernet/intel/e1000/e1000.h
index 1e15969..2b6cd02 100644
--- a/drivers/net/ethernet/intel/e1000/e1000.h
+++ b/drivers/net/ethernet/intel/e1000/e1000.h
@@ -254,6 +254,7 @@ struct e1000_adapter {
atomic_t tx_fifo_stall;
bool pcix_82544;
bool detect_tx_hung;
+ bool dump_buffers;
/* RX */
bool (*clean_rx)(struct e1000_adapter *adapter,
diff --git a/drivers/net/ethernet/intel/e1000/e1000_hw.h b/drivers/net/ethernet/intel/e1000/e1000_hw.h
index f6c4d7e..11578c8 100644
--- a/drivers/net/ethernet/intel/e1000/e1000_hw.h
+++ b/drivers/net/ethernet/intel/e1000/e1000_hw.h
@@ -895,6 +895,11 @@ struct e1000_ffvt_entry {
#define E1000_FCRTL 0x02160 /* Flow Control Receive Threshold Low - RW */
#define E1000_FCRTH 0x02168 /* Flow Control Receive Threshold High - RW */
#define E1000_PSRCTL 0x02170 /* Packet Split Receive Control - RW */
+#define E1000_RDFH 0x02410 /* RX Data FIFO Head - RW */
+#define E1000_RDFT 0x02418 /* RX Data FIFO Tail - RW */
+#define E1000_RDFHS 0x02420 /* RX Data FIFO Head Saved - RW */
+#define E1000_RDFTS 0x02428 /* RX Data FIFO Tail Saved - RW */
+#define E1000_RDFPC 0x02430 /* RX Data FIFO Packet Count - RW */
#define E1000_RDBAL 0x02800 /* RX Descriptor Base Address Low - RW */
#define E1000_RDBAH 0x02804 /* RX Descriptor Base Address High - RW */
#define E1000_RDLEN 0x02808 /* RX Descriptor Length - RW */
@@ -1074,6 +1079,11 @@ struct e1000_ffvt_entry {
#define E1000_82542_IMC E1000_IMC
#define E1000_82542_RCTL E1000_RCTL
#define E1000_82542_RDTR 0x00108
+#define E1000_82542_RDFH E1000_RDFH
+#define E1000_82542_RDFT E1000_RDFT
+#define E1000_82542_RDFHS E1000_RDFHS
+#define E1000_82542_RDFTS E1000_RDFTS
+#define E1000_82542_RDFPC E1000_RDFPC
#define E1000_82542_RDBAL 0x00110
#define E1000_82542_RDBAH 0x00114
#define E1000_82542_RDLEN 0x00118
diff --git a/drivers/net/ethernet/intel/e1000/e1000_main.c b/drivers/net/ethernet/intel/e1000/e1000_main.c
index 363fd39..1f86a70 100644
--- a/drivers/net/ethernet/intel/e1000/e1000_main.c
+++ b/drivers/net/ethernet/intel/e1000/e1000_main.c
@@ -3239,6 +3239,228 @@ static netdev_tx_t e1000_xmit_frame(struct sk_buff *skb,
return NETDEV_TX_OK;
}
+#define NUM_REGS 38 /* 1 based count */
+static void e1000_regdump(struct e1000_adapter *adapter)
+{
+ struct e1000_hw *hw = &adapter->hw;
+ u32 regs[NUM_REGS];
+ u32 *regs_buff = regs;
+ int i = 0;
+
+ char *reg_name[] = {
+ "CTRL", "STATUS",
+ "RCTL", "RDLEN", "RDH", "RDT", "RDTR",
+ "TCTL", "TDBAL", "TDBAH", "TDLEN", "TDH", "TDT",
+ "TIDV", "TXDCTL", "TADV", "TARC0",
+ "TDBAL1", "TDBAH1", "TDLEN1", "TDH1", "TDT1",
+ "TXDCTL1", "TARC1",
+ "CTRL_EXT", "ERT", "RDBAL", "RDBAH",
+ "TDFH", "TDFT", "TDFHS", "TDFTS", "TDFPC",
+ "RDFH", "RDFT", "RDFHS", "RDFTS", "RDFPC"
+ };
+
+ regs_buff[0] = er32(CTRL);
+ regs_buff[1] = er32(STATUS);
+
+ regs_buff[2] = er32(RCTL);
+ regs_buff[3] = er32(RDLEN);
+ regs_buff[4] = er32(RDH);
+ regs_buff[5] = er32(RDT);
+ regs_buff[6] = er32(RDTR);
+
+ regs_buff[7] = er32(TCTL);
+ regs_buff[8] = er32(TDBAL);
+ regs_buff[9] = er32(TDBAH);
+ regs_buff[10] = er32(TDLEN);
+ regs_buff[11] = er32(TDH);
+ regs_buff[12] = er32(TDT);
+ regs_buff[13] = er32(TIDV);
+ regs_buff[14] = er32(TXDCTL);
+ regs_buff[15] = er32(TADV);
+ regs_buff[16] = er32(TARC0);
+
+ regs_buff[17] = er32(TDBAL1);
+ regs_buff[18] = er32(TDBAH1);
+ regs_buff[19] = er32(TDLEN1);
+ regs_buff[20] = er32(TDH1);
+ regs_buff[21] = er32(TDT1);
+ regs_buff[22] = er32(TXDCTL1);
+ regs_buff[23] = er32(TARC1);
+ regs_buff[24] = er32(CTRL_EXT);
+ regs_buff[25] = er32(ERT);
+ regs_buff[26] = er32(RDBAL0);
+ regs_buff[27] = er32(RDBAH0);
+ regs_buff[28] = er32(TDFH);
+ regs_buff[29] = er32(TDFT);
+ regs_buff[30] = er32(TDFHS);
+ regs_buff[31] = er32(TDFTS);
+ regs_buff[32] = er32(TDFPC);
+ regs_buff[33] = er32(RDFH);
+ regs_buff[34] = er32(RDFT);
+ regs_buff[35] = er32(RDFHS);
+ regs_buff[36] = er32(RDFTS);
+ regs_buff[37] = er32(RDFPC);
+
+ pr_info("Register dump\n");
+ for (i = 0; i < NUM_REGS; i++) {
+ printk(KERN_INFO "%-15s %08x\n",
+ reg_name[i], regs_buff[i]);
+ }
+}
+
+/*
+ * e1000_dump: Print registers, tx ring and rx ring
+ */
+static void e1000_dump(struct e1000_adapter *adapter)
+{
+ /* this code doesn't handle multiple rings */
+ struct e1000_tx_ring *tx_ring = adapter->tx_ring;
+ struct e1000_rx_ring *rx_ring = adapter->rx_ring;
+ int i;
+
+ if (!netif_msg_hw(adapter))
+ return;
+
+ /* Print Registers */
+ e1000_regdump(adapter);
+
+ /*
+ * transmit dump
+ */
+ pr_info("TX Desc ring0 dump\n");
+
+ /* Transmit Descriptor Formats - DEXT[29] is 0 (Legacy) or 1 (Extended)
+ *
+ * Legacy Transmit Descriptor
+ * +--------------------------------------------------------------+
+ * 0 | Buffer Address [63:0] (Reserved on Write Back) |
+ * +--------------------------------------------------------------+
+ * 8 | Special | CSS | Status | CMD | CSO | Length |
+ * +--------------------------------------------------------------+
+ * 63 48 47 36 35 32 31 24 23 16 15 0
+ *
+ * Extended Context Descriptor (DTYP=0x0) for TSO or checksum offload
+ * 63 48 47 40 39 32 31 16 15 8 7 0
+ * +----------------------------------------------------------------+
+ * 0 | TUCSE | TUCS0 | TUCSS | IPCSE | IPCS0 | IPCSS |
+ * +----------------------------------------------------------------+
+ * 8 | MSS | HDRLEN | RSV | STA | TUCMD | DTYP | PAYLEN |
+ * +----------------------------------------------------------------+
+ * 63 48 47 40 39 36 35 32 31 24 23 20 19 0
+ *
+ * Extended Data Descriptor (DTYP=0x1)
+ * +----------------------------------------------------------------+
+ * 0 | Buffer Address [63:0] |
+ * +----------------------------------------------------------------+
+ * 8 | VLAN tag | POPTS | Rsvd | Status | Command | DTYP | DTALEN |
+ * +----------------------------------------------------------------+
+ * 63 48 47 40 39 36 35 32 31 24 23 20 19 0
+ */
+ printk(KERN_INFO "Tc[desc] [Ce CoCsIpceCoS] [MssHlRSCm0Plen] [bi->dma ]"
+ " leng ntw timestmp bi->skb\n");
+ printk(KERN_INFO "Td[desc] [address 63:0 ] [VlaPoRSCm1Dlen] [bi->dma ]"
+ " leng ntw timestmp bi->skb\n");
+
+ if (!netif_msg_tx_done(adapter))
+ goto rx_ring_summary;
+
+ for (i = 0; tx_ring->desc && (i < tx_ring->count); i++) {
+ struct e1000_tx_desc *tx_desc = E1000_TX_DESC(*tx_ring, i);
+ struct e1000_buffer *buffer_info = &tx_ring->buffer_info[i];
+ struct my_u { u64 a; u64 b; };
+ struct my_u *u = (struct my_u *)tx_desc;
+ printk(KERN_INFO "T%c[0x%03X] %016llX %016llX %016llX %04X %3X "
+ "%016llX %p",
+ ((le64_to_cpu(u->b) & (1<<20)) ? 'd' : 'c'), i,
+ le64_to_cpu(u->a), le64_to_cpu(u->b),
+ (u64)buffer_info->dma, buffer_info->length,
+ buffer_info->next_to_watch, (u64)buffer_info->time_stamp,
+ buffer_info->skb);
+ if (i == tx_ring->next_to_use && i == tx_ring->next_to_clean)
+ printk(KERN_CONT" NTC/U\n");
+ else if (i == tx_ring->next_to_use)
+ printk(KERN_CONT " NTU\n");
+ else if (i == tx_ring->next_to_clean)
+ printk(KERN_CONT " NTC\n");
+ else
+ printk(KERN_CONT "\n");
+
+
+ if (netif_msg_pktdata(adapter) && buffer_info->dma != 0)
+ print_hex_dump(KERN_INFO, "", DUMP_PREFIX_ADDRESS,
+ 16, 1, phys_to_virt(buffer_info->dma),
+ buffer_info->length, true);
+ }
+
+rx_ring_summary:
+ /*
+ * receive dump
+ */
+ pr_info("\nRX Desc ring dump\n");
+
+ /* Legacy Receive Descriptor Format
+ *
+ * +-----------------------------------------------------+
+ * | Buffer Address [63:0] |
+ * +-----------------------------------------------------+
+ * | VLAN Tag | Errors | Status 0 | Packet csum | Length |
+ * +-----------------------------------------------------+
+ * 63 48 47 40 39 32 31 16 15 0
+ */
+ printk(KERN_INFO "R[desc] [address 63:0 ] [vl er S cks ln] "
+ "[bi->dma ] [bi->skb]\n");
+
+ if (!netif_msg_rx_status(adapter))
+ goto exit;
+
+ for (i = 0; rx_ring->desc && (i < rx_ring->count); i++) {
+ struct e1000_rx_desc *rx_desc = E1000_RX_DESC(*rx_ring, i);
+ struct e1000_buffer *buffer_info = &rx_ring->buffer_info[i];
+ struct my_u { u64 a; u64 b; };
+ struct my_u *u = (struct my_u *)rx_desc;
+ printk(KERN_INFO "R[0x%03X] %016llX %016llX %016llX %p",
+ i, le64_to_cpu(u->a), le64_to_cpu(u->b),
+ (u64)buffer_info->dma, buffer_info->skb);
+ if (i == rx_ring->next_to_use)
+ printk(KERN_CONT " NTU\n");
+ else if (i == rx_ring->next_to_clean)
+ printk(KERN_CONT " NTC\n");
+ else
+ printk(KERN_CONT "\n");
+
+ if (netif_msg_pktdata(adapter))
+ print_hex_dump(KERN_INFO, "",
+ DUMP_PREFIX_ADDRESS, 16, 1,
+ phys_to_virt(buffer_info->dma),
+ buffer_info->length, true);
+
+ } /* for */
+
+ /* dump the descriptor caches */
+ /* rx */
+ printk(KERN_INFO "e1000: Rx descriptor cache in 64bit format\n");
+ for (i = 0x6000; i <= 0x63FF ; i += 0x10) {
+ printk(KERN_INFO "R%04X: %08X|%08X %08X|%08X\n",
+ i,
+ readl(adapter->hw.hw_addr + i+4),
+ readl(adapter->hw.hw_addr + i),
+ readl(adapter->hw.hw_addr + i+12),
+ readl(adapter->hw.hw_addr + i+8));
+ }
+ /* tx */
+ printk(KERN_INFO "e1000: Tx descriptor cache in 64bit format\n");
+ for (i = 0x7000; i <= 0x73FF ; i += 0x10) {
+ printk(KERN_INFO "T%04X: %08X|%08X %08X|%08X\n",
+ i,
+ readl(adapter->hw.hw_addr + i+4),
+ readl(adapter->hw.hw_addr + i),
+ readl(adapter->hw.hw_addr + i+12),
+ readl(adapter->hw.hw_addr + i+8));
+ }
+exit:
+ return;
+}
+
/**
* e1000_tx_timeout - Respond to a Tx Hang
* @netdev: network interface device structure
@@ -3260,6 +3482,7 @@ static void e1000_reset_task(struct work_struct *work)
if (test_bit(__E1000_DOWN, &adapter->flags))
return;
+ e_err(drv, "Reset adapter\n");
e1000_reinit_safe(adapter);
}
@@ -3677,6 +3900,7 @@ static bool e1000_clean_tx_irq(struct e1000_adapter *adapter,
eop,
jiffies,
eop_desc->upper.fields.status);
+ e1000_dump(adapter);
netif_stop_queue(netdev);
}
}
--
1.7.7.6
^ permalink raw reply related [flat|nested] 42+ messages in thread
* [net-next 03/11] e1000e: add missing initializers reported when compiling with W=1
2012-02-07 12:33 [net-next 00/11][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
2012-02-07 12:33 ` [net-next 01/11] igbvf: refactor Interrupt Throttle Rate code Jeff Kirsher
2012-02-07 12:33 ` [net-next 02/11] e1000: Adding e1000_dump function Jeff Kirsher
@ 2012-02-07 12:33 ` Jeff Kirsher
2012-02-07 12:33 ` [net-next 04/11] e1000e: cleanup - check return values consistently Jeff Kirsher
` (8 subsequent siblings)
11 siblings, 0 replies; 42+ messages in thread
From: Jeff Kirsher @ 2012-02-07 12:33 UTC (permalink / raw)
To: davem; +Cc: Bruce Allan, netdev, gospo, sassmann, Jeff Kirsher
From: Bruce Allan <bruce.w.allan@intel.com>
warning: missing initializer
Signed-off-by: Bruce Allan <bruce.w.allan@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/e1000e/netdev.c | 8 +++++---
1 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
index 1a8dd2f..c05137f 100644
--- a/drivers/net/ethernet/intel/e1000e/netdev.c
+++ b/drivers/net/ethernet/intel/e1000e/netdev.c
@@ -137,7 +137,7 @@ static const struct e1000_reg_info e1000_reg_info_tbl[] = {
{E1000_TDFPC, "TDFPC"},
/* List Terminator */
- {}
+ {0, NULL}
};
/*
@@ -6502,7 +6502,7 @@ static DEFINE_PCI_DEVICE_TABLE(e1000_pci_tbl) = {
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH2_LV_LM), board_pch2lan },
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH2_LV_V), board_pch2lan },
- { } /* terminate list */
+ { 0, 0, 0, 0, 0, 0, 0 } /* terminate list */
};
MODULE_DEVICE_TABLE(pci, e1000_pci_tbl);
@@ -6521,7 +6521,9 @@ static struct pci_driver e1000_driver = {
.probe = e1000_probe,
.remove = __devexit_p(e1000_remove),
#ifdef CONFIG_PM
- .driver.pm = &e1000_pm_ops,
+ .driver = {
+ .pm = &e1000_pm_ops,
+ },
#endif
.shutdown = e1000_shutdown,
.err_handler = &e1000_err_handler
--
1.7.7.6
^ permalink raw reply related [flat|nested] 42+ messages in thread
* [net-next 04/11] e1000e: cleanup - check return values consistently
2012-02-07 12:33 [net-next 00/11][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (2 preceding siblings ...)
2012-02-07 12:33 ` [net-next 03/11] e1000e: add missing initializers reported when compiling with W=1 Jeff Kirsher
@ 2012-02-07 12:33 ` Jeff Kirsher
2012-02-07 12:33 ` [net-next 05/11] e1000e: cleanup e1000_init_mac_params_80003es2lan() Jeff Kirsher
` (7 subsequent siblings)
11 siblings, 0 replies; 42+ messages in thread
From: Jeff Kirsher @ 2012-02-07 12:33 UTC (permalink / raw)
To: davem; +Cc: Bruce Allan, netdev, gospo, sassmann, Jeff Kirsher
From: Bruce Allan <bruce.w.allan@intel.com>
The majority of the e1000e code checks most function return values using a
test like 'if (ret_val)' or 'if (!ret_val)' but there are a few instances
of 'if (ret_val == 0)'. This patch converts the latter to the former for
consistency.
Signed-off-by: Bruce Allan <bruce.w.allan@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/e1000e/ethtool.c | 2 +-
drivers/net/ethernet/intel/e1000e/ich8lan.c | 8 ++++----
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/drivers/net/ethernet/intel/e1000e/ethtool.c b/drivers/net/ethernet/intel/e1000e/ethtool.c
index 92d5b62..f43af46 100644
--- a/drivers/net/ethernet/intel/e1000e/ethtool.c
+++ b/drivers/net/ethernet/intel/e1000e/ethtool.c
@@ -537,7 +537,7 @@ static int e1000_set_eeprom(struct net_device *netdev,
ret_val = e1000_read_nvm(hw, first_word, 1, &eeprom_buff[0]);
ptr++;
}
- if (((eeprom->offset + eeprom->len) & 1) && (ret_val == 0))
+ if (((eeprom->offset + eeprom->len) & 1) && (!ret_val))
/* need read/modify/write of last changed EEPROM word */
/* only the first byte of the word is being modified */
ret_val = e1000_read_nvm(hw, last_word, 1,
diff --git a/drivers/net/ethernet/intel/e1000e/ich8lan.c b/drivers/net/ethernet/intel/e1000e/ich8lan.c
index 907b17b..0e64cc4 100644
--- a/drivers/net/ethernet/intel/e1000e/ich8lan.c
+++ b/drivers/net/ethernet/intel/e1000e/ich8lan.c
@@ -2286,7 +2286,7 @@ static s32 e1000_flash_cycle_init_ich8lan(struct e1000_hw *hw)
}
udelay(1);
}
- if (ret_val == 0) {
+ if (!ret_val) {
/*
* Successful in waiting for previous cycle to timeout,
* now set the Flash Cycle Done.
@@ -2404,7 +2404,7 @@ static s32 e1000_read_flash_data_ich8lan(struct e1000_hw *hw, u32 offset,
udelay(1);
/* Steps */
ret_val = e1000_flash_cycle_init_ich8lan(hw);
- if (ret_val != 0)
+ if (ret_val)
break;
hsflctl.regval = er16flash(ICH_FLASH_HSFCTL);
@@ -2424,7 +2424,7 @@ static s32 e1000_read_flash_data_ich8lan(struct e1000_hw *hw, u32 offset,
* read in (shift in) the Flash Data0, the order is
* least significant byte first msb to lsb
*/
- if (ret_val == 0) {
+ if (!ret_val) {
flash_data = er32flash(ICH_FLASH_FDATA0);
if (size == 1)
*data = (u8)(flash_data & 0x000000FF);
@@ -2936,7 +2936,7 @@ static s32 e1000_erase_flash_bank_ich8lan(struct e1000_hw *hw, u32 bank)
ret_val = e1000_flash_cycle_ich8lan(hw,
ICH_FLASH_ERASE_COMMAND_TIMEOUT);
- if (ret_val == 0)
+ if (!ret_val)
break;
/*
--
1.7.7.6
^ permalink raw reply related [flat|nested] 42+ messages in thread
* [net-next 05/11] e1000e: cleanup e1000_init_mac_params_80003es2lan()
2012-02-07 12:33 [net-next 00/11][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (3 preceding siblings ...)
2012-02-07 12:33 ` [net-next 04/11] e1000e: cleanup - check return values consistently Jeff Kirsher
@ 2012-02-07 12:33 ` Jeff Kirsher
2012-02-07 12:33 ` [net-next 06/11] e1000e: cleanup e1000_init_mac_params_82571() Jeff Kirsher
` (6 subsequent siblings)
11 siblings, 0 replies; 42+ messages in thread
From: Jeff Kirsher @ 2012-02-07 12:33 UTC (permalink / raw)
To: davem; +Cc: Bruce Allan, netdev, gospo, sassmann, Jeff Kirsher
From: Bruce Allan <bruce.w.allan@intel.com>
Combine two switch statements into one, convert a nebulous pointer to one
that is a bit more in keeping with the rest of the driver code and remove
some dead code (there are no 80003es2lan devices with fiber). No change in
functionality, just cosmetic changes.
Signed-off-by: Bruce Allan <bruce.w.allan@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/e1000e/80003es2lan.c | 28 +++++-----------------
1 files changed, 7 insertions(+), 21 deletions(-)
diff --git a/drivers/net/ethernet/intel/e1000e/80003es2lan.c b/drivers/net/ethernet/intel/e1000e/80003es2lan.c
index 82a5d87..9b96961 100644
--- a/drivers/net/ethernet/intel/e1000e/80003es2lan.c
+++ b/drivers/net/ethernet/intel/e1000e/80003es2lan.c
@@ -205,15 +205,20 @@ static s32 e1000_init_mac_params_80003es2lan(struct e1000_adapter *adapter)
{
struct e1000_hw *hw = &adapter->hw;
struct e1000_mac_info *mac = &hw->mac;
- struct e1000_mac_operations *func = &mac->ops;
- /* Set media type */
+ /* Set media type and media-dependent function pointers */
switch (adapter->pdev->device) {
case E1000_DEV_ID_80003ES2LAN_SERDES_DPT:
hw->phy.media_type = e1000_media_type_internal_serdes;
+ mac->ops.check_for_link = e1000e_check_for_serdes_link;
+ mac->ops.setup_physical_interface =
+ e1000e_setup_fiber_serdes_link;
break;
default:
hw->phy.media_type = e1000_media_type_copper;
+ mac->ops.check_for_link = e1000e_check_for_copper_link;
+ mac->ops.setup_physical_interface =
+ e1000_setup_copper_link_80003es2lan;
break;
}
@@ -230,25 +235,6 @@ static s32 e1000_init_mac_params_80003es2lan(struct e1000_adapter *adapter)
/* Adaptive IFS not supported */
mac->adaptive_ifs = false;
- /* check for link */
- switch (hw->phy.media_type) {
- case e1000_media_type_copper:
- func->setup_physical_interface = e1000_setup_copper_link_80003es2lan;
- func->check_for_link = e1000e_check_for_copper_link;
- break;
- case e1000_media_type_fiber:
- func->setup_physical_interface = e1000e_setup_fiber_serdes_link;
- func->check_for_link = e1000e_check_for_fiber_link;
- break;
- case e1000_media_type_internal_serdes:
- func->setup_physical_interface = e1000e_setup_fiber_serdes_link;
- func->check_for_link = e1000e_check_for_serdes_link;
- break;
- default:
- return -E1000_ERR_CONFIG;
- break;
- }
-
/* set lan id for port to determine which phy lock to use */
hw->mac.ops.set_lan_id(hw);
--
1.7.7.6
^ permalink raw reply related [flat|nested] 42+ messages in thread
* [net-next 06/11] e1000e: cleanup e1000_init_mac_params_82571()
2012-02-07 12:33 [net-next 00/11][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (4 preceding siblings ...)
2012-02-07 12:33 ` [net-next 05/11] e1000e: cleanup e1000_init_mac_params_80003es2lan() Jeff Kirsher
@ 2012-02-07 12:33 ` Jeff Kirsher
2012-02-07 12:33 ` [net-next 07/11] e1000e: cleanup e1000_set_phys_id Jeff Kirsher
` (5 subsequent siblings)
11 siblings, 0 replies; 42+ messages in thread
From: Jeff Kirsher @ 2012-02-07 12:33 UTC (permalink / raw)
To: davem; +Cc: Bruce Allan, netdev, gospo, sassmann, Jeff Kirsher
From: Bruce Allan <bruce.w.allan@intel.com>
Combine two switch statements into one, convert a nebulous pointer to one
that is a bit more in keeping with the rest of the driver code and cleanup
some coding style. No change in functionality, just cosmetic changes.
Signed-off-by: Bruce Allan <bruce.w.allan@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/e1000e/82571.c | 72 ++++++++++++-----------------
1 files changed, 30 insertions(+), 42 deletions(-)
diff --git a/drivers/net/ethernet/intel/e1000e/82571.c b/drivers/net/ethernet/intel/e1000e/82571.c
index 844907d..4cadcc7 100644
--- a/drivers/net/ethernet/intel/e1000e/82571.c
+++ b/drivers/net/ethernet/intel/e1000e/82571.c
@@ -239,26 +239,39 @@ static s32 e1000_init_mac_params_82571(struct e1000_adapter *adapter)
{
struct e1000_hw *hw = &adapter->hw;
struct e1000_mac_info *mac = &hw->mac;
- struct e1000_mac_operations *func = &mac->ops;
u32 swsm = 0;
u32 swsm2 = 0;
bool force_clear_smbi = false;
- /* Set media type */
+ /* Set media type and media-dependent function pointers */
switch (adapter->pdev->device) {
case E1000_DEV_ID_82571EB_FIBER:
case E1000_DEV_ID_82572EI_FIBER:
case E1000_DEV_ID_82571EB_QUAD_FIBER:
hw->phy.media_type = e1000_media_type_fiber;
+ mac->ops.setup_physical_interface =
+ e1000_setup_fiber_serdes_link_82571;
+ mac->ops.check_for_link = e1000e_check_for_fiber_link;
+ mac->ops.get_link_up_info =
+ e1000e_get_speed_and_duplex_fiber_serdes;
break;
case E1000_DEV_ID_82571EB_SERDES:
- case E1000_DEV_ID_82572EI_SERDES:
case E1000_DEV_ID_82571EB_SERDES_DUAL:
case E1000_DEV_ID_82571EB_SERDES_QUAD:
+ case E1000_DEV_ID_82572EI_SERDES:
hw->phy.media_type = e1000_media_type_internal_serdes;
+ mac->ops.setup_physical_interface =
+ e1000_setup_fiber_serdes_link_82571;
+ mac->ops.check_for_link = e1000_check_for_serdes_link_82571;
+ mac->ops.get_link_up_info =
+ e1000e_get_speed_and_duplex_fiber_serdes;
break;
default:
hw->phy.media_type = e1000_media_type_copper;
+ mac->ops.setup_physical_interface =
+ e1000_setup_copper_link_82571;
+ mac->ops.check_for_link = e1000e_check_for_copper_link;
+ mac->ops.get_link_up_info = e1000e_get_speed_and_duplex_copper;
break;
}
@@ -269,38 +282,13 @@ static s32 e1000_init_mac_params_82571(struct e1000_adapter *adapter)
/* Adaptive IFS supported */
mac->adaptive_ifs = true;
- /* check for link */
- switch (hw->phy.media_type) {
- case e1000_media_type_copper:
- func->setup_physical_interface = e1000_setup_copper_link_82571;
- func->check_for_link = e1000e_check_for_copper_link;
- func->get_link_up_info = e1000e_get_speed_and_duplex_copper;
- break;
- case e1000_media_type_fiber:
- func->setup_physical_interface =
- e1000_setup_fiber_serdes_link_82571;
- func->check_for_link = e1000e_check_for_fiber_link;
- func->get_link_up_info =
- e1000e_get_speed_and_duplex_fiber_serdes;
- break;
- case e1000_media_type_internal_serdes:
- func->setup_physical_interface =
- e1000_setup_fiber_serdes_link_82571;
- func->check_for_link = e1000_check_for_serdes_link_82571;
- func->get_link_up_info =
- e1000e_get_speed_and_duplex_fiber_serdes;
- break;
- default:
- return -E1000_ERR_CONFIG;
- break;
- }
-
+ /* MAC-specific function pointers */
switch (hw->mac.type) {
case e1000_82573:
- func->set_lan_id = e1000_set_lan_id_single_port;
- func->check_mng_mode = e1000e_check_mng_mode_generic;
- func->led_on = e1000e_led_on_generic;
- func->blink_led = e1000e_blink_led_generic;
+ mac->ops.set_lan_id = e1000_set_lan_id_single_port;
+ mac->ops.check_mng_mode = e1000e_check_mng_mode_generic;
+ mac->ops.led_on = e1000e_led_on_generic;
+ mac->ops.blink_led = e1000e_blink_led_generic;
/* FWSM register */
mac->has_fwsm = true;
@@ -314,14 +302,14 @@ static s32 e1000_init_mac_params_82571(struct e1000_adapter *adapter)
break;
case e1000_82574:
case e1000_82583:
- func->set_lan_id = e1000_set_lan_id_single_port;
- func->check_mng_mode = e1000_check_mng_mode_82574;
- func->led_on = e1000_led_on_82574;
+ mac->ops.set_lan_id = e1000_set_lan_id_single_port;
+ mac->ops.check_mng_mode = e1000_check_mng_mode_82574;
+ mac->ops.led_on = e1000_led_on_82574;
break;
default:
- func->check_mng_mode = e1000e_check_mng_mode_generic;
- func->led_on = e1000e_led_on_generic;
- func->blink_led = e1000e_blink_led_generic;
+ mac->ops.check_mng_mode = e1000e_check_mng_mode_generic;
+ mac->ops.led_on = e1000e_led_on_generic;
+ mac->ops.blink_led = e1000e_blink_led_generic;
/* FWSM register */
mac->has_fwsm = true;
@@ -342,11 +330,11 @@ static s32 e1000_init_mac_params_82571(struct e1000_adapter *adapter)
if (!(swsm2 & E1000_SWSM2_LOCK)) {
/* Only do this for the first interface on this card */
- ew32(SWSM2,
- swsm2 | E1000_SWSM2_LOCK);
+ ew32(SWSM2, swsm2 | E1000_SWSM2_LOCK);
force_clear_smbi = true;
- } else
+ } else {
force_clear_smbi = false;
+ }
break;
default:
force_clear_smbi = true;
--
1.7.7.6
^ permalink raw reply related [flat|nested] 42+ messages in thread
* [net-next 07/11] e1000e: cleanup e1000_set_phys_id
2012-02-07 12:33 [net-next 00/11][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (5 preceding siblings ...)
2012-02-07 12:33 ` [net-next 06/11] e1000e: cleanup e1000_init_mac_params_82571() Jeff Kirsher
@ 2012-02-07 12:33 ` Jeff Kirsher
2012-02-07 12:33 ` [net-next 08/11] e1000e: cleanup - use braces in both branches of a conditional statement Jeff Kirsher
` (4 subsequent siblings)
11 siblings, 0 replies; 42+ messages in thread
From: Jeff Kirsher @ 2012-02-07 12:33 UTC (permalink / raw)
To: davem; +Cc: Bruce Allan, netdev, gospo, sassmann, Jeff Kirsher
From: Bruce Allan <bruce.w.allan@intel.com>
Use the existing hw pointer.
Signed-off-by: Bruce Allan <bruce.w.allan@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/e1000e/ethtool.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/intel/e1000e/ethtool.c b/drivers/net/ethernet/intel/e1000e/ethtool.c
index f43af46..fd2ba38 100644
--- a/drivers/net/ethernet/intel/e1000e/ethtool.c
+++ b/drivers/net/ethernet/intel/e1000e/ethtool.c
@@ -1856,11 +1856,11 @@ static int e1000_set_phys_id(struct net_device *netdev,
break;
case ETHTOOL_ID_ON:
- adapter->hw.mac.ops.led_on(&adapter->hw);
+ hw->mac.ops.led_on(hw);
break;
case ETHTOOL_ID_OFF:
- adapter->hw.mac.ops.led_off(&adapter->hw);
+ hw->mac.ops.led_off(hw);
break;
}
return 0;
--
1.7.7.6
^ permalink raw reply related [flat|nested] 42+ messages in thread
* [net-next 08/11] e1000e: cleanup - use braces in both branches of a conditional statement
2012-02-07 12:33 [net-next 00/11][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (6 preceding siblings ...)
2012-02-07 12:33 ` [net-next 07/11] e1000e: cleanup e1000_set_phys_id Jeff Kirsher
@ 2012-02-07 12:33 ` Jeff Kirsher
2012-02-07 12:33 ` [net-next 09/11] e1000e: fix checkpatch warning from MINMAX test Jeff Kirsher
` (3 subsequent siblings)
11 siblings, 0 replies; 42+ messages in thread
From: Jeff Kirsher @ 2012-02-07 12:33 UTC (permalink / raw)
To: davem; +Cc: Bruce Allan, netdev, gospo, sassmann, Jeff Kirsher
From: Bruce Allan <bruce.w.allan@intel.com>
Signed-off-by: Bruce Allan <bruce.w.allan@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/e1000e/netdev.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
index c05137f..02efae0 100644
--- a/drivers/net/ethernet/intel/e1000e/netdev.c
+++ b/drivers/net/ethernet/intel/e1000e/netdev.c
@@ -3756,8 +3756,9 @@ static int e1000_test_msi_interrupt(struct e1000_adapter *adapter)
if (adapter->flags & FLAG_MSI_TEST_FAILED) {
adapter->int_mode = E1000E_INT_MODE_LEGACY;
e_info("MSI interrupt test failed, using legacy interrupt.\n");
- } else
+ } else {
e_dbg("MSI interrupt test succeeded!\n");
+ }
free_irq(adapter->pdev->irq, netdev);
pci_disable_msi(adapter->pdev);
--
1.7.7.6
^ permalink raw reply related [flat|nested] 42+ messages in thread
* [net-next 09/11] e1000e: fix checkpatch warning from MINMAX test
2012-02-07 12:33 [net-next 00/11][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (7 preceding siblings ...)
2012-02-07 12:33 ` [net-next 08/11] e1000e: cleanup - use braces in both branches of a conditional statement Jeff Kirsher
@ 2012-02-07 12:33 ` Jeff Kirsher
2012-02-07 12:33 ` [net-next 10/11] e1000e: fix sparse warnings with -D__CHECK_ENDIAN__ Jeff Kirsher
` (2 subsequent siblings)
11 siblings, 0 replies; 42+ messages in thread
From: Jeff Kirsher @ 2012-02-07 12:33 UTC (permalink / raw)
To: davem; +Cc: Bruce Allan, netdev, gospo, sassmann, Jeff Kirsher
From: Bruce Allan <bruce.w.allan@intel.com>
WARNING: min() should probably be min_t(unsigned int, 4, skb->data_len)
Signed-off-by: Bruce Allan <bruce.w.allan@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/e1000e/netdev.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
index 02efae0..a9f25fc 100644
--- a/drivers/net/ethernet/intel/e1000e/netdev.c
+++ b/drivers/net/ethernet/intel/e1000e/netdev.c
@@ -5023,7 +5023,7 @@ static netdev_tx_t e1000_xmit_frame(struct sk_buff *skb,
if (skb->data_len && (hdr_len == len)) {
unsigned int pull_size;
- pull_size = min((unsigned int)4, skb->data_len);
+ pull_size = min_t(unsigned int, 4, skb->data_len);
if (!__pskb_pull_tail(skb, pull_size)) {
e_err("__pskb_pull_tail failed.\n");
dev_kfree_skb_any(skb);
--
1.7.7.6
^ permalink raw reply related [flat|nested] 42+ messages in thread
* [net-next 10/11] e1000e: fix sparse warnings with -D__CHECK_ENDIAN__
2012-02-07 12:33 [net-next 00/11][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (8 preceding siblings ...)
2012-02-07 12:33 ` [net-next 09/11] e1000e: fix checkpatch warning from MINMAX test Jeff Kirsher
@ 2012-02-07 12:33 ` Jeff Kirsher
2012-02-07 12:58 ` David Laight
2012-02-07 12:33 ` [net-next 11/11] e1000e: minor whitespace and indentation cleanup Jeff Kirsher
2012-02-07 17:27 ` [net-next 00/11][pull request] Intel Wired LAN Driver Updates David Miller
11 siblings, 1 reply; 42+ messages in thread
From: Jeff Kirsher @ 2012-02-07 12:33 UTC (permalink / raw)
To: davem; +Cc: Bruce Allan, netdev, gospo, sassmann, Jeff Kirsher
From: Bruce Allan <bruce.w.allan@intel.com>
Signed-off-by: Bruce Allan <bruce.w.allan@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/e1000e/ethtool.c | 2 +-
drivers/net/ethernet/intel/e1000e/netdev.c | 15 ++++++++-------
2 files changed, 9 insertions(+), 8 deletions(-)
diff --git a/drivers/net/ethernet/intel/e1000e/ethtool.c b/drivers/net/ethernet/intel/e1000e/ethtool.c
index fd2ba38..f4dc0fa 100644
--- a/drivers/net/ethernet/intel/e1000e/ethtool.c
+++ b/drivers/net/ethernet/intel/e1000e/ethtool.c
@@ -553,7 +553,7 @@ static int e1000_set_eeprom(struct net_device *netdev,
memcpy(ptr, bytes, eeprom->len);
for (i = 0; i < last_word - first_word + 1; i++)
- eeprom_buff[i] = cpu_to_le16(eeprom_buff[i]);
+ cpu_to_le16s(&eeprom_buff[i]);
ret_val = e1000_write_nvm(hw, first_word,
last_word - first_word + 1, eeprom_buff);
diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
index a9f25fc..2ac1164 100644
--- a/drivers/net/ethernet/intel/e1000e/netdev.c
+++ b/drivers/net/ethernet/intel/e1000e/netdev.c
@@ -183,18 +183,18 @@ static void e1000e_dump(struct e1000_adapter *adapter)
struct e1000_ring *tx_ring = adapter->tx_ring;
struct e1000_tx_desc *tx_desc;
struct my_u0 {
- u64 a;
- u64 b;
+ __le64 a;
+ __le64 b;
} *u0;
struct e1000_buffer *buffer_info;
struct e1000_ring *rx_ring = adapter->rx_ring;
union e1000_rx_desc_packet_split *rx_desc_ps;
union e1000_rx_desc_extended *rx_desc;
struct my_u1 {
- u64 a;
- u64 b;
- u64 c;
- u64 d;
+ __le64 a;
+ __le64 b;
+ __le64 c;
+ __le64 d;
} *u1;
u32 staterr;
int i = 0;
@@ -5963,7 +5963,8 @@ static void e1000_eeprom_checks(struct e1000_adapter *adapter)
return;
ret_val = e1000_read_nvm(hw, NVM_INIT_CONTROL2_REG, 1, &buf);
- if (!ret_val && (!(le16_to_cpu(buf) & (1 << 0)))) {
+ le16_to_cpus(&buf);
+ if (!ret_val && (!(buf & (1 << 0)))) {
/* Deep Smart Power Down (DSPD) */
dev_warn(&adapter->pdev->dev,
"Warning: detected DSPD enabled in EEPROM\n");
--
1.7.7.6
^ permalink raw reply related [flat|nested] 42+ messages in thread
* [net-next 11/11] e1000e: minor whitespace and indentation cleanup
2012-02-07 12:33 [net-next 00/11][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (9 preceding siblings ...)
2012-02-07 12:33 ` [net-next 10/11] e1000e: fix sparse warnings with -D__CHECK_ENDIAN__ Jeff Kirsher
@ 2012-02-07 12:33 ` Jeff Kirsher
2012-02-07 17:27 ` [net-next 00/11][pull request] Intel Wired LAN Driver Updates David Miller
11 siblings, 0 replies; 42+ messages in thread
From: Jeff Kirsher @ 2012-02-07 12:33 UTC (permalink / raw)
To: davem; +Cc: Bruce Allan, netdev, gospo, sassmann, Jeff Kirsher
From: Bruce Allan <bruce.w.allan@intel.com>
Cleanup of some whitespace and indentation of a single code block.
Signed-off-by: Bruce Allan <bruce.w.allan@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/e1000e/ich8lan.c | 4 +-
drivers/net/ethernet/intel/e1000e/netdev.c | 76 ++++++++++++++------------
2 files changed, 43 insertions(+), 37 deletions(-)
diff --git a/drivers/net/ethernet/intel/e1000e/ich8lan.c b/drivers/net/ethernet/intel/e1000e/ich8lan.c
index 0e64cc4..5061d4d 100644
--- a/drivers/net/ethernet/intel/e1000e/ich8lan.c
+++ b/drivers/net/ethernet/intel/e1000e/ich8lan.c
@@ -280,8 +280,8 @@ static inline void __ew32flash(struct e1000_hw *hw, unsigned long reg, u32 val)
#define er16flash(reg) __er16flash(hw, (reg))
#define er32flash(reg) __er32flash(hw, (reg))
-#define ew16flash(reg,val) __ew16flash(hw, (reg), (val))
-#define ew32flash(reg,val) __ew32flash(hw, (reg), (val))
+#define ew16flash(reg, val) __ew16flash(hw, (reg), (val))
+#define ew32flash(reg, val) __ew32flash(hw, (reg), (val))
static void e1000_toggle_lanphypc_value_ich8lan(struct e1000_hw *hw)
{
diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
index 2ac1164..293a760 100644
--- a/drivers/net/ethernet/intel/e1000e/netdev.c
+++ b/drivers/net/ethernet/intel/e1000e/netdev.c
@@ -1267,43 +1267,49 @@ static bool e1000_clean_rx_irq_ps(struct e1000_ring *rx_ring, int *work_done,
skb_put(skb, length);
{
- /*
- * this looks ugly, but it seems compiler issues make it
- * more efficient than reusing j
- */
- int l1 = le16_to_cpu(rx_desc->wb.upper.length[0]);
-
- /*
- * page alloc/put takes too long and effects small packet
- * throughput, so unsplit small packets and save the alloc/put
- * only valid in softirq (napi) context to call kmap_*
- */
- if (l1 && (l1 <= copybreak) &&
- ((length + l1) <= adapter->rx_ps_bsize0)) {
- u8 *vaddr;
-
- ps_page = &buffer_info->ps_pages[0];
+ /*
+ * this looks ugly, but it seems compiler issues make
+ * it more efficient than reusing j
+ */
+ int l1 = le16_to_cpu(rx_desc->wb.upper.length[0]);
/*
- * there is no documentation about how to call
- * kmap_atomic, so we can't hold the mapping
- * very long
+ * page alloc/put takes too long and effects small
+ * packet throughput, so unsplit small packets and
+ * save the alloc/put only valid in softirq (napi)
+ * context to call kmap_*
*/
- dma_sync_single_for_cpu(&pdev->dev, ps_page->dma,
- PAGE_SIZE, DMA_FROM_DEVICE);
- vaddr = kmap_atomic(ps_page->page, KM_SKB_DATA_SOFTIRQ);
- memcpy(skb_tail_pointer(skb), vaddr, l1);
- kunmap_atomic(vaddr, KM_SKB_DATA_SOFTIRQ);
- dma_sync_single_for_device(&pdev->dev, ps_page->dma,
- PAGE_SIZE, DMA_FROM_DEVICE);
-
- /* remove the CRC */
- if (!(adapter->flags2 & FLAG2_CRC_STRIPPING))
- l1 -= 4;
-
- skb_put(skb, l1);
- goto copydone;
- } /* if */
+ if (l1 && (l1 <= copybreak) &&
+ ((length + l1) <= adapter->rx_ps_bsize0)) {
+ u8 *vaddr;
+
+ ps_page = &buffer_info->ps_pages[0];
+
+ /*
+ * there is no documentation about how to call
+ * kmap_atomic, so we can't hold the mapping
+ * very long
+ */
+ dma_sync_single_for_cpu(&pdev->dev,
+ ps_page->dma,
+ PAGE_SIZE,
+ DMA_FROM_DEVICE);
+ vaddr = kmap_atomic(ps_page->page,
+ KM_SKB_DATA_SOFTIRQ);
+ memcpy(skb_tail_pointer(skb), vaddr, l1);
+ kunmap_atomic(vaddr, KM_SKB_DATA_SOFTIRQ);
+ dma_sync_single_for_device(&pdev->dev,
+ ps_page->dma,
+ PAGE_SIZE,
+ DMA_FROM_DEVICE);
+
+ /* remove the CRC */
+ if (!(adapter->flags2 & FLAG2_CRC_STRIPPING))
+ l1 -= 4;
+
+ skb_put(skb, l1);
+ goto copydone;
+ } /* if */
}
for (j = 0; j < PS_PAGE_BUFFERS; j++) {
@@ -4969,7 +4975,7 @@ static int e1000_maybe_stop_tx(struct e1000_ring *tx_ring, int size)
return __e1000_maybe_stop_tx(tx_ring, size);
}
-#define TXD_USE_COUNT(S, X) (((S) >> (X)) + 1 )
+#define TXD_USE_COUNT(S, X) (((S) >> (X)) + 1)
static netdev_tx_t e1000_xmit_frame(struct sk_buff *skb,
struct net_device *netdev)
{
--
1.7.7.6
^ permalink raw reply related [flat|nested] 42+ messages in thread
* RE: [net-next 10/11] e1000e: fix sparse warnings with -D__CHECK_ENDIAN__
2012-02-07 12:33 ` [net-next 10/11] e1000e: fix sparse warnings with -D__CHECK_ENDIAN__ Jeff Kirsher
@ 2012-02-07 12:58 ` David Laight
2012-02-07 17:16 ` David Miller
0 siblings, 1 reply; 42+ messages in thread
From: David Laight @ 2012-02-07 12:58 UTC (permalink / raw)
To: Jeff Kirsher, davem; +Cc: Bruce Allan, netdev, gospo, sassmann
> for (i = 0; i < last_word - first_word + 1; i++)
> - eeprom_buff[i] = cpu_to_le16(eeprom_buff[i]);
> + cpu_to_le16s(&eeprom_buff[i]);
The old version is likely to generate much better code.
David
^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: [net-next 02/11] e1000: Adding e1000_dump function
2012-02-07 12:33 ` [net-next 02/11] e1000: Adding e1000_dump function Jeff Kirsher
@ 2012-02-07 15:40 ` Joe Perches
2012-02-07 18:19 ` [PATCH net-next] e1000: Neaten " Joe Perches
2012-02-07 17:38 ` [net-next 02/11] e1000: Adding " Michal Kubeček
1 sibling, 1 reply; 42+ messages in thread
From: Joe Perches @ 2012-02-07 15:40 UTC (permalink / raw)
To: Jeff Kirsher; +Cc: davem, Tushar Dave, netdev, gospo, sassmann
On Tue, 2012-02-07 at 04:33 -0800, Jeff Kirsher wrote:
> diff --git a/drivers/net/ethernet/intel/e1000/e1000_main.c b/drivers/net/ethernet/intel/e1000/e1000_main.c
trivia:
> @@ -3239,6 +3239,228 @@ static netdev_tx_t e1000_xmit_frame(struct sk_buff *skb,
> return NETDEV_TX_OK;
> }
>
> +#define NUM_REGS 38 /* 1 based count */
> +static void e1000_regdump(struct e1000_adapter *adapter)
> +{
> + struct e1000_hw *hw = &adapter->hw;
> + u32 regs[NUM_REGS];
> + u32 *regs_buff = regs;
> + int i = 0;
> +
> + char *reg_name[] = {
static const char * const reg_name[]
(and the layout is poor)
> + "CTRL", "STATUS",
> + "RCTL", "RDLEN", "RDH", "RDT", "RDTR",
> + "TCTL", "TDBAL", "TDBAH", "TDLEN", "TDH", "TDT",
> + "TIDV", "TXDCTL", "TADV", "TARC0",
> + "TDBAL1", "TDBAH1", "TDLEN1", "TDH1", "TDT1",
> + "TXDCTL1", "TARC1",
> + "CTRL_EXT", "ERT", "RDBAL", "RDBAH",
> + "TDFH", "TDFT", "TDFHS", "TDFTS", "TDFPC",
> + "RDFH", "RDFT", "RDFHS", "RDFTS", "RDFPC"
> + };
> + pr_info("Register dump\n");
> + for (i = 0; i < NUM_REGS; i++) {
> + printk(KERN_INFO "%-15s %08x\n",
> + reg_name[i], regs_buff[i]);
> + }
pr_info(%-15s %08x\n", reg_name[i], regs_buff[i]);
[]
> +static void e1000_dump(struct e1000_adapter *adapter)
[]
> + printk(KERN_INFO "Tc[desc] [Ce CoCsIpceCoS] [MssHlRSCm0Plen] [bi->dma ]"
> + " leng ntw timestmp bi->skb\n");
> + printk(KERN_INFO "Td[desc] [address 63:0 ] [VlaPoRSCm1Dlen] [bi->dma ]"
> + " leng ntw timestmp bi->skb\n");
pr_info
> +
> + if (!netif_msg_tx_done(adapter))
> + goto rx_ring_summary;
> +
> + for (i = 0; tx_ring->desc && (i < tx_ring->count); i++) {
> + struct e1000_tx_desc *tx_desc = E1000_TX_DESC(*tx_ring, i);
> + struct e1000_buffer *buffer_info = &tx_ring->buffer_info[i];
> + struct my_u { u64 a; u64 b; };
> + struct my_u *u = (struct my_u *)tx_desc;
> + printk(KERN_INFO "T%c[0x%03X] %016llX %016llX %016llX %04X %3X "
> + "%016llX %p",
> + ((le64_to_cpu(u->b) & (1<<20)) ? 'd' : 'c'), i,
> + le64_to_cpu(u->a), le64_to_cpu(u->b),
> + (u64)buffer_info->dma, buffer_info->length,
> + buffer_info->next_to_watch, (u64)buffer_info->time_stamp,
> + buffer_info->skb);
> + if (i == tx_ring->next_to_use &&bet i == tx_ring->next_to_clean)
> + printk(KERN_CONT" NTC/U\n");
> + else if (i == tx_ring->next_to_use)
> + printk(KERN_CONT " NTU\n");
> + else if (i == tx_ring->next_to_clean)
> + printk(KERN_CONT " NTC\n");
> + else
> + printk(KERN_CONT "\n");
> +
better to use a temporary char * for NTC/NTU/NTC/""
and use a single pr_info()
> + for (i = 0; rx_ring->desc && (i < rx_ring->count); i++) {
> + struct e1000_rx_desc *rx_desc = E1000_RX_DESC(*rx_ring, i);
> + struct e1000_buffer *buffer_info = &rx_ring->buffer_info[i];
> + struct my_u { u64 a; u64 b; };
> + struct my_u *u = (struct my_u *)rx_desc;
> + printk(KERN_INFO "R[0x%03X] %016llX %016llX %016llX %p",
> + i, le64_to_cpu(u->a), le64_to_cpu(u->b),
> + (u64)buffer_info->dma, buffer_info->skb);
> + if (i == rx_ring->next_to_use)
> + printk(KERN_CONT " NTU\n");
> + else if (i == rx_ring->next_to_clean)
> + printk(KERN_CONT " NTC\n");
> + else
> + printk(KERN_CONT "\n");
temporary here too
^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: [net-next 10/11] e1000e: fix sparse warnings with -D__CHECK_ENDIAN__
2012-02-07 12:58 ` David Laight
@ 2012-02-07 17:16 ` David Miller
0 siblings, 0 replies; 42+ messages in thread
From: David Miller @ 2012-02-07 17:16 UTC (permalink / raw)
To: David.Laight; +Cc: jeffrey.t.kirsher, bruce.w.allan, netdev, gospo, sassmann
From: "David Laight" <David.Laight@ACULAB.COM>
Date: Tue, 7 Feb 2012 12:58:35 -0000
>
>> for (i = 0; i < last_word - first_word + 1; i++)
>> - eeprom_buff[i] = cpu_to_le16(eeprom_buff[i]);
>> + cpu_to_le16s(&eeprom_buff[i]);
>
> The old version is likely to generate much better code.
Not on cpus that have swap-endian loads and stores.
^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: [net-next 00/11][pull request] Intel Wired LAN Driver Updates
2012-02-07 12:33 [net-next 00/11][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (10 preceding siblings ...)
2012-02-07 12:33 ` [net-next 11/11] e1000e: minor whitespace and indentation cleanup Jeff Kirsher
@ 2012-02-07 17:27 ` David Miller
11 siblings, 0 replies; 42+ messages in thread
From: David Miller @ 2012-02-07 17:27 UTC (permalink / raw)
To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Tue, 7 Feb 2012 04:33:47 -0800
> The following series contains updates to e1000, igbvf and e1000e.
> Majority of the updates are to e1000e and do the following:
> - cleanup 82571 and 80003es2lan code
> - fix checkpatch and sparse warnings
> - fix whitespace/indentation
> - add missing initializers
>
> The following are changes since commit 59d74026fa4b5df72a268f1e9578af500154ad07:
> Merge branch 'for-davem' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-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] 42+ messages in thread
* Re: [net-next 02/11] e1000: Adding e1000_dump function
2012-02-07 12:33 ` [net-next 02/11] e1000: Adding e1000_dump function Jeff Kirsher
2012-02-07 15:40 ` Joe Perches
@ 2012-02-07 17:38 ` Michal Kubeček
2012-02-08 18:39 ` Dave, Tushar N
1 sibling, 1 reply; 42+ messages in thread
From: Michal Kubeček @ 2012-02-07 17:38 UTC (permalink / raw)
To: netdev; +Cc: Jeff Kirsher, davem, Tushar Dave, gospo, sassmann, jbeulich
On Tuesday 07 of February 2012 04:33EN, Jeff Kirsher wrote:
> + if (netif_msg_pktdata(adapter) && buffer_info->dma != 0)
> + print_hex_dump(KERN_INFO, "", DUMP_PREFIX_ADDRESS,
> + 16, 1, phys_to_virt(buffer_info->dma),
> + buffer_info->length, true);
This might cause problems in Xen environment, we encountered a crash in
e1000e where phys_to_virt() is used the same way. I'm not familiar with
the details but this is what Jan Beulich wrote about it:
> And the use of phys_to_virt() here seems wrong - buffer_info->dma,
> afaict, is being obtained via the dma_map_*() APIs, which do NOT
> return a physical address (the fact that what they return is identical
> to the corresponding physical address on native doesn't mean this is
> universally so).
>
> bus_to_virt() is what should be used here on Xen (though that isn't
> universally correct either afaik, but there simply is no
> dma_to_virt(); it *is* consistent on x86 and ia64 at least, while
> ppc64 is lacking a definition altogether [I would be very surprised
> though if this use of phys_to_virt() was correct on this arch, given
> that e.g. dma_direct_map_page() uses get_dma_offset() to obtain the
> DMA address]).
Michal Kubeček
^ permalink raw reply [flat|nested] 42+ messages in thread
* [PATCH net-next] e1000: Neaten e1000_dump function
2012-02-07 15:40 ` Joe Perches
@ 2012-02-07 18:19 ` Joe Perches
2012-02-07 19:09 ` Dave, Tushar N
0 siblings, 1 reply; 42+ messages in thread
From: Joe Perches @ 2012-02-07 18:19 UTC (permalink / raw)
To: Jeff Kirsher; +Cc: davem, Tushar Dave, netdev, gospo, sassmann
Use pr_<level> for printk
Use temporary instead of multiple pr_conts
Coalesce formats.
Save a few bytes of object code too:
$ size drivers/net/ethernet/intel/e1000/e1000_main.o*
text data bss dec hex filename
60507 369 14120 74996 124f4 drivers/net/ethernet/intel/e1000/e1000_main.o.new
60717 369 14176 75262 125fe drivers/net/ethernet/intel/e1000/e1000_main.o.old
Signed-off-by: Joe Perches <joe@perches.com>
---
diff --git a/drivers/net/ethernet/intel/e1000/e1000_main.c b/drivers/net/ethernet/intel/e1000/e1000_main.c
index 1f86a70..1370057 100644
--- a/drivers/net/ethernet/intel/e1000/e1000_main.c
+++ b/drivers/net/ethernet/intel/e1000/e1000_main.c
@@ -3247,16 +3247,16 @@ static void e1000_regdump(struct e1000_adapter *adapter)
u32 *regs_buff = regs;
int i = 0;
- char *reg_name[] = {
- "CTRL", "STATUS",
- "RCTL", "RDLEN", "RDH", "RDT", "RDTR",
- "TCTL", "TDBAL", "TDBAH", "TDLEN", "TDH", "TDT",
- "TIDV", "TXDCTL", "TADV", "TARC0",
- "TDBAL1", "TDBAH1", "TDLEN1", "TDH1", "TDT1",
- "TXDCTL1", "TARC1",
- "CTRL_EXT", "ERT", "RDBAL", "RDBAH",
- "TDFH", "TDFT", "TDFHS", "TDFTS", "TDFPC",
- "RDFH", "RDFT", "RDFHS", "RDFTS", "RDFPC"
+ static const char * const reg_name[] = {
+ "CTRL", "STATUS",
+ "RCTL", "RDLEN", "RDH", "RDT", "RDTR",
+ "TCTL", "TDBAL", "TDBAH", "TDLEN", "TDH", "TDT",
+ "TIDV", "TXDCTL", "TADV", "TARC0",
+ "TDBAL1", "TDBAH1", "TDLEN1", "TDH1", "TDT1",
+ "TXDCTL1", "TARC1",
+ "CTRL_EXT", "ERT", "RDBAL", "RDBAH",
+ "TDFH", "TDFT", "TDFHS", "TDFTS", "TDFPC",
+ "RDFH", "RDFT", "RDFHS", "RDFTS", "RDFPC"
};
regs_buff[0] = er32(CTRL);
@@ -3302,10 +3302,8 @@ static void e1000_regdump(struct e1000_adapter *adapter)
regs_buff[37] = er32(RDFPC);
pr_info("Register dump\n");
- for (i = 0; i < NUM_REGS; i++) {
- printk(KERN_INFO "%-15s %08x\n",
- reg_name[i], regs_buff[i]);
- }
+ for (i = 0; i < NUM_REGS; i++)
+ pr_info("%-15s %08x\n", reg_name[i], regs_buff[i]);
}
/*
@@ -3356,10 +3354,8 @@ static void e1000_dump(struct e1000_adapter *adapter)
* +----------------------------------------------------------------+
* 63 48 47 40 39 36 35 32 31 24 23 20 19 0
*/
- printk(KERN_INFO "Tc[desc] [Ce CoCsIpceCoS] [MssHlRSCm0Plen] [bi->dma ]"
- " leng ntw timestmp bi->skb\n");
- printk(KERN_INFO "Td[desc] [address 63:0 ] [VlaPoRSCm1Dlen] [bi->dma ]"
- " leng ntw timestmp bi->skb\n");
+ pr_info("Tc[desc] [Ce CoCsIpceCoS] [MssHlRSCm0Plen] [bi->dma ] leng ntw timestmp bi->skb\n");
+ pr_info("Td[desc] [address 63:0 ] [VlaPoRSCm1Dlen] [bi->dma ] leng ntw timestmp bi->skb\n");
if (!netif_msg_tx_done(adapter))
goto rx_ring_summary;
@@ -3369,21 +3365,23 @@ static void e1000_dump(struct e1000_adapter *adapter)
struct e1000_buffer *buffer_info = &tx_ring->buffer_info[i];
struct my_u { u64 a; u64 b; };
struct my_u *u = (struct my_u *)tx_desc;
- printk(KERN_INFO "T%c[0x%03X] %016llX %016llX %016llX %04X %3X "
- "%016llX %p",
- ((le64_to_cpu(u->b) & (1<<20)) ? 'd' : 'c'), i,
- le64_to_cpu(u->a), le64_to_cpu(u->b),
- (u64)buffer_info->dma, buffer_info->length,
- buffer_info->next_to_watch, (u64)buffer_info->time_stamp,
- buffer_info->skb);
+ const char *type;
+
if (i == tx_ring->next_to_use && i == tx_ring->next_to_clean)
- printk(KERN_CONT" NTC/U\n");
+ type = "NTC/U";
else if (i == tx_ring->next_to_use)
- printk(KERN_CONT " NTU\n");
+ type = "NTU";
else if (i == tx_ring->next_to_clean)
- printk(KERN_CONT " NTC\n");
+ type = "NTC";
else
- printk(KERN_CONT "\n");
+ type = "";
+
+ pr_info("T%c[0x%03X] %016llX %016llX %016llX %04X %3X %016llX %p %s\n",
+ ((le64_to_cpu(u->b) & (1<<20)) ? 'd' : 'c'), i,
+ le64_to_cpu(u->a), le64_to_cpu(u->b),
+ (u64)buffer_info->dma, buffer_info->length,
+ buffer_info->next_to_watch,
+ (u64)buffer_info->time_stamp, buffer_info->skb, type);
if (netif_msg_pktdata(adapter) && buffer_info->dma != 0)
@@ -3407,8 +3405,7 @@ rx_ring_summary:
* +-----------------------------------------------------+
* 63 48 47 40 39 32 31 16 15 0
*/
- printk(KERN_INFO "R[desc] [address 63:0 ] [vl er S cks ln] "
- "[bi->dma ] [bi->skb]\n");
+ pr_info("R[desc] [address 63:0 ] [vl er S cks ln] [bi->dma ] [bi->skb]\n");
if (!netif_msg_rx_status(adapter))
goto exit;
@@ -3418,15 +3415,18 @@ rx_ring_summary:
struct e1000_buffer *buffer_info = &rx_ring->buffer_info[i];
struct my_u { u64 a; u64 b; };
struct my_u *u = (struct my_u *)rx_desc;
- printk(KERN_INFO "R[0x%03X] %016llX %016llX %016llX %p",
- i, le64_to_cpu(u->a), le64_to_cpu(u->b),
- (u64)buffer_info->dma, buffer_info->skb);
+ const char *type;
+
if (i == rx_ring->next_to_use)
- printk(KERN_CONT " NTU\n");
+ type = "NTU";
else if (i == rx_ring->next_to_clean)
- printk(KERN_CONT " NTC\n");
+ type = "NTC";
else
- printk(KERN_CONT "\n");
+ type = "";
+
+ pr_info("R[0x%03X] %016llX %016llX %016llX %p %s\n",
+ i, le64_to_cpu(u->a), le64_to_cpu(u->b),
+ (u64)buffer_info->dma, buffer_info->skb, type);
if (netif_msg_pktdata(adapter))
print_hex_dump(KERN_INFO, "",
@@ -3438,24 +3438,24 @@ rx_ring_summary:
/* dump the descriptor caches */
/* rx */
- printk(KERN_INFO "e1000: Rx descriptor cache in 64bit format\n");
+ pr_info("Rx descriptor cache in 64bit format\n");
for (i = 0x6000; i <= 0x63FF ; i += 0x10) {
- printk(KERN_INFO "R%04X: %08X|%08X %08X|%08X\n",
- i,
- readl(adapter->hw.hw_addr + i+4),
- readl(adapter->hw.hw_addr + i),
- readl(adapter->hw.hw_addr + i+12),
- readl(adapter->hw.hw_addr + i+8));
+ pr_info("R%04X: %08X|%08X %08X|%08X\n",
+ i,
+ readl(adapter->hw.hw_addr + i+4),
+ readl(adapter->hw.hw_addr + i),
+ readl(adapter->hw.hw_addr + i+12),
+ readl(adapter->hw.hw_addr + i+8));
}
/* tx */
- printk(KERN_INFO "e1000: Tx descriptor cache in 64bit format\n");
+ pr_info("Tx descriptor cache in 64bit format\n");
for (i = 0x7000; i <= 0x73FF ; i += 0x10) {
- printk(KERN_INFO "T%04X: %08X|%08X %08X|%08X\n",
- i,
- readl(adapter->hw.hw_addr + i+4),
- readl(adapter->hw.hw_addr + i),
- readl(adapter->hw.hw_addr + i+12),
- readl(adapter->hw.hw_addr + i+8));
+ pr_info("T%04X: %08X|%08X %08X|%08X\n",
+ i,
+ readl(adapter->hw.hw_addr + i+4),
+ readl(adapter->hw.hw_addr + i),
+ readl(adapter->hw.hw_addr + i+12),
+ readl(adapter->hw.hw_addr + i+8));
}
exit:
return;
^ permalink raw reply related [flat|nested] 42+ messages in thread
* RE: [PATCH net-next] e1000: Neaten e1000_dump function
2012-02-07 18:19 ` [PATCH net-next] e1000: Neaten " Joe Perches
@ 2012-02-07 19:09 ` Dave, Tushar N
0 siblings, 0 replies; 42+ messages in thread
From: Dave, Tushar N @ 2012-02-07 19:09 UTC (permalink / raw)
To: Joe Perches, Kirsher, Jeffrey T
Cc: davem@davemloft.net, netdev@vger.kernel.org, gospo@redhat.com,
sassmann@redhat.com
Joe,
Thanks for doing the work.
I will send follow-up patch.
-Tushar
>-----Original Message-----
>From: Joe Perches [mailto:joe@perches.com]
>Sent: Tuesday, February 07, 2012 10:20 AM
>To: Kirsher, Jeffrey T
>Cc: davem@davemloft.net; Dave, Tushar N; netdev@vger.kernel.org;
>gospo@redhat.com; sassmann@redhat.com
>Subject: [PATCH net-next] e1000: Neaten e1000_dump function
>
>Use pr_<level> for printk
>Use temporary instead of multiple pr_conts
>Coalesce formats.
>
>Save a few bytes of object code too:
>
>$ size drivers/net/ethernet/intel/e1000/e1000_main.o*
> text data bss dec hex filename
> 60507 369 14120 74996 124f4
> drivers/net/ethernet/intel/e1000/e1000_main.o.new
> 60717 369 14176 75262 125fe
> drivers/net/ethernet/intel/e1000/e1000_main.o.old
>
>Signed-off-by: Joe Perches <joe@perches.com>
>---
>diff --git a/drivers/net/ethernet/intel/e1000/e1000_main.c
>b/drivers/net/ethernet/intel/e1000/e1000_main.c
>index 1f86a70..1370057 100644
>--- a/drivers/net/ethernet/intel/e1000/e1000_main.c
>+++ b/drivers/net/ethernet/intel/e1000/e1000_main.c
>@@ -3247,16 +3247,16 @@ static void e1000_regdump(struct e1000_adapter
>*adapter)
> u32 *regs_buff = regs;
> int i = 0;
>
>- char *reg_name[] = {
>- "CTRL", "STATUS",
>- "RCTL", "RDLEN", "RDH", "RDT", "RDTR",
>- "TCTL", "TDBAL", "TDBAH", "TDLEN", "TDH", "TDT",
>- "TIDV", "TXDCTL", "TADV", "TARC0",
>- "TDBAL1", "TDBAH1", "TDLEN1", "TDH1", "TDT1",
>- "TXDCTL1", "TARC1",
>- "CTRL_EXT", "ERT", "RDBAL", "RDBAH",
>- "TDFH", "TDFT", "TDFHS", "TDFTS", "TDFPC",
>- "RDFH", "RDFT", "RDFHS", "RDFTS", "RDFPC"
>+ static const char * const reg_name[] = {
>+ "CTRL", "STATUS",
>+ "RCTL", "RDLEN", "RDH", "RDT", "RDTR",
>+ "TCTL", "TDBAL", "TDBAH", "TDLEN", "TDH", "TDT",
>+ "TIDV", "TXDCTL", "TADV", "TARC0",
>+ "TDBAL1", "TDBAH1", "TDLEN1", "TDH1", "TDT1",
>+ "TXDCTL1", "TARC1",
>+ "CTRL_EXT", "ERT", "RDBAL", "RDBAH",
>+ "TDFH", "TDFT", "TDFHS", "TDFTS", "TDFPC",
>+ "RDFH", "RDFT", "RDFHS", "RDFTS", "RDFPC"
> };
>
> regs_buff[0] = er32(CTRL);
>@@ -3302,10 +3302,8 @@ static void e1000_regdump(struct e1000_adapter
>*adapter)
> regs_buff[37] = er32(RDFPC);
>
> pr_info("Register dump\n");
>- for (i = 0; i < NUM_REGS; i++) {
>- printk(KERN_INFO "%-15s %08x\n",
>- reg_name[i], regs_buff[i]);
>- }
>+ for (i = 0; i < NUM_REGS; i++)
>+ pr_info("%-15s %08x\n", reg_name[i], regs_buff[i]);
> }
>
> /*
>@@ -3356,10 +3354,8 @@ static void e1000_dump(struct e1000_adapter
>*adapter)
> * +--------------------------------------------------------------
>--+
> * 63 48 47 40 39 36 35 32 31 24 23 20 19
>0
> */
>- printk(KERN_INFO "Tc[desc] [Ce CoCsIpceCoS] [MssHlRSCm0Plen]
>[bi->dma ]"
>- " leng ntw timestmp bi->skb\n");
>- printk(KERN_INFO "Td[desc] [address 63:0 ] [VlaPoRSCm1Dlen]
>[bi->dma ]"
>- " leng ntw timestmp bi->skb\n");
>+ pr_info("Tc[desc] [Ce CoCsIpceCoS] [MssHlRSCm0Plen] [bi->dma
>] leng ntw timestmp bi->skb\n");
>+ pr_info("Td[desc] [address 63:0 ] [VlaPoRSCm1Dlen] [bi->dma
>] leng ntw timestmp bi->skb\n");
>
> if (!netif_msg_tx_done(adapter))
> goto rx_ring_summary;
>@@ -3369,21 +3365,23 @@ static void e1000_dump(struct e1000_adapter
>*adapter)
> struct e1000_buffer *buffer_info = &tx_ring->buffer_info[i];
> struct my_u { u64 a; u64 b; };
> struct my_u *u = (struct my_u *)tx_desc;
>- printk(KERN_INFO "T%c[0x%03X] %016llX %016llX %016llX %04X
>%3X "
>- "%016llX %p",
>- ((le64_to_cpu(u->b) & (1<<20)) ? 'd' : 'c'), i,
>- le64_to_cpu(u->a), le64_to_cpu(u->b),
>- (u64)buffer_info->dma, buffer_info->length,
>- buffer_info->next_to_watch, (u64)buffer_info-
>>time_stamp,
>- buffer_info->skb);
>+ const char *type;
>+
> if (i == tx_ring->next_to_use && i == tx_ring->next_to_clean)
>- printk(KERN_CONT" NTC/U\n");
>+ type = "NTC/U";
> else if (i == tx_ring->next_to_use)
>- printk(KERN_CONT " NTU\n");
>+ type = "NTU";
> else if (i == tx_ring->next_to_clean)
>- printk(KERN_CONT " NTC\n");
>+ type = "NTC";
> else
>- printk(KERN_CONT "\n");
>+ type = "";
>+
>+ pr_info("T%c[0x%03X] %016llX %016llX %016llX %04X %3X
>%016llX %p %s\n",
>+ ((le64_to_cpu(u->b) & (1<<20)) ? 'd' : 'c'), i,
>+ le64_to_cpu(u->a), le64_to_cpu(u->b),
>+ (u64)buffer_info->dma, buffer_info->length,
>+ buffer_info->next_to_watch,
>+ (u64)buffer_info->time_stamp, buffer_info->skb, type);
>
>
> if (netif_msg_pktdata(adapter) && buffer_info->dma != 0)
>@@ -3407,8 +3405,7 @@ rx_ring_summary:
> * +-----------------------------------------------------+
> * 63 48 47 40 39 32 31 16 15 0
> */
>- printk(KERN_INFO "R[desc] [address 63:0 ] [vl er S cks ln] "
>- "[bi->dma ] [bi->skb]\n");
>+ pr_info("R[desc] [address 63:0 ] [vl er S cks ln] [bi->dma
>] [bi->skb]\n");
>
> if (!netif_msg_rx_status(adapter))
> goto exit;
>@@ -3418,15 +3415,18 @@ rx_ring_summary:
> struct e1000_buffer *buffer_info = &rx_ring->buffer_info[i];
> struct my_u { u64 a; u64 b; };
> struct my_u *u = (struct my_u *)rx_desc;
>- printk(KERN_INFO "R[0x%03X] %016llX %016llX %016llX %p",
>- i, le64_to_cpu(u->a), le64_to_cpu(u->b),
>- (u64)buffer_info->dma, buffer_info->skb);
>+ const char *type;
>+
> if (i == rx_ring->next_to_use)
>- printk(KERN_CONT " NTU\n");
>+ type = "NTU";
> else if (i == rx_ring->next_to_clean)
>- printk(KERN_CONT " NTC\n");
>+ type = "NTC";
> else
>- printk(KERN_CONT "\n");
>+ type = "";
>+
>+ pr_info("R[0x%03X] %016llX %016llX %016llX %p %s\n",
>+ i, le64_to_cpu(u->a), le64_to_cpu(u->b),
>+ (u64)buffer_info->dma, buffer_info->skb, type);
>
> if (netif_msg_pktdata(adapter))
> print_hex_dump(KERN_INFO, "",
>@@ -3438,24 +3438,24 @@ rx_ring_summary:
>
> /* dump the descriptor caches */
> /* rx */
>- printk(KERN_INFO "e1000: Rx descriptor cache in 64bit format\n");
>+ pr_info("Rx descriptor cache in 64bit format\n");
> for (i = 0x6000; i <= 0x63FF ; i += 0x10) {
>- printk(KERN_INFO "R%04X: %08X|%08X %08X|%08X\n",
>- i,
>- readl(adapter->hw.hw_addr + i+4),
>- readl(adapter->hw.hw_addr + i),
>- readl(adapter->hw.hw_addr + i+12),
>- readl(adapter->hw.hw_addr + i+8));
>+ pr_info("R%04X: %08X|%08X %08X|%08X\n",
>+ i,
>+ readl(adapter->hw.hw_addr + i+4),
>+ readl(adapter->hw.hw_addr + i),
>+ readl(adapter->hw.hw_addr + i+12),
>+ readl(adapter->hw.hw_addr + i+8));
> }
> /* tx */
>- printk(KERN_INFO "e1000: Tx descriptor cache in 64bit format\n");
>+ pr_info("Tx descriptor cache in 64bit format\n");
> for (i = 0x7000; i <= 0x73FF ; i += 0x10) {
>- printk(KERN_INFO "T%04X: %08X|%08X %08X|%08X\n",
>- i,
>- readl(adapter->hw.hw_addr + i+4),
>- readl(adapter->hw.hw_addr + i),
>- readl(adapter->hw.hw_addr + i+12),
>- readl(adapter->hw.hw_addr + i+8));
>+ pr_info("T%04X: %08X|%08X %08X|%08X\n",
>+ i,
>+ readl(adapter->hw.hw_addr + i+4),
>+ readl(adapter->hw.hw_addr + i),
>+ readl(adapter->hw.hw_addr + i+12),
>+ readl(adapter->hw.hw_addr + i+8));
> }
> exit:
> return;
>
^ permalink raw reply [flat|nested] 42+ messages in thread
* RE: [net-next 02/11] e1000: Adding e1000_dump function
2012-02-07 17:38 ` [net-next 02/11] e1000: Adding " Michal Kubeček
@ 2012-02-08 18:39 ` Dave, Tushar N
2012-02-09 9:08 ` Jan Beulich
2012-02-13 8:24 ` Michal Kubeček
0 siblings, 2 replies; 42+ messages in thread
From: Dave, Tushar N @ 2012-02-08 18:39 UTC (permalink / raw)
To: Michal Kubecek, netdev@vger.kernel.org
Cc: Kirsher, Jeffrey T, davem@davemloft.net, gospo@redhat.com,
sassmann@redhat.com, jbeulich@suse.com
>-----Original Message-----
>From: Michal Kubeček [mailto:mkubecek@suse.cz]
>Sent: Tuesday, February 07, 2012 9:38 AM
>To: netdev@vger.kernel.org
>Cc: Kirsher, Jeffrey T; davem@davemloft.net; Dave, Tushar N;
>gospo@redhat.com; sassmann@redhat.com; jbeulich@suse.com
>Subject: Re: [net-next 02/11] e1000: Adding e1000_dump function
>
>On Tuesday 07 of February 2012 04:33EN, Jeff Kirsher wrote:
>> + if (netif_msg_pktdata(adapter) && buffer_info->dma != 0)
>> + print_hex_dump(KERN_INFO, "", DUMP_PREFIX_ADDRESS,
>> + 16, 1, phys_to_virt(buffer_info->dma),
>> + buffer_info->length, true);
>
>This might cause problems in Xen environment, we encountered a crash in
>e1000e where phys_to_virt() is used the same way. I'm not familiar with
>the details but this is what Jan Beulich wrote about it:
How did you fix the problem in e1000e then? I don't see bus_to_virt used in any of our Ethernet drivers.
Also when running in Xen which arch are you running on?
-Tushar
^ permalink raw reply [flat|nested] 42+ messages in thread
* RE: [net-next 02/11] e1000: Adding e1000_dump function
2012-02-08 18:39 ` Dave, Tushar N
@ 2012-02-09 9:08 ` Jan Beulich
2012-02-13 8:24 ` Michal Kubeček
1 sibling, 0 replies; 42+ messages in thread
From: Jan Beulich @ 2012-02-09 9:08 UTC (permalink / raw)
To: Tushar N Dave
Cc: davem@davemloft.net, Jeffrey T Kirsher, gospo@redhat.com,
sassmann@redhat.com, Michal Kubecek, netdev@vger.kernel.org
>>> On 08.02.12 at 19:39, "Dave, Tushar N" <tushar.n.dave@intel.com> wrote:
> Also when running in Xen which arch are you running on?
Currently this can only possibly be x86 (32- or 64-bit), ia64 doesn't
build, and no other ports are available upstream so far.
Jan
^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: [net-next 02/11] e1000: Adding e1000_dump function
2012-02-08 18:39 ` Dave, Tushar N
2012-02-09 9:08 ` Jan Beulich
@ 2012-02-13 8:24 ` Michal Kubeček
1 sibling, 0 replies; 42+ messages in thread
From: Michal Kubeček @ 2012-02-13 8:24 UTC (permalink / raw)
To: Dave, Tushar N
Cc: netdev@vger.kernel.org, Kirsher, Jeffrey T, davem@davemloft.net,
gospo@redhat.com, sassmann@redhat.com, jbeulich@suse.com
On Wednesday 08 of February 2012 18:39EN, Dave, Tushar N wrote:
> How did you fix the problem in e1000e then? I don't see bus_to_virt
> used in any of our Ethernet drivers.
We didn't, yet. I don't understand the memory mapping well enough to
propose a solution. We have run into this problem when we investigated a
different issue (repeated Tx hangs without apparent cause) and an
attempt to dump registers resulted in kernel crash.
Michal Kubeček
^ permalink raw reply [flat|nested] 42+ messages in thread
* [net-next 00/11][pull request] Intel Wired LAN Driver Updates
@ 2012-02-25 5:49 Jeff Kirsher
2012-02-26 1:31 ` David Miller
0 siblings, 1 reply; 42+ messages in thread
From: Jeff Kirsher @ 2012-02-25 5:49 UTC (permalink / raw)
To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann
This series of patches contains cleanups of the e1000e driver.
The following are changes since commit 5d74f1757001f5b9a7739c2a9053435e16ce516b:
Staging: wlags49_h2: print MAC via printk format specifier
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: rename e1000e_id_led_init() and call as function
pointer
e1000e: cleanup: rename e1000e_setup_link() and call as function
pointer
e1000e: cleanup use of check_mng_mode function pointer
e1000e: cleanup use of check_reset_block function pointer
e1000e: cleanup calls to setup_physical_interface function pointer
e1000e: comment correction in
e1000e_set_kmrn_lock_loss_workaround_ich8lan
e1000e: rename e1000e_config_collision_dist() and call as function
pointer
e1000e: cleanup comment in e1000_hash_mc_addr()
e1000e: use true/false for boolean send_xon, do not assume always
true
e1000e: cleanup - remove unnecessary variable
e1000e: rename e1000e_reload_nvm() and call as function pointer
drivers/net/ethernet/intel/e1000e/80003es2lan.c | 12 +++++---
drivers/net/ethernet/intel/e1000e/82571.c | 10 ++++---
drivers/net/ethernet/intel/e1000e/e1000.h | 18 +++----------
drivers/net/ethernet/intel/e1000e/ethtool.c | 6 +++-
drivers/net/ethernet/intel/e1000e/hw.h | 2 +
drivers/net/ethernet/intel/e1000e/ich8lan.c | 32 ++++++++++++----------
drivers/net/ethernet/intel/e1000e/mac.c | 31 ++++++++++-----------
drivers/net/ethernet/intel/e1000e/manage.c | 4 +-
drivers/net/ethernet/intel/e1000e/netdev.c | 8 +++---
drivers/net/ethernet/intel/e1000e/nvm.c | 4 +-
drivers/net/ethernet/intel/e1000e/phy.c | 6 ++--
11 files changed, 66 insertions(+), 67 deletions(-)
--
1.7.7.6
^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: [net-next 00/11][pull request] Intel Wired LAN Driver Updates
2012-02-25 5:49 Jeff Kirsher
@ 2012-02-26 1:31 ` David Miller
0 siblings, 0 replies; 42+ messages in thread
From: David Miller @ 2012-02-26 1:31 UTC (permalink / raw)
To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Fri, 24 Feb 2012 21:49:49 -0800
> This series of patches contains cleanups of the e1000e driver.
>
> The following are changes since commit 5d74f1757001f5b9a7739c2a9053435e16ce516b:
> Staging: wlags49_h2: print MAC via printk format specifier
> 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] 42+ messages in thread
* [net-next 00/11][pull request] Intel Wired LAN Driver Updates
@ 2012-11-13 14:03 Jeff Kirsher
2012-11-13 19:19 ` David Miller
0 siblings, 1 reply; 42+ messages in thread
From: Jeff Kirsher @ 2012-11-13 14:03 UTC (permalink / raw)
To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann
This series contains updates to ixgbe, ixgbevf and igb.
The following are changes since commit 9fafd65ad407d4e0c96919a325f568dd95d032af:
ipv6 ndisc: Use pre-defined in6addr_linklocal_allnodes.
and are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
Akeem G. Abodunrin (2):
igb: Support for modifying UDP RSS flow hashing
igb: Ethtool support to enable and disable EEE
Alexander Duyck (4):
ixgbe: Do not use DCA to prefetch the entire packet into the cache
igb: Make TSO check for CHECKSUM_PARTIAL to avoid skb_is_gso check
igb: Update igb Tx flags to improve code efficiency
igb: Improve performance and reduce size of igb_tx_map
Carolyn Wyborny (1):
igb: Clear Go Link Disconnect for 82580 and later devices
Emil Tantilov (1):
ixgbevf: fix possible use of uninitialized variable
Greg Rose (2):
ixgbevf: Add flag to indicate when rx is in net poll
ixgbevf: Reduce size of maximum rx buffer
Jakub Kicinski (1):
ixgbevf: make sure probe fails on MSI-X enable error
drivers/net/ethernet/intel/igb/e1000_82575.c | 8 +
drivers/net/ethernet/intel/igb/e1000_defines.h | 1 +
drivers/net/ethernet/intel/igb/e1000_phy.h | 1 +
drivers/net/ethernet/intel/igb/igb.h | 31 ++-
drivers/net/ethernet/intel/igb/igb_ethtool.c | 281 ++++++++++++++++++++++
drivers/net/ethernet/intel/igb/igb_main.c | 124 +++++-----
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 1 -
drivers/net/ethernet/intel/ixgbevf/ixgbevf.h | 9 +-
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 54 +++--
9 files changed, 412 insertions(+), 98 deletions(-)
--
1.7.11.7
^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: [net-next 00/11][pull request] Intel Wired LAN Driver Updates
2012-11-13 14:03 Jeff Kirsher
@ 2012-11-13 19:19 ` David Miller
0 siblings, 0 replies; 42+ messages in thread
From: David Miller @ 2012-11-13 19:19 UTC (permalink / raw)
To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Tue, 13 Nov 2012 06:03:14 -0800
> This series contains updates to ixgbe, ixgbevf and igb.
>
> The following are changes since commit 9fafd65ad407d4e0c96919a325f568dd95d032af:
> ipv6 ndisc: Use pre-defined in6addr_linklocal_allnodes.
> and are available in the git repository at:
> git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
Pulled, but I have some long term feedback to give on one of the
patches, thanks.
^ permalink raw reply [flat|nested] 42+ messages in thread
* [net-next 00/11][pull request] Intel Wired LAN Driver Updates
@ 2013-04-12 11:24 Jeff Kirsher
0 siblings, 0 replies; 42+ messages in thread
From: Jeff Kirsher @ 2013-04-12 11:24 UTC (permalink / raw)
To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann
This series contains updates to ixgbe only.
My previous pull request had a mix of ixgbe and igb patches, and
while Akeem works on the changes requested on the igb patches, I
going ahead and re-submitting the originally submitted ixgbe patches
with several other ixgbe patches.
Alex provides a performance improvement with the enabling the use of
build_skb for instances where jumbo frames are disabled. In addition,
Alex provides a fix where we were incorrectly checking the entire frag_off
field when we only wanted the fragment offset. Lastly, he cleans up
the check for PAGE_SIZE, since the default configuration allocates 32K
for all buffers.
Emil provides a change to the calculation of eerd so that it is consistent
between the read and write functions by using | instead of +.
Jacob adds support for displaying PCIe Gen3 link speed, which was
previously missing from the ixgbe driver. He also provides a patch
to clean up ixgbe_get_bus_info_generic to call some conversion
functions, which are used also in another patch provided by Jacob.
Jacob modifies the driver to enable certain devices (which have an
internal switch) to read from the physical slot rather than reading
data from the internal switch. Lastly, Jacob adds a function which
enables the ixgbe driver to walk up the PCI bus for the device and
query the PCI config space for the bus width at each point.
Don provides a couple of fixes (which are more appropriate for net-next),
one of which resolves an issue where ixgbe was only turning on the laser
when the adapter was up which caused issues for those who wanted to
access the MNG firmware while the port was in a down state. The other
fix is for WoL when currently linked at 1G. Lastly Don bumps the driver
version keep the in-kernel driver up to date with the current functionality.
The following are changes since commit 6c6779856a294649dbb468ef46e893e80b0d72ad:
Revert "netprio_cgroup: make local table static"
and are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
Alexander Duyck (3):
ixgbe: Support using build_skb in the case that jumbo frames are
disabled
ixgbe: Mask off check of frag_off as we only want fragment offset
ixgbe: Drop check for PAGE_SIZE from ixgbe_xmit_frame_ring
Don Skidmore (3):
ixgbe: fix MNG FW support when adapter not up
ixgbe: Fix 1G link WoL
ixgbe: bump version number
Emil Tantilov (1):
ixgbe: don't do arithmetic operations on bitmasks
Jacob Keller (4):
ixgbe: Enable support for recognizing PCI-e Gen3 link speed
ixgbe: create conversion functions from link_status to bus/speed
ixgbe: enable devices with internal switch to read pci parent
ixgbe: walk pci-e bus to find minimum width
drivers/net/ethernet/intel/ixgbe/ixgbe.h | 7 +
drivers/net/ethernet/intel/ixgbe/ixgbe_82598.c | 1 +
drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c | 51 ++++-
drivers/net/ethernet/intel/ixgbe/ixgbe_common.c | 63 +++---
drivers/net/ethernet/intel/ixgbe/ixgbe_common.h | 2 +
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 289 ++++++++++++++++++++----
drivers/net/ethernet/intel/ixgbe/ixgbe_type.h | 13 ++
drivers/net/ethernet/intel/ixgbe/ixgbe_x540.c | 1 +
8 files changed, 343 insertions(+), 84 deletions(-)
--
1.7.11.7
^ permalink raw reply [flat|nested] 42+ messages in thread
* [net-next 00/11][pull request] Intel Wired LAN Driver Updates
@ 2013-10-24 15:27 Jeff Kirsher
2013-10-26 4:30 ` David Miller
0 siblings, 1 reply; 42+ messages in thread
From: Jeff Kirsher @ 2013-10-24 15:27 UTC (permalink / raw)
To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann
This series contains updates to igb, igbvf, i40e, ixgbe and ixgbevf.
Dan Carpenter provides a patch for igbvf to fix a bug found by a static
checker. If the new MTU is very large, then "new_mtu + ETH_HLEN +
ETH_FCS_LEN" can wrap and the check on the next line can underflow.
Wei Yongjun provides 2 patches, the first against igbvf adds a missing
iounmap() before the return from igbvf_probe(). The second against
i40e, removes the include <linux/version.h> because it is not needed.
Carolyn provides a patch for igb to fix a call to set the master/slave
mode for all m88 generation 2 PHY's and removes the call for I210
devices which do not need it.
Stefan Assmann provides a patch for igb to fix an issue which was broke
by:
commit fa44f2f185f7f9da19d331929bb1b56c1ccd1d93
Author: Greg Rose <gregory.v.rose@intel.com>
Date: Thu Jan 17 01:03:06 2013 -0800
igb: Enable SR-IOV configuration via PCI sysfs interface
which breaks the reloading of igb when VFs are assigned to a guest, in
several ways.
Jacob provides a patch for ixgbe and ixgbevf. First, against ixgbe,
cleans up ixgbe_enumerate_functions to reduce code complexity. The
second, against ixgbevf, adds support for ethtool's get_coalesce and
set_coalesce command for the ixgbevf driver.
Yijing Wang provides a patch for ixgbe to use pcie_capability_read_word()
to simplify the code.
Emil provides a ixgbe patch to fix an issue where the logic used to
detect changes in rx-usecs was incorrect and was masked by the call to
ixgbe_update_rsc().
Don provides 2 patches for ixgbevf. First creates a new function to set
PSRTYPE. The second bumps the ixgbevf driver version.
The following are changes since commit b45bd46decd947eaa3497699d450e0851d247534:
Merge tag 'batman-adv-for-davem' of git://git.open-mesh.org/linux-merge
and are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
Carolyn Wyborny (1):
igb: Fix master/slave mode for all m88 i354 PHY's
Dan Carpenter (1):
igbvf: integer wrapping bug setting the mtu
Don Skidmore (2):
ixgbevf: Adds function to set PSRTYPE register
ixgbevf: bump driver version
Emil Tantilov (1):
ixgbe: fix rx-usecs range checks for BQL
Jacob Keller (2):
ixgbe: cleanup ixgbe_enumerate_functions
ixgbevf: implement ethtool get/set coalesce
Stefan Assmann (1):
igb: fix driver reload with VF assigned to guest
Wei Yongjun (2):
igbvf: add missing iounmap() on error in igbvf_probe()
i40e: remove unused including <linux/version.h>
Yijing Wang (1):
ixgbe: use pcie_capability_read_word() to simplify code
drivers/net/ethernet/intel/i40e/i40e.h | 1 -
drivers/net/ethernet/intel/igb/e1000_phy.c | 8 +--
drivers/net/ethernet/intel/igb/igb_main.c | 37 +++++------
drivers/net/ethernet/intel/igbvf/netdev.c | 8 +--
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c | 6 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 19 ++----
drivers/net/ethernet/intel/ixgbevf/ethtool.c | 81 +++++++++++++++++++++++
drivers/net/ethernet/intel/ixgbevf/ixgbevf.h | 2 +
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 22 ++++--
9 files changed, 134 insertions(+), 50 deletions(-)
--
1.8.3.1
^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: [net-next 00/11][pull request] Intel Wired LAN Driver Updates
2013-10-24 15:27 Jeff Kirsher
@ 2013-10-26 4:30 ` David Miller
0 siblings, 0 replies; 42+ messages in thread
From: David Miller @ 2013-10-26 4:30 UTC (permalink / raw)
To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Thu, 24 Oct 2013 08:27:27 -0700
> This series contains updates to igb, igbvf, i40e, ixgbe and ixgbevf.
Pulled, thanks a lot Jeff.
^ permalink raw reply [flat|nested] 42+ messages in thread
* [net-next 00/11][pull request] Intel Wired LAN Driver Updates
@ 2013-10-29 12:02 Jeff Kirsher
2013-10-29 22:58 ` David Miller
0 siblings, 1 reply; 42+ messages in thread
From: Jeff Kirsher @ 2013-10-29 12:02 UTC (permalink / raw)
To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann
This series contains updates to vxlan, net, ixgbe, ixgbevf, and i40e.
Joseph provides a single patch against vxlan which removes the burden
from the NIC drivers to check if the vxlan driver is enabled in the
kernel and also makes available the vxlan headrooms to the drivers.
Jacob provides majority of the patches, with patches against net, ixgbe
and ixgbevf. His net patch adds might_sleep() call to napi_disable so
that every use of napi_disable during atomic context will be visible.
Then Jacob provides a patch to fix qv_lock_napi call in
ixgbe_napi_disable_all. The other ixgbe patches cleanup
ixgbe_check_minimum_link function to correctly show that there are some
minor loss of encoding, even though we don't calculate it and remove
unnecessary duplication of PCIe bandwidth display. Lastly, Jacob
provides 4 patches against ixgbevf to add ixgbevf_rx_skb in line with
how ixgbe handles the variations on how packets can be received, adds
support in order to track how many packets were cleaned during busy poll
as part of the extended statistics.
Wei Yongjun provides a fix for i40e to return -ENOMEN in the memory
allocation error handling case instead of returning 0, as done
elsewhere in this function.
The following are changes since commit cdfb97bc010d9e9d994eb68f2cbac3a8ada26104:
net, mc: fix the incorrect comments in two mc-related functions
and are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
Don Skidmore (1):
ixgbevf: Add zero_base handler to network statistics
Jacob Keller (8):
net: add might_sleep() call to napi_disable
ixgbe: fix qv_lock_napi call in ixgbe_napi_disable_all
ixgbe: show <2% for encoding loss on PCIe Gen3
ixgbe: remove unnecessary duplication of PCIe bandwidth display
ixgbevf: add ixgbevf_rx_skb
ixgbevf: have clean_rx_irq return total_rx_packets cleaned
ixgbevf: implement CONFIG_NET_RX_BUSY_POLL
ixgbevf: add BP_EXTENDED_STATS for CONFIG_NET_RX_BUSY_POLL
Joseph Gasparakis (1):
vxlan: Have the NIC drivers do less work for offloads
Wei Yongjun (1):
i40e: fix error return code in i40e_probe()
drivers/net/ethernet/intel/i40e/i40e_main.c | 4 +-
drivers/net/ethernet/intel/ixgbe/ixgbe.h | 48 ++++++--
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 46 +++-----
drivers/net/ethernet/intel/ixgbevf/ethtool.c | 98 +++++++++++-----
drivers/net/ethernet/intel/ixgbevf/ixgbevf.h | 132 +++++++++++++++++++++-
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 103 +++++++++++++++--
drivers/net/vxlan.c | 4 -
include/linux/netdevice.h | 1 +
include/net/vxlan.h | 11 ++
9 files changed, 366 insertions(+), 81 deletions(-)
--
1.8.3.1
^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: [net-next 00/11][pull request] Intel Wired LAN Driver Updates
2013-10-29 12:02 Jeff Kirsher
@ 2013-10-29 22:58 ` David Miller
0 siblings, 0 replies; 42+ messages in thread
From: David Miller @ 2013-10-29 22:58 UTC (permalink / raw)
To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Tue, 29 Oct 2013 05:02:20 -0700
> This series contains updates to vxlan, net, ixgbe, ixgbevf, and i40e.
Pulled, thanks a lot Jeff.
^ permalink raw reply [flat|nested] 42+ messages in thread
* [net-next 00/11][pull request] Intel Wired LAN Driver Updates
@ 2014-05-14 8:54 Jeff Kirsher
0 siblings, 0 replies; 42+ messages in thread
From: Jeff Kirsher @ 2014-05-14 8:54 UTC (permalink / raw)
To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann
This series contains updates to igb, igbvf, ixgbe, i40e and i40evf.
Emil provides a ixgbe patch to fix the detection of SFP+ capable interfaces
by identifying 82599 based NICs with no PHY type set as SFP capable which
allows the driver to detect the SFP module when the interface is brought
up.
Jacob provides eight patches to cleanup the ixgbe driver to resolve various
checkpatch.pl warnings/errors as well as minor coding style issues.
Stephen Hemminger and I provide simple cleanups of void functions which
had useless return statements at the end of the function which are not
needed.
The following are changes since commit 86b5d251d5ac4dda51a022b34cb29b4ce65a8cd5:
sh_eth: replace devm_kzalloc() with devm_kmalloc_array()
and are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next master
Emil Tantilov (1):
ixgbe: fix detection of SFP+ capable interfaces
Jacob Keller (8):
ixgbe: clean up checkpatch warnings about CODE_INDENT and
LEADING_SPACE
ixgbe: fix function-like macro, remove semicolon
ixgbe: fix checkpatch style of blank line after declaration
ixgbe: fix several concatenated strings to single line
ixgbe: add braces around else block
ixgbe: don't check NULL for debugfs_remove_recursive
ixgbe: add space between operands to &
ixgbe: add /* fallthrough */ comment to case statements
Jeff Kirsher (1):
igb/ixgbe: remove return statements for void functions
Stephen Hemminger (1):
i40e,igb,ixgbe: remove usless return statements
drivers/net/ethernet/intel/i40e/i40e_main.c | 4 -
drivers/net/ethernet/intel/i40evf/i40evf_main.c | 4 -
drivers/net/ethernet/intel/igb/e1000_nvm.c | 1 -
drivers/net/ethernet/intel/igb/igb_main.c | 1 -
drivers/net/ethernet/intel/igbvf/ethtool.c | 1 -
drivers/net/ethernet/intel/ixgbe/ixgbe.h | 2 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_82598.c | 62 ++++++++-------
drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c | 85 ++++++++++----------
drivers/net/ethernet/intel/ixgbe/ixgbe_common.c | 45 +++++------
drivers/net/ethernet/intel/ixgbe/ixgbe_common.h | 16 ++--
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb.c | 3 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_82599.h | 24 +++---
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c | 28 +++----
drivers/net/ethernet/intel/ixgbe/ixgbe_debugfs.c | 3 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c | 90 ++++++++++------------
drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c | 4 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 8 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.c | 10 +--
drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.h | 6 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_phy.c | 68 ++++++++--------
drivers/net/ethernet/intel/ixgbe/ixgbe_phy.h | 32 ++++----
drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c | 4 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_type.h | 60 +++++++--------
drivers/net/ethernet/intel/ixgbe/ixgbe_x540.c | 15 ++--
24 files changed, 275 insertions(+), 301 deletions(-)
--
1.9.0
^ permalink raw reply [flat|nested] 42+ messages in thread
end of thread, other threads:[~2014-05-14 8:54 UTC | newest]
Thread overview: 42+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-02-07 12:33 [net-next 00/11][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
2012-02-07 12:33 ` [net-next 01/11] igbvf: refactor Interrupt Throttle Rate code Jeff Kirsher
2012-02-07 12:33 ` [net-next 02/11] e1000: Adding e1000_dump function Jeff Kirsher
2012-02-07 15:40 ` Joe Perches
2012-02-07 18:19 ` [PATCH net-next] e1000: Neaten " Joe Perches
2012-02-07 19:09 ` Dave, Tushar N
2012-02-07 17:38 ` [net-next 02/11] e1000: Adding " Michal Kubeček
2012-02-08 18:39 ` Dave, Tushar N
2012-02-09 9:08 ` Jan Beulich
2012-02-13 8:24 ` Michal Kubeček
2012-02-07 12:33 ` [net-next 03/11] e1000e: add missing initializers reported when compiling with W=1 Jeff Kirsher
2012-02-07 12:33 ` [net-next 04/11] e1000e: cleanup - check return values consistently Jeff Kirsher
2012-02-07 12:33 ` [net-next 05/11] e1000e: cleanup e1000_init_mac_params_80003es2lan() Jeff Kirsher
2012-02-07 12:33 ` [net-next 06/11] e1000e: cleanup e1000_init_mac_params_82571() Jeff Kirsher
2012-02-07 12:33 ` [net-next 07/11] e1000e: cleanup e1000_set_phys_id Jeff Kirsher
2012-02-07 12:33 ` [net-next 08/11] e1000e: cleanup - use braces in both branches of a conditional statement Jeff Kirsher
2012-02-07 12:33 ` [net-next 09/11] e1000e: fix checkpatch warning from MINMAX test Jeff Kirsher
2012-02-07 12:33 ` [net-next 10/11] e1000e: fix sparse warnings with -D__CHECK_ENDIAN__ Jeff Kirsher
2012-02-07 12:58 ` David Laight
2012-02-07 17:16 ` David Miller
2012-02-07 12:33 ` [net-next 11/11] e1000e: minor whitespace and indentation cleanup Jeff Kirsher
2012-02-07 17:27 ` [net-next 00/11][pull request] Intel Wired LAN Driver Updates David Miller
-- strict thread matches above, loose matches on Subject: below --
2014-05-14 8:54 Jeff Kirsher
2013-10-29 12:02 Jeff Kirsher
2013-10-29 22:58 ` David Miller
2013-10-24 15:27 Jeff Kirsher
2013-10-26 4:30 ` David Miller
2013-04-12 11:24 Jeff Kirsher
2012-11-13 14:03 Jeff Kirsher
2012-11-13 19:19 ` David Miller
2012-02-25 5:49 Jeff Kirsher
2012-02-26 1:31 ` David Miller
2012-01-27 3:08 Jeff Kirsher
2012-01-28 1:47 ` David Miller
2012-01-03 19:19 Jeff Kirsher
2011-10-08 6:47 Jeff Kirsher
2011-10-08 6:52 ` Jeff Kirsher
2011-09-30 5:24 Jeff Kirsher
2011-09-30 18:35 ` Jeff Kirsher
2011-09-17 2:15 Jeff Kirsher
2011-09-16 4:42 Jeff Kirsher
2011-09-16 19:20 ` 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).