Commit 18a7e218 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull  networking fixes from Paolo Abeni:
 "Including fixes from netfilter.

  Current release - regressions:

   - mlx5: fix pre-2.40 binutils assembler error

  Current release - new code bugs:

   - net: psp: don't assume reply skbs will have a socket

   - eth: fbnic: fix missing programming of the default descriptor

  Previous releases - regressions:

   - page_pool: fix PP_MAGIC_MASK to avoid crashing on some 32-bit arches

   - tcp:
       - take care of zero tp->window_clamp in tcp_set_rcvlowat()
       - don't call reqsk_fastopen_remove() in tcp_conn_request()

   - eth:
       - ice: release xa entry on adapter allocation failure
       - usb: asix: hold PM usage ref to avoid PM/MDIO + RTNL deadlock

  Previous releases - always broken:

   - netfilter: validate objref and objrefmap expressions

   - sctp: fix a null dereference in sctp_disposition sctp_sf_do_5_1D_ce()

   - eth:
       - mlx4: prevent potential use after free in mlx4_en_do_uc_filter()
       - mlx5: prevent tunnel mode conflicts between FDB and NIC IPsec tables
       - ocelot: fix use-after-free caused by cyclic delayed work

  Misc:

   -  add support for MediaTek PCIe 5G HP DRMR-H01"

* tag 'net-6.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (38 commits)
  net: airoha: Fix loopback mode configuration for GDM2 port
  selftests: drv-net: pp_alloc_fail: add necessary optoins to config
  selftests: drv-net: pp_alloc_fail: lower traffic expectations
  selftests: drv-net: fix linter warnings in pp_alloc_fail
  eth: fbnic: fix reporting of alloc_failed qstats
  selftests: drv-net: xdp: add test for interface level qstats
  selftests: drv-net: xdp: rename netnl to ethnl
  eth: fbnic: fix saving stats from XDP_TX rings on close
  eth: fbnic: fix accounting of XDP packets
  eth: fbnic: fix missing programming of the default descriptor
  selftests: netfilter: query conntrack state to check for port clash resolution
  selftests: netfilter: nft_fib.sh: fix spurious test failures
  bridge: br_vlan_fill_forward_path_pvid: use br_vlan_group_rcu()
  netfilter: nft_objref: validate objref and objrefmap expressions
  net: pse-pd: tps23881: Fix current measurement scaling
  net/mlx5: fix pre-2.40 binutils assembler error
  net/mlx5e: Do not fail PSP init on missing caps
  net/mlx5e: Prevent tunnel reformat when tunnel mode not allowed
  net/mlx5: Prevent tunnel mode conflicts between FDB and NIC IPsec tables
  net: usb: asix: hold PM usage ref to avoid PM/MDIO + RTNL deadlock
  ...
parents 9361cace fea8cdf6
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -1710,7 +1710,9 @@ static void airhoha_set_gdm2_loopback(struct airoha_gdm_port *port)
	airoha_fe_wr(eth, REG_GDM_RXCHN_EN(2), 0xffff);
	airoha_fe_rmw(eth, REG_GDM_LPBK_CFG(2),
		      LPBK_CHAN_MASK | LPBK_MODE_MASK | LPBK_EN_MASK,
		      FIELD_PREP(LPBK_CHAN_MASK, chan) | LPBK_EN_MASK);
		      FIELD_PREP(LPBK_CHAN_MASK, chan) |
		      LBK_GAP_MODE_MASK | LBK_LEN_MODE_MASK |
		      LBK_CHAN_MODE_MASK | LPBK_EN_MASK);
	airoha_fe_rmw(eth, REG_GDM_LEN_CFG(2),
		      GDM_SHORT_LEN_MASK | GDM_LONG_LEN_MASK,
		      FIELD_PREP(GDM_SHORT_LEN_MASK, 60) |
+3 −0
Original line number Diff line number Diff line
@@ -151,6 +151,9 @@
#define LPBK_LEN_MASK			GENMASK(23, 10)
#define LPBK_CHAN_MASK			GENMASK(8, 4)
#define LPBK_MODE_MASK			GENMASK(3, 1)
#define LBK_GAP_MODE_MASK		BIT(3)
#define LBK_LEN_MODE_MASK		BIT(2)
#define LBK_CHAN_MODE_MASK		BIT(1)
#define LPBK_EN_MASK			BIT(0)

#define REG_GDM_TXCHN_EN(_n)		(GDM_BASE(_n) + 0x24)
+2 −0
Original line number Diff line number Diff line
@@ -479,10 +479,12 @@ static int fsl_pq_mdio_probe(struct platform_device *pdev)
					"missing 'reg' property in node %pOF\n",
					tbi);
				err = -EBUSY;
				of_node_put(tbi);
				goto error;
			}
			set_tbipa(*prop, pdev,
				  data->get_tbipa, priv->map, &res);
			of_node_put(tbi);
		}
	}

+6 −4
Original line number Diff line number Diff line
@@ -99,19 +99,21 @@ struct ice_adapter *ice_adapter_get(struct pci_dev *pdev)

	index = ice_adapter_xa_index(pdev);
	scoped_guard(mutex, &ice_adapters_mutex) {
		err = xa_insert(&ice_adapters, index, NULL, GFP_KERNEL);
		if (err == -EBUSY) {
		adapter = xa_load(&ice_adapters, index);
		if (adapter) {
			refcount_inc(&adapter->refcount);
			WARN_ON_ONCE(adapter->index != ice_adapter_index(pdev));
			return adapter;
		}
		err = xa_reserve(&ice_adapters, index, GFP_KERNEL);
		if (err)
			return ERR_PTR(err);

		adapter = ice_adapter_new(pdev);
		if (!adapter)
		if (!adapter) {
			xa_release(&ice_adapters, index);
			return ERR_PTR(-ENOMEM);
		}
		xa_store(&ice_adapters, index, adapter, GFP_KERNEL);
	}
	return adapter;
+1 −1
Original line number Diff line number Diff line
@@ -1180,9 +1180,9 @@ static void mlx4_en_do_uc_filter(struct mlx4_en_priv *priv,
				mlx4_unregister_mac(mdev->dev, priv->port, mac);

				hlist_del_rcu(&entry->hlist);
				kfree_rcu(entry, rcu);
				en_dbg(DRV, priv, "Removed MAC %pM on port:%d\n",
				       entry->mac, priv->port);
				kfree_rcu(entry, rcu);
				++removed;
			}
		}
Loading