Commit b9c8fc2c authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull networking fixes from Paolo Abeni:
 "Including fixes from IPsec, Bluetooth and netfilter

  Current release - regressions:

   - wifi: fix dev_alloc_name() return value check

   - rds: fix recursive lock in rds_tcp_conn_slots_available

  Current release - new code bugs:

   - vsock: lock down child_ns_mode as write-once

  Previous releases - regressions:

   - core:
      - do not pass flow_id to set_rps_cpu()
      - consume xmit errors of GSO frames

   - netconsole: avoid OOB reads, msg is not nul-terminated

   - netfilter: h323: fix OOB read in decode_choice()

   - tcp: re-enable acceptance of FIN packets when RWIN is 0

   - udplite: fix null-ptr-deref in __udp_enqueue_schedule_skb().

   - wifi: brcmfmac: fix potential kernel oops when probe fails

   - phy: register phy led_triggers during probe to avoid AB-BA deadlock

   - eth:
      - bnxt_en: fix deleting of Ntuple filters
      - wan: farsync: fix use-after-free bugs caused by unfinished tasklets
      - xscale: check for PTP support properly

  Previous releases - always broken:

   - tcp: fix potential race in tcp_v6_syn_recv_sock()

   - kcm: fix zero-frag skb in frag_list on partial sendmsg error

   - xfrm:
      - fix race condition in espintcp_close()
      - always flush state and policy upon NETDEV_UNREGISTER event

   - bluetooth:
      - purge error queues in socket destructors
      - fix response to L2CAP_ECRED_CONN_REQ

   - eth:
      - mlx5:
         - fix circular locking dependency in dump
         - fix "scheduling while atomic" in IPsec MAC address query
      - gve: fix incorrect buffer cleanup for QPL
      - team: avoid NETDEV_CHANGEMTU event when unregistering slave
      - usb: validate USB endpoints"

* tag 'net-7.0-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (72 commits)
  netfilter: nf_conntrack_h323: fix OOB read in decode_choice()
  dpaa2-switch: validate num_ifs to prevent out-of-bounds write
  net: consume xmit errors of GSO frames
  vsock: document write-once behavior of the child_ns_mode sysctl
  vsock: lock down child_ns_mode as write-once
  selftests/vsock: change tests to respect write-once child ns mode
  net/mlx5e: Fix "scheduling while atomic" in IPsec MAC address query
  net/mlx5: Fix missing devlink lock in SRIOV enable error path
  net/mlx5: E-switch, Clear legacy flag when moving to switchdev
  net/mlx5: LAG, disable MPESW in lag_disable_change()
  net/mlx5: DR, Fix circular locking dependency in dump
  selftests: team: Add a reference count leak test
  team: avoid NETDEV_CHANGEMTU event when unregistering slave
  net: mana: Fix double destroy_workqueue on service rescan PCI path
  MAINTAINERS: Update maintainer entry for QUALCOMM ETHQOS ETHERNET DRIVER
  dpll: zl3073x: Remove redundant cleanup in devm_dpll_init()
  selftests/net: packetdrill: Verify acceptance of FIN packets when RWIN is 0
  tcp: re-enable acceptance of FIN packets when RWIN is 0
  vsock: Use container_of() to get net namespace in sysctl handlers
  net: usb: kaweth: validate USB endpoints
  ...
parents f4d0ec0a baed0d9b
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -594,6 +594,9 @@ Values:
	  their sockets will only be able to connect within their own
	  namespace.

The first write to ``child_ns_mode`` locks its value. Subsequent writes of the
same value succeed, but writing a different value returns ``-EBUSY``.

Changing ``child_ns_mode`` only affects namespaces created after the change;
it does not modify the current namespace or any existing children.

+4 −6
Original line number Diff line number Diff line
@@ -1292,7 +1292,6 @@ F: include/trace/events/amdxdna.h
F:	include/uapi/drm/amdxdna_accel.h
AMD XGBE DRIVER
M:	"Shyam Sundar S K" <Shyam-sundar.S-k@amd.com>
M:	Raju Rangoju <Raju.Rangoju@amd.com>
L:	netdev@vger.kernel.org
S:	Maintained
@@ -6219,14 +6218,13 @@ S: Supported
F:	drivers/scsi/snic/
CISCO VIC ETHERNET NIC DRIVER
M:	Christian Benvenuti <benve@cisco.com>
M:	Satish Kharat <satishkh@cisco.com>
S:	Maintained
F:	drivers/net/ethernet/cisco/enic/
CISCO VIC LOW LATENCY NIC DRIVER
M:	Christian Benvenuti <benve@cisco.com>
M:	Nelson Escobar <neescoba@cisco.com>
M:	Satish Kharat <satishkh@cisco.com>
S:	Supported
F:	drivers/infiniband/hw/usnic/
@@ -14412,9 +14410,9 @@ LANTIQ PEF2256 DRIVER
M:	Herve Codina <herve.codina@bootlin.com>
S:	Maintained
F:	Documentation/devicetree/bindings/net/lantiq,pef2256.yaml
F:	drivers/net/wan/framer/pef2256/
F:	drivers/net/wan/framer/
F:	drivers/pinctrl/pinctrl-pef2256.c
F:	include/linux/framer/pef2256.h
F:	include/linux/framer/
LASI 53c700 driver for PARISC
M:	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
@@ -21695,7 +21693,7 @@ S: Maintained
F:	drivers/net/ethernet/qualcomm/emac/
QUALCOMM ETHQOS ETHERNET DRIVER
M:	Vinod Koul <vkoul@kernel.org>
M:	Mohd Ayaan Anwar <mohd.anwar@oss.qualcomm.com>
L:	netdev@vger.kernel.org
L:	linux-arm-msm@vger.kernel.org
S:	Maintained
+14 −10
Original line number Diff line number Diff line
@@ -2046,9 +2046,11 @@ static int qca_setup(struct hci_uart *hu)
	}

out:
	if (ret && retries < MAX_INIT_RETRIES) {
		bt_dev_warn(hdev, "Retry BT power ON:%d", retries);
	if (ret) {
		qca_power_shutdown(hu);

		if (retries < MAX_INIT_RETRIES) {
			bt_dev_warn(hdev, "Retry BT power ON:%d", retries);
			if (hu->serdev) {
				serdev_device_close(hu->serdev);
				ret = serdev_device_open(hu->serdev);
@@ -2060,6 +2062,8 @@ static int qca_setup(struct hci_uart *hu)
			retries++;
			goto retry;
		}
		return ret;
	}

	/* Setup bdaddr */
	if (soc_type == QCA_ROME)
+2 −5
Original line number Diff line number Diff line
@@ -981,11 +981,7 @@ zl3073x_devm_dpll_init(struct zl3073x_dev *zldev, u8 num_dplls)
	}

	/* Add devres action to release DPLL related resources */
	rc = devm_add_action_or_reset(zldev->dev, zl3073x_dev_dpll_fini, zldev);
	if (rc)
		goto error;

	return 0;
	return devm_add_action_or_reset(zldev->dev, zl3073x_dev_dpll_fini, zldev);

error:
	zl3073x_dev_dpll_fini(zldev);
@@ -1026,6 +1022,7 @@ int zl3073x_dev_probe(struct zl3073x_dev *zldev,
				     "Unknown or non-match chip ID: 0x%0x\n",
				     id);
	}
	zldev->chip_id = id;

	/* Read revision, firmware version and custom config version */
	rc = zl3073x_read_u16(zldev, ZL_REG_REVISION, &revision);
+28 −0
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ struct zl3073x_dpll;
 * @dev: pointer to device
 * @regmap: regmap to access device registers
 * @multiop_lock: to serialize multiple register operations
 * @chip_id: chip ID read from hardware
 * @ref: array of input references' invariants
 * @out: array of outs' invariants
 * @synth: array of synths' invariants
@@ -48,6 +49,7 @@ struct zl3073x_dev {
	struct device		*dev;
	struct regmap		*regmap;
	struct mutex		multiop_lock;
	u16			chip_id;

	/* Invariants */
	struct zl3073x_ref	ref[ZL3073X_NUM_REFS];
@@ -144,6 +146,32 @@ int zl3073x_write_hwreg_seq(struct zl3073x_dev *zldev,

int zl3073x_ref_phase_offsets_update(struct zl3073x_dev *zldev, int channel);

/**
 * zl3073x_dev_is_ref_phase_comp_32bit - check ref phase comp register size
 * @zldev: pointer to zl3073x device
 *
 * Some chip IDs have a 32-bit wide ref_phase_offset_comp register instead
 * of the default 48-bit.
 *
 * Return: true if the register is 32-bit, false if 48-bit
 */
static inline bool
zl3073x_dev_is_ref_phase_comp_32bit(struct zl3073x_dev *zldev)
{
	switch (zldev->chip_id) {
	case 0x0E30:
	case 0x0E93:
	case 0x0E94:
	case 0x0E95:
	case 0x0E96:
	case 0x0E97:
	case 0x1F60:
		return true;
	default:
		return false;
	}
}

static inline bool
zl3073x_is_n_pin(u8 id)
{
Loading