Commit 3cf0a98f authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull networking fixes from Paolo Abeni:
 "Interestingly the recent kmemleak improvements allowed our CI to catch
  a couple of percpu leaks addressed here.

  We (mostly Jakub, to be accurate) are working to increase review
  coverage over the net code-base tweaking the MAINTAINER entries.

  Current release - regressions:

   - core: harmonize tstats and dstats

   - ipv6: fix dst refleaks in rpl, seg6 and ioam6 lwtunnels

   - eth: tun: revert fix group permission check

   - eth: stmmac: revert "specify hardware capability value when FIFO
     size isn't specified"

  Previous releases - regressions:

   - udp: gso: do not drop small packets when PMTU reduces

   - rxrpc: fix race in call state changing vs recvmsg()

   - eth: ice: fix Rx data path for heavy 9k MTU traffic

   - eth: vmxnet3: fix tx queue race condition with XDP

  Previous releases - always broken:

   - sched: pfifo_tail_enqueue: drop new packet when sch->limit == 0

   - ethtool: ntuple: fix rss + ring_cookie check

   - rxrpc: fix the rxrpc_connection attend queue handling

  Misc:

   - recognize Kuniyuki Iwashima as a maintainer"

* tag 'net-6.14-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (34 commits)
  Revert "net: stmmac: Specify hardware capability value when FIFO size isn't specified"
  MAINTAINERS: add a sample ethtool section entry
  MAINTAINERS: add entry for ethtool
  rxrpc: Fix race in call state changing vs recvmsg()
  rxrpc: Fix call state set to not include the SERVER_SECURING state
  net: sched: Fix truncation of offloaded action statistics
  tun: revert fix group permission check
  selftests/tc-testing: Add a test case for qdisc_tree_reduce_backlog()
  netem: Update sch->q.qlen before qdisc_tree_reduce_backlog()
  selftests/tc-testing: Add a test case for pfifo_head_drop qdisc when limit==0
  pfifo_tail_enqueue: Drop new packet when sch->limit == 0
  selftests: mptcp: connect: -f: no reconnect
  net: rose: lock the socket in rose_bind()
  net: atlantic: fix warning during hot unplug
  rxrpc: Fix the rxrpc_connection attend queue handling
  net: harmonize tstats and dstats
  selftests: drv-net: rss_ctx: don't fail reconfigure test if queue offset not supported
  selftests: drv-net: rss_ctx: add missing cleanup in queue reconfigure
  ethtool: ntuple: fix rss + ring_cookie check
  ethtool: rss: fix hiding unsupported fields in dumps
  ...
parents 92514ef2 2a64c963
Loading
Loading
Loading
Loading
+43 −0
Original line number Diff line number Diff line
@@ -16462,6 +16462,22 @@ F: include/net/dsa.h
F:	net/dsa/
F:	tools/testing/selftests/drivers/net/dsa/
NETWORKING [ETHTOOL]
M:	Andrew Lunn <andrew@lunn.ch>
M:	Jakub Kicinski <kuba@kernel.org>
F:	Documentation/netlink/specs/ethtool.yaml
F:	Documentation/networking/ethtool-netlink.rst
F:	include/linux/ethtool*
F:	include/uapi/linux/ethtool*
F:	net/ethtool/
F:	tools/testing/selftests/drivers/net/*/ethtool*
NETWORKING [ETHTOOL CABLE TEST]
M:	Andrew Lunn <andrew@lunn.ch>
F:	net/ethtool/cabletest.c
F:	tools/testing/selftests/drivers/net/*/ethtool*
K:	cable_test
NETWORKING [GENERAL]
M:	"David S. Miller" <davem@davemloft.net>
M:	Eric Dumazet <edumazet@google.com>
@@ -16621,6 +16637,7 @@ F: tools/testing/selftests/net/mptcp/
NETWORKING [TCP]
M:	Eric Dumazet <edumazet@google.com>
M:	Neal Cardwell <ncardwell@google.com>
R:	Kuniyuki Iwashima <kuniyu@amazon.com>
L:	netdev@vger.kernel.org
S:	Maintained
F:	Documentation/networking/net_cachelines/tcp_sock.rst
@@ -16648,6 +16665,31 @@ F: include/net/tls.h
F:	include/uapi/linux/tls.h
F:	net/tls/*
NETWORKING [SOCKETS]
M:	Eric Dumazet <edumazet@google.com>
M:	Kuniyuki Iwashima <kuniyu@amazon.com>
M:	Paolo Abeni <pabeni@redhat.com>
M:	Willem de Bruijn <willemb@google.com>
S:	Maintained
F:	include/linux/sock_diag.h
F:	include/linux/socket.h
F:	include/linux/sockptr.h
F:	include/net/sock.h
F:	include/net/sock_reuseport.h
F:	include/uapi/linux/socket.h
F:	net/core/*sock*
F:	net/core/scm.c
F:	net/socket.c
NETWORKING [UNIX SOCKETS]
M:	Kuniyuki Iwashima <kuniyu@amazon.com>
S:	Maintained
F:	include/net/af_unix.h
F:	include/net/netns/unix.h
F:	include/uapi/linux/unix_diag.h
F:	net/unix/
F:	tools/testing/selftests/net/af_unix/
NETXEN (1/10) GbE SUPPORT
M:	Manish Chopra <manishc@marvell.com>
M:	Rahul Verma <rahulv@marvell.com>
@@ -17713,6 +17755,7 @@ L: netdev@vger.kernel.org
L:	dev@openvswitch.org
S:	Maintained
W:	http://openvswitch.org
F:	Documentation/networking/openvswitch.rst
F:	include/uapi/linux/openvswitch.h
F:	net/openvswitch/
F:	tools/testing/selftests/net/openvswitch/
+3 −1
Original line number Diff line number Diff line
@@ -1441,7 +1441,9 @@ void aq_nic_deinit(struct aq_nic_s *self, bool link_down)
	aq_ptp_ring_free(self);
	aq_ptp_free(self);

	if (likely(self->aq_fw_ops->deinit) && link_down) {
	/* May be invoked during hot unplug. */
	if (pci_device_is_present(self->pdev) &&
	    likely(self->aq_fw_ops->deinit) && link_down) {
		mutex_lock(&self->fwreq_mutex);
		self->aq_fw_ops->deinit(self->aq_hw);
		mutex_unlock(&self->fwreq_mutex);
+12 −4
Original line number Diff line number Diff line
@@ -41,9 +41,12 @@ void bcmgenet_get_wol(struct net_device *dev, struct ethtool_wolinfo *wol)
{
	struct bcmgenet_priv *priv = netdev_priv(dev);
	struct device *kdev = &priv->pdev->dev;
	u32 phy_wolopts = 0;

	if (dev->phydev)
	if (dev->phydev) {
		phy_ethtool_get_wol(dev->phydev, wol);
		phy_wolopts = wol->wolopts;
	}

	/* MAC is not wake-up capable, return what the PHY does */
	if (!device_can_wakeup(kdev))
@@ -51,9 +54,14 @@ void bcmgenet_get_wol(struct net_device *dev, struct ethtool_wolinfo *wol)

	/* Overlay MAC capabilities with that of the PHY queried before */
	wol->supported |= WAKE_MAGIC | WAKE_MAGICSECURE | WAKE_FILTER;
	wol->wolopts = priv->wolopts;
	memset(wol->sopass, 0, sizeof(wol->sopass));
	wol->wolopts |= priv->wolopts;

	/* Return the PHY configured magic password */
	if (phy_wolopts & WAKE_MAGICSECURE)
		return;

	/* Otherwise the MAC one */
	memset(wol->sopass, 0, sizeof(wol->sopass));
	if (wol->wolopts & WAKE_MAGICSECURE)
		memcpy(wol->sopass, priv->sopass, sizeof(priv->sopass));
}
@@ -70,7 +78,7 @@ int bcmgenet_set_wol(struct net_device *dev, struct ethtool_wolinfo *wol)
	/* Try Wake-on-LAN from the PHY first */
	if (dev->phydev) {
		ret = phy_ethtool_set_wol(dev->phydev, wol);
		if (ret != -EOPNOTSUPP)
		if (ret != -EOPNOTSUPP && wol->wolopts)
			return ret;
	}

+58 −0
Original line number Diff line number Diff line
@@ -55,6 +55,7 @@
#include <linux/hwmon.h>
#include <linux/hwmon-sysfs.h>
#include <linux/crc32poly.h>
#include <linux/dmi.h>

#include <net/checksum.h>
#include <net/gso.h>
@@ -18212,6 +18213,50 @@ static int tg3_resume(struct device *device)

static SIMPLE_DEV_PM_OPS(tg3_pm_ops, tg3_suspend, tg3_resume);

/* Systems where ACPI _PTS (Prepare To Sleep) S5 will result in a fatal
 * PCIe AER event on the tg3 device if the tg3 device is not, or cannot
 * be, powered down.
 */
static const struct dmi_system_id tg3_restart_aer_quirk_table[] = {
	{
		.matches = {
			DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
			DMI_MATCH(DMI_PRODUCT_NAME, "PowerEdge R440"),
		},
	},
	{
		.matches = {
			DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
			DMI_MATCH(DMI_PRODUCT_NAME, "PowerEdge R540"),
		},
	},
	{
		.matches = {
			DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
			DMI_MATCH(DMI_PRODUCT_NAME, "PowerEdge R640"),
		},
	},
	{
		.matches = {
			DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
			DMI_MATCH(DMI_PRODUCT_NAME, "PowerEdge R650"),
		},
	},
	{
		.matches = {
			DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
			DMI_MATCH(DMI_PRODUCT_NAME, "PowerEdge R740"),
		},
	},
	{
		.matches = {
			DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
			DMI_MATCH(DMI_PRODUCT_NAME, "PowerEdge R750"),
		},
	},
	{}
};

static void tg3_shutdown(struct pci_dev *pdev)
{
	struct net_device *dev = pci_get_drvdata(pdev);
@@ -18228,6 +18273,19 @@ static void tg3_shutdown(struct pci_dev *pdev)

	if (system_state == SYSTEM_POWER_OFF)
		tg3_power_down(tp);
	else if (system_state == SYSTEM_RESTART &&
		 dmi_first_match(tg3_restart_aer_quirk_table) &&
		 pdev->current_state != PCI_D3cold &&
		 pdev->current_state != PCI_UNKNOWN) {
		/* Disable PCIe AER on the tg3 to avoid a fatal
		 * error during this system restart.
		 */
		pcie_capability_clear_word(pdev, PCI_EXP_DEVCTL,
					   PCI_EXP_DEVCTL_CERE |
					   PCI_EXP_DEVCTL_NFERE |
					   PCI_EXP_DEVCTL_FERE |
					   PCI_EXP_DEVCTL_URRE);
	}

	rtnl_unlock();

+3 −0
Original line number Diff line number Diff line
@@ -981,6 +981,9 @@ static int ice_devlink_rate_node_new(struct devlink_rate *rate_node, void **priv

	/* preallocate memory for ice_sched_node */
	node = devm_kzalloc(ice_hw_to_dev(pi->hw), sizeof(*node), GFP_KERNEL);
	if (!node)
		return -ENOMEM;

	*priv = node;

	return 0;
Loading