mbox series

[net-next,00/15,pull,request] 100GbE Intel Wired LAN Driver Updates 2019-08-26

Message ID 20190827163832.8362-1-jeffrey.t.kirsher@intel.com
Headers show
Series 100GbE Intel Wired LAN Driver Updates 2019-08-26 | expand

Message

Kirsher, Jeffrey T Aug. 27, 2019, 4:38 p.m. UTC
This series contains updates to ice driver only.

Usha fixes the statistics reported on 4 port NICs which were reporting
the incorrect statistics due to using the incorrect port identifier.

Victor fixes an issue when trying to traverse to the first node of a
requested layer by adding a sibling head pointer for each layer per
traffic class.

Anirudh cleans up the locking and logic for enabling and disabling
VSI's to make it more consistent.  Updates the driver to do dynamic
allocation of queue management bitmaps and arrays, rather than
statically allocating them which consumes more memory than required.
Refactor the logic in ice_ena_msix_range() for clarity and add
additional checks for when requested resources exceed what is available.

Jesse updates the debugging print statements to make it more useful when
dealing with link and PHY related issues.

Krzysztof adds a local variable to the VSI rebuild path to improve
readability.

Akeem limits the reporting of MDD events from VFs so that the kernel
log is not clogged up with MDD events which are duplicate or potentially
false positives.  Fixed a reset issue that would result in the system
getting into a state that could only be resolved by a reboot by
testing if the VF is in a disabled state during a reset.

Michal adds a check to avoid trying to access memory that has not be
allocated by checking the number of queue pairs.

Jake fixes a static analysis warning due to a cast of a u8 to unsigned
long, so just update ice_is_tc_ena() to take a unsigned long so that a
cast is not necessary.

Colin Ian King fixes a potential infinite loop where a u8 is being
compared to an int.

Maciej refactors the queue handling functions that work on queue arrays
so that the logic can be done for a single queue.

Paul adds support for VFs to enable and disable single queues.

Henry fixed the order of operations in ice_remove() which was trying to
use adminq operations that were already disabled.

The following are changes since commit d00ee466a07eb9182ad3caf6140c7ebb527b4c64:
  nfp: add AMDA0058 boards to firmware list
and are available in the git repository at:
  git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue 100GbE

Akeem G Abodunrin (2):
  ice: Don't clog kernel debug log with VF MDD events errors
  ice: Fix VF configuration issues due to reset

Anirudh Venkataramanan (3):
  ice: Sanitize ice_ena_vsi and ice_dis_vsi
  ice: Alloc queue management bitmaps and arrays dynamically
  ice: Rework ice_ena_msix_range

Colin Ian King (1):
  ice: fix potential infinite loop

Henry Tieman (1):
  ice: fix adminq calls during remove

Jacob Keller (1):
  ice: fix ice_is_tc_ena

Jesse Brandeburg (1):
  ice: shorten local and add debug prints

Krzysztof Kazimierczak (1):
  ice: Introduce a local variable for a VSI in the rebuild path

Maciej Fijalkowski (1):
  ice: add support for enabling/disabling single queues

Michal Swiatkowski (1):
  ice: add validation in OP_CONFIG_VSI_QUEUES VF message

Paul Greenwalt (1):
  ice: add support for virtchnl_queue_select.[tx|rx]_queues bitmap

Usha Ketineni (1):
  ice: Fix ethtool port and PFC stats for 4x25G cards

Victor Raj (1):
  ice: added sibling head to parse nodes

 drivers/net/ethernet/intel/ice/ice.h          |  12 +-
 drivers/net/ethernet/intel/ice/ice_common.c   |  63 ++-
 drivers/net/ethernet/intel/ice/ice_dcb_lib.c  |  13 +-
 drivers/net/ethernet/intel/ice/ice_lib.c      | 398 +++++++++++-------
 drivers/net/ethernet/intel/ice/ice_lib.h      |  28 +-
 drivers/net/ethernet/intel/ice/ice_main.c     | 205 +++++----
 drivers/net/ethernet/intel/ice/ice_sched.c    |  57 +--
 drivers/net/ethernet/intel/ice/ice_type.h     |   6 +-
 .../net/ethernet/intel/ice/ice_virtchnl_pf.c  | 279 ++++++++----
 .../net/ethernet/intel/ice/ice_virtchnl_pf.h  |  14 +-
 10 files changed, 688 insertions(+), 387 deletions(-)

Comments

Jakub Kicinski Aug. 28, 2019, 4:09 a.m. UTC | #1
On Tue, 27 Aug 2019 09:38:17 -0700, Jeff Kirsher wrote:
> This series contains updates to ice driver only.

Looks clear from uAPI perspective. It does mix fixes with -next, 
but I guess that's your call.

Code-wise changes like this are perhaps the low-light:

@@ -2105,7 +2108,10 @@ void ice_trigger_sw_intr(struct ice_hw *hw, struct ice_q_vector *q_vector)
  * @ring: Tx ring to be stopped
  * @txq_meta: Meta data of Tx ring to be stopped
  */
-static int
+#ifndef CONFIG_PCI_IOV
+static
+#endif /* !CONFIG_PCI_IOV */
+int
 ice_vsi_stop_tx_ring(struct ice_vsi *vsi, enum ice_disq_rst_src rst_src,
 		     u16 rel_vmvf_num, struct ice_ring *ring,
 		     struct ice_txq_meta *txq_meta)
Kirsher, Jeffrey T Aug. 28, 2019, 4:17 a.m. UTC | #2
On Tue, 2019-08-27 at 21:09 -0700, Jakub Kicinski wrote:
> On Tue, 27 Aug 2019 09:38:17 -0700, Jeff Kirsher wrote:
> > This series contains updates to ice driver only.
> 
> Looks clear from uAPI perspective. It does mix fixes with -next, 
> but I guess that's your call.

Yeah, I always debate about sending the fixes to net, but many of them do
not apply cleanly or at all to the previous kernel version since we are
actively adding new features and functionality to this driver.

Once this device gets released, I will be more concerned about getting
fixes into older kernels.

> 
> Code-wise changes like this are perhaps the low-light:
> 
> @@ -2105,7 +2108,10 @@ void ice_trigger_sw_intr(struct ice_hw *hw, struct
> ice_q_vector *q_vector)
>   * @ring: Tx ring to be stopped
>   * @txq_meta: Meta data of Tx ring to be stopped
>   */
> -static int
> +#ifndef CONFIG_PCI_IOV
> +static
> +#endif /* !CONFIG_PCI_IOV */
> +int
>  ice_vsi_stop_tx_ring(struct ice_vsi *vsi, enum ice_disq_rst_src rst_src,
>  		     u16 rel_vmvf_num, struct ice_ring *ring,
>  		     struct ice_txq_meta *txq_meta)
David Miller Aug. 28, 2019, 10:47 p.m. UTC | #3
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Tue, 27 Aug 2019 09:38:17 -0700

> This series contains updates to ice driver only.

Pulled, but I have to agree with Jakub that using CPP ifdefs to control the
"static"'ness of a function is pushing the boundaries of good taste at best.