Commit 714069da authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull networking fixes from Jakub Kicinski:
 "Happy Wear a Dress Day.

  Fairly standard-sized batch of fixes, accounting for the lack of
  sub-tree submissions this week. The mlx5 IRQ fixes are notable, people
  were complaining about that. No fires burning.

  Current release - regressions:

   - eth: mlx5e:
      - multiple fixes for dynamic IRQ allocation
      - prevent encap offload when neigh update is running

   - eth: mana: fix perf regression: remove rx_cqes, tx_cqes counters

  Current release - new code bugs:

   - eth: mlx5e: DR, add missing mutex init/destroy in pattern manager

  Previous releases - always broken:

   - tcp: deny tcp_disconnect() when threads are waiting

   - sched: prevent ingress Qdiscs from getting installed in random
     locations in the hierarchy and moving around

   - sched: flower: fix possible OOB write in fl_set_geneve_opt()

   - netlink: fix NETLINK_LIST_MEMBERSHIPS length report

   - udp6: fix race condition in udp6_sendmsg & connect

   - tcp: fix mishandling when the sack compression is deferred

   - rtnetlink: validate link attributes set at creation time

   - mptcp: fix connect timeout handling

   - eth: stmmac: fix call trace when stmmac_xdp_xmit() is invoked

   - eth: amd-xgbe: fix the false linkup in xgbe_phy_status

   - eth: mlx5e:
      - fix corner cases in internal buffer configuration
      - drain health before unregistering devlink

   - usb: qmi_wwan: set DTR quirk for BroadMobi BM818

  Misc:

   - tcp: return user_mss for TCP_MAXSEG in CLOSE/LISTEN state if
     user_mss set"

* tag 'net-6.4-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (71 commits)
  mptcp: fix active subflow finalization
  mptcp: add annotations around sk->sk_shutdown accesses
  mptcp: fix data race around msk->first access
  mptcp: consolidate passive msk socket initialization
  mptcp: add annotations around msk->subflow accesses
  mptcp: fix connect timeout handling
  rtnetlink: add the missing IFLA_GRO_ tb check in validate_linkmsg
  rtnetlink: move IFLA_GSO_ tb check to validate_linkmsg
  rtnetlink: call validate_linkmsg in rtnl_create_link
  ice: recycle/free all of the fragments from multi-buffer frame
  net: phy: mxl-gpy: extend interrupt fix to all impacted variants
  net: renesas: rswitch: Fix return value in error path of xmit
  net: dsa: mv88e6xxx: Increase wait after reset deactivation
  net: ipa: Use correct value for IPA_STATUS_SIZE
  tcp: fix mishandling when the sack compression is deferred.
  net/sched: flower: fix possible OOB write in fl_set_geneve_opt()
  sfc: fix error unwinds in TC offload
  net/mlx5: Read embedded cpu after init bit cleared
  net/mlx5e: Fix error handling in mlx5e_refresh_tirs
  net/mlx5: Ensure af_desc.mask is properly initialized
  ...
parents f9010dbd a451b8eb
Loading
Loading
Loading
Loading
+8 −24
Original line number Diff line number Diff line
@@ -60,22 +60,6 @@ attribute-sets:
        type: nest
        nested-attributes: bitset-bits

  -
    name: u64-array
    attributes:
      -
        name: u64
        type: nest
        multi-attr: true
        nested-attributes: u64
  -
    name: s32-array
    attributes:
      -
        name: s32
        type: nest
        multi-attr: true
        nested-attributes: s32
  -
    name: string
    attributes:
@@ -705,16 +689,16 @@ attribute-sets:
        type: u8
      -
        name: corrected
        type: nest
        nested-attributes: u64-array
        type: binary
        sub-type: u64
      -
        name: uncorr
        type: nest
        nested-attributes: u64-array
        type: binary
        sub-type: u64
      -
        name: corr-bits
        type: nest
        nested-attributes: u64-array
        type: binary
        sub-type: u64
  -
    name: fec
    attributes:
@@ -827,8 +811,8 @@ attribute-sets:
        type: u32
      -
        name: index
        type: nest
        nested-attributes: s32-array
        type: binary
        sub-type: s32
  -
    name: module
    attributes:
+37 −23
Original line number Diff line number Diff line
@@ -40,6 +40,7 @@ flow_steering_mode: Device flow steering mode
---------------------------------------------
The flow steering mode parameter controls the flow steering mode of the driver.
Two modes are supported:

1. 'dmfs' - Device managed flow steering.
2. 'smfs' - Software/Driver managed flow steering.

@@ -99,6 +100,7 @@ between representors and stacked devices.
By default metadata is enabled on the supported devices in E-switch.
Metadata is applicable only for E-switch in switchdev mode and
users may disable it when NONE of the below use cases will be in use:

1. HCA is in Dual/multi-port RoCE mode.
2. VF/SF representor bonding (Usually used for Live migration)
3. Stacked devices
@@ -180,7 +182,8 @@ User commands examples:

    $ devlink health diagnose pci/0000:82:00.0 reporter tx

NOTE: This command has valid output only when interface is up, otherwise the command has empty output.
.. note::
   This command has valid output only when interface is up, otherwise the command has empty output.

- Show number of tx errors indicated, number of recover flows ended successfully,
  is autorecover enabled and graceful period from last recover::
@@ -232,7 +235,8 @@ User commands examples:

    $ devlink health dump show pci/0000:82:00.0 reporter fw

NOTE: This command can run only on the PF which has fw tracer ownership,
.. note::
   This command can run only on the PF which has fw tracer ownership,
   running it on other PF or any VF will return "Operation not permitted".

fw fatal reporter
@@ -256,7 +260,8 @@ User commands examples:

    $ devlink health dump show pci/0000:82:00.1 reporter fw_fatal

NOTE: This command can run only on PF.
.. note::
   This command can run only on PF.

vnic reporter
-------------
@@ -265,28 +270,37 @@ It is responsible for querying the vnic diagnostic counters from fw and displayi
them in realtime.

Description of the vnic counters:
total_q_under_processor_handle: number of queues in an error state due to

- total_q_under_processor_handle
        number of queues in an error state due to
        an async error or errored command.
send_queue_priority_update_flow: number of QP/SQ priority/SL update
events.
cq_overrun: number of times CQ entered an error state due to an
overflow.
async_eq_overrun: number of times an EQ mapped to async events was
overrun.
comp_eq_overrun: number of times an EQ mapped to completion events was
- send_queue_priority_update_flow
        number of QP/SQ priority/SL update events.
- cq_overrun
        number of times CQ entered an error state due to an overflow.
- async_eq_overrun
        number of times an EQ mapped to async events was overrun.
        comp_eq_overrun number of times an EQ mapped to completion events was
        overrun.
quota_exceeded_command: number of commands issued and failed due to quota
- quota_exceeded_command
        number of commands issued and failed due to quota exceeded.
- invalid_command
        number of commands issued and failed dues to any reason other than quota
        exceeded.
invalid_command: number of commands issued and failed dues to any reason
other than quota exceeded.
nic_receive_steering_discard: number of packets that completed RX flow
- nic_receive_steering_discard
        number of packets that completed RX flow
        steering but were discarded due to a mismatch in flow table.

User commands examples:
- Diagnose PF/VF vnic counters

- Diagnose PF/VF vnic counters::

        $ devlink health diagnose pci/0000:82:00.1 reporter vnic

- Diagnose representor vnic counters (performed by supplying devlink port of the
  representor, which can be obtained via devlink port command)
  representor, which can be obtained via devlink port command)::

        $ devlink health diagnose pci/0000:82:00.1/65537 reporter vnic

NOTE: This command can run over all interfaces such as PF/VF and representor ports.
.. note::
   This command can run over all interfaces such as PF/VF and representor ports.
+1 −1
Original line number Diff line number Diff line
@@ -7170,7 +7170,7 @@ static int mv88e6xxx_probe(struct mdio_device *mdiodev)
		goto out;
	}
	if (chip->reset)
		usleep_range(1000, 2000);
		usleep_range(10000, 20000);

	/* Detect if the device is configured in single chip addressing mode,
	 * otherwise continue with address specific smi init/detection.
+9 −3
Original line number Diff line number Diff line
@@ -1329,7 +1329,7 @@ static enum xgbe_mode xgbe_phy_status_aneg(struct xgbe_prv_data *pdata)
	return pdata->phy_if.phy_impl.an_outcome(pdata);
}

static void xgbe_phy_status_result(struct xgbe_prv_data *pdata)
static bool xgbe_phy_status_result(struct xgbe_prv_data *pdata)
{
	struct ethtool_link_ksettings *lks = &pdata->phy.lks;
	enum xgbe_mode mode;
@@ -1367,8 +1367,13 @@ static void xgbe_phy_status_result(struct xgbe_prv_data *pdata)

	pdata->phy.duplex = DUPLEX_FULL;

	if (xgbe_set_mode(pdata, mode) && pdata->an_again)
	if (!xgbe_set_mode(pdata, mode))
		return false;

	if (pdata->an_again)
		xgbe_phy_reconfig_aneg(pdata);

	return true;
}

static void xgbe_phy_status(struct xgbe_prv_data *pdata)
@@ -1398,7 +1403,8 @@ static void xgbe_phy_status(struct xgbe_prv_data *pdata)
			return;
		}

		xgbe_phy_status_result(pdata);
		if (xgbe_phy_status_result(pdata))
			return;

		if (test_bit(XGBE_LINK_INIT, &pdata->dev_state))
			clear_bit(XGBE_LINK_INIT, &pdata->dev_state);
+1 −1
Original line number Diff line number Diff line
@@ -1152,11 +1152,11 @@ int ice_clean_rx_irq(struct ice_rx_ring *rx_ring, int budget)
	unsigned int total_rx_bytes = 0, total_rx_pkts = 0;
	unsigned int offset = rx_ring->rx_offset;
	struct xdp_buff *xdp = &rx_ring->xdp;
	u32 cached_ntc = rx_ring->first_desc;
	struct ice_tx_ring *xdp_ring = NULL;
	struct bpf_prog *xdp_prog = NULL;
	u32 ntc = rx_ring->next_to_clean;
	u32 cnt = rx_ring->count;
	u32 cached_ntc = ntc;
	u32 xdp_xmit = 0;
	u32 cached_ntu;
	bool failure;
Loading