Commit acc4d5ff authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull networking fixes from Jakub Kicinski:
 "Rather tiny pull request, mostly so that we can get into our trees
  your fix to the x86 Makefile.

  Current release - regressions:

   - Revert "tcp: avoid atomic operations on sk->sk_rmem_alloc", error
     queue accounting was missed

  Current release - new code bugs:

   - 5 fixes for the netdevice instance locking work

  Previous releases - regressions:

   - usbnet: restore usb%d name exception for local mac addresses

  Previous releases - always broken:

   - rtnetlink: allocate vfinfo size for VF GUIDs when supported, avoid
     spurious GET_LINK failures

   - eth: mana: Switch to page pool for jumbo frames

   - phy: broadcom: Correct BCM5221 PHY model detection

  Misc:

   - selftests: drv-net: replace helpers for referring to other files"

* tag 'net-6.15-rc0' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (22 commits)
  Revert "tcp: avoid atomic operations on sk->sk_rmem_alloc"
  bnxt_en: bring back rtnl lock in bnxt_shutdown
  eth: gve: add missing netdev locks on reset and shutdown paths
  selftests: mptcp: ignore mptcp_diag binary
  selftests: mptcp: close fd_in before returning in main_loop
  selftests: mptcp: fix incorrect fd checks in main_loop
  mptcp: fix NULL pointer in can_accept_new_subflow
  octeontx2-af: Free NIX_AF_INT_VEC_GEN irq
  octeontx2-af: Fix mbox INTR handler when num VFs > 64
  net: fix use-after-free in the netdev_nl_sock_priv_destroy()
  selftests: net: use Path helpers in ping
  selftests: net: use the dummy bpf from net/lib
  selftests: drv-net: replace the rpath helper with Path objects
  net: lapbether: use netdev_lockdep_set_classes() helper
  net: phy: broadcom: Correct BCM5221 PHY model detection
  net: usb: usbnet: restore usb%d name exception for local mac addresses
  net/mlx5e: SHAMPO, Make reserved size independent of page size
  net: mana: Switch to page pool for jumbo frames
  MAINTAINERS: Add dedicated entries for phy_link_topology
  net: move replay logic to tc_modify_qdisc
  ...
parents 3491aa04 f278b6d5
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -16806,6 +16806,13 @@ F: net/ethtool/mm.c
F:	tools/testing/selftests/drivers/net/hw/ethtool_mm.sh
K:	ethtool_mm
NETWORKING [ETHTOOL PHY TOPOLOGY]
M:	Maxime Chevallier <maxime.chevallier@bootlin.com>
F:	Documentation/networking/phy-link-topology.rst
F:	drivers/net/phy/phy_link_topology.c
F:	include/linux/phy_link_topology.h
F:	net/ethtool/phy.c
NETWORKING [GENERAL]
M:	"David S. Miller" <davem@davemloft.net>
M:	Eric Dumazet <edumazet@google.com>
+2 −0
Original line number Diff line number Diff line
@@ -16698,6 +16698,7 @@ static void bnxt_shutdown(struct pci_dev *pdev)
	if (!dev)
		return;

	rtnl_lock();
	netdev_lock(dev);
	bp = netdev_priv(dev);
	if (!bp)
@@ -16717,6 +16718,7 @@ static void bnxt_shutdown(struct pci_dev *pdev)

shutdown_exit:
	netdev_unlock(dev);
	rtnl_unlock();
}

#ifdef CONFIG_PM_SLEEP
+4 −0
Original line number Diff line number Diff line
@@ -2077,7 +2077,9 @@ static void gve_handle_reset(struct gve_priv *priv)

	if (gve_get_do_reset(priv)) {
		rtnl_lock();
		netdev_lock(priv->dev);
		gve_reset(priv, false);
		netdev_unlock(priv->dev);
		rtnl_unlock();
	}
}
@@ -2714,6 +2716,7 @@ static void gve_shutdown(struct pci_dev *pdev)
	bool was_up = netif_running(priv->dev);

	rtnl_lock();
	netdev_lock(netdev);
	if (was_up && gve_close(priv->dev)) {
		/* If the dev was up, attempt to close, if close fails, reset */
		gve_reset_and_teardown(priv, was_up);
@@ -2721,6 +2724,7 @@ static void gve_shutdown(struct pci_dev *pdev)
		/* If the dev wasn't up or close worked, finish tearing down */
		gve_teardown_priv_resources(priv);
	}
	netdev_unlock(netdev);
	rtnl_unlock();
}

+1 −1
Original line number Diff line number Diff line
@@ -2634,7 +2634,7 @@ static irqreturn_t rvu_mbox_intr_handler(int irq, void *rvu_irq)
		rvupf_write64(rvu, RVU_PF_VFPF_MBOX_INTX(1), intr);

		rvu_queue_work(&rvu->afvf_wq_info, 64, vfs, intr);
		vfs -= 64;
		vfs = 64;
	}

	intr = rvupf_read64(rvu, RVU_PF_VFPF_MBOX_INTX(0));
+1 −1
Original line number Diff line number Diff line
@@ -207,7 +207,7 @@ static void rvu_nix_unregister_interrupts(struct rvu *rvu)
		rvu->irq_allocated[offs + NIX_AF_INT_VEC_RVU] = false;
	}

	for (i = NIX_AF_INT_VEC_AF_ERR; i < NIX_AF_INT_VEC_CNT; i++)
	for (i = NIX_AF_INT_VEC_GEN; i < NIX_AF_INT_VEC_CNT; i++)
		if (rvu->irq_allocated[offs + i]) {
			free_irq(pci_irq_vector(rvu->pdev, offs + i), rvu_dl);
			rvu->irq_allocated[offs + i] = false;
Loading