tree 81e79217b8bc763008afca67c8f229b9c0c08e1e
parent 28bdc499d647124fa5844453d35e6f5d1b3810dc
parent 5b346dc97567270a5c0f02a390a1d1bb65237cea
author David S. Miller <davem@davemloft.net> 1395287748 -0400
committer David S. Miller <davem@davemloft.net> 1395287748 -0400

Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next

Jeff Kirsher says:

====================
Intel Wired LAN Driver Updates

This series contains updates to i40e, i40evf, e1000e, ixgbe and ixgbevf.

Mitch adds support for the VF link state ndo which allows the PF driver
to control the virtual link state of the VF devices.  Added
support for viewing and modifying RSS hash options and RSS hash look-up
table programming through ethtool for i40evf.  Fixed complaint about
the use of min() where min_t() should be used in i40evf.

Anjali adds support for ethtool -k option for NTUPLE control for i40e.

Elizabeth cleans up and refactors i40e_open() to separate out the VSI
code into its own i40e_vsi_open().

Jesse enables the hardware feature head write back to avoid updating the
descriptor ring by marking each descriptor with a DD bit and instead
writes a memory location with an update to where the driver should clean
up to in i40e and i40evf.  Reduces context descriptors for i40e/i40evf
since we do not need context descriptors for every packet, only for
TSO or timesync.

Dan Carpenter fixes a potential array underflow in i40e_vc_process_vf_msg().

Dave fixes an e1000e hardware unit hang where the check for pending Tx work
when link is lost was mistakenly moved to be done only when link is first
detected to be lost.  Fixed a problem with poor network performance on
certain silicon in e1000e when configured for 100M HDX performance.

Carolyn adds register defines needed for time sync functions and the code
to call the updated defines.

Jacob adds the ixgbe function for writing PCI config word and checks
whether the adapter has been removed first.

Mark adds the bit __IXGBEVF_REMOVING to indicate that the module is being
removed because the __IXGBEVF_DOWN bit had been overloaded for this
purpose, but leads to trouble.  ixgbevf_down function can now prevent
multiple executions by doing test_and_set_bit on __IXGBEVF_DOWN.

v2:
- dropped patch Mitch's patch "i40evf: Support RSS option in ethtool"
  based on feedback from Ben Hutchings so that Mitch can re-work the
  patch solution

v3:
- removed unnecessary parenthesis in patch 1 based on feedback from David
  Miller
- changed a macro to get the next queue to a function in patch 2 based on
  feedback from David Miller
- added blank lines after variable declaration and code in two functions
  in patch 6 based on feedback from David Miller
====================

Signed-off-by: David S. Miller <davem@davemloft.net>
