From: Paolo Abeni Date: Thu, 13 Mar 2025 22:01:29 +0000 (+0100) Subject: Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net X-Git-Tag: v6.15-rc1~160^2~106 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=941defcea7e11ad7ff8f0d4856716dd637d757dd;p=thirdparty%2Fkernel%2Flinux.git Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net Cross-merge networking fixes after downstream PR (net-6.14-rc6). Conflicts: tools/testing/selftests/drivers/net/ping.py 75cc19c8ff89 ("selftests: drv-net: add xdp cases for ping.py") de94e8697405 ("selftests: drv-net: store addresses in dict indexed by ipver") https://lore.kernel.org/netdev/20250311115758.17a1d414@canb.auug.org.au/ net/core/devmem.c a70f891e0fa0 ("net: devmem: do not WARN conditionally after netdev_rx_queue_restart()") 1d22d3060b9b ("net: drop rtnl_lock for queue_mgmt operations") https://lore.kernel.org/netdev/20250313114929.43744df1@canb.auug.org.au/ Adjacent changes: tools/testing/selftests/net/Makefile 6f50175ccad4 ("selftests: Add IPv6 link-local address generation tests for GRE devices.") 2e5584e0f913 ("selftests/net: expand cmsg_ipv6.sh with ipv4") drivers/net/ethernet/broadcom/bnxt/bnxt.c 661958552eda ("eth: bnxt: do not use BNXT_VNIC_NTUPLE unconditionally in queue restart logic") fe96d717d38e ("bnxt_en: Extend queue stop/start for TX rings") Signed-off-by: Paolo Abeni --- 941defcea7e11ad7ff8f0d4856716dd637d757dd diff --cc drivers/net/ethernet/broadcom/bnxt/bnxt.c index d4dc812eb7e24,55f553debd3b2..869bdde09c730 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c @@@ -15869,16 -15648,10 +15888,16 @@@ static int bnxt_queue_start(struct net_ if (bp->flags & BNXT_FLAG_AGG_RINGS) bnxt_db_write(bp, &rxr->rx_agg_db, rxr->rx_agg_prod); - cpr = &rxr->bnapi->cp_ring; - cpr->sw_stats->rx.rx_resets++; + if (bp->flags & BNXT_FLAG_SHARED_RINGS) { + rc = bnxt_tx_queue_start(bp, idx); + if (rc) + goto err_reset; + } + + napi_enable(&bnapi->napi); + bnxt_db_nq_arm(bp, &cpr->cp_db, cpr->cp_raw_cons); - for (i = 0; i <= BNXT_VNIC_NTUPLE; i++) { + for (i = 0; i <= bp->nr_vnics; i++) { vnic = &bp->vnic_info[i]; rc = bnxt_hwrm_vnic_set_rss_p5(bp, vnic, true); @@@ -15907,12 -15676,10 +15926,12 @@@ static int bnxt_queue_stop(struct net_d { struct bnxt *bp = netdev_priv(dev); struct bnxt_rx_ring_info *rxr; + struct bnxt_cp_ring_info *cpr; struct bnxt_vnic_info *vnic; + struct bnxt_napi *bnapi; int i; - for (i = 0; i <= BNXT_VNIC_NTUPLE; i++) { + for (i = 0; i <= bp->nr_vnics; i++) { vnic = &bp->vnic_info[i]; vnic->mru = 0; bnxt_hwrm_vnic_update(bp, vnic, diff --cc drivers/net/phy/nxp-c45-tja11xx.c index 63945fe58227e,e9fc54517449c..250a018d55468 --- a/drivers/net/phy/nxp-c45-tja11xx.c +++ b/drivers/net/phy/nxp-c45-tja11xx.c @@@ -19,12 -19,14 +19,17 @@@ #include "nxp-c45-tja11xx.h" +#define PHY_ID_MASK GENMASK(31, 4) +/* Same id: TJA1103, TJA1104 */ #define PHY_ID_TJA_1103 0x001BB010 +/* Same id: TJA1120, TJA1121 */ #define PHY_ID_TJA_1120 0x001BB031 + #define VEND1_DEVICE_ID3 0x0004 + #define TJA1120_DEV_ID3_SILICON_VERSION GENMASK(15, 12) + #define TJA1120_DEV_ID3_SAMPLE_TYPE GENMASK(11, 8) + #define DEVICE_ID3_SAMPLE_TYPE_R 0x9 + #define VEND1_DEVICE_CONTROL 0x0040 #define DEVICE_CONTROL_RESET BIT(15) #define DEVICE_CONTROL_CONFIG_GLOBAL_EN BIT(14) diff --cc net/core/devmem.c index 5c4d79a1bcd82,0e5a2c672efd8..6802e82a4d03b --- a/net/core/devmem.c +++ b/net/core/devmem.c @@@ -125,12 -118,11 +126,14 @@@ void net_devmem_unbind_dmabuf(struct ne WARN_ON(rxq->mp_params.mp_priv != binding); rxq->mp_params.mp_priv = NULL; + rxq->mp_params.mp_ops = NULL; + netdev_lock(binding->dev); rxq_idx = get_netdev_rx_queue_index(rxq); - WARN_ON(netdev_rx_queue_restart(binding->dev, rxq_idx)); + + err = netdev_rx_queue_restart(binding->dev, rxq_idx); + WARN_ON(err && err != -ENETDOWN); + netdev_unlock(binding->dev); } xa_erase(&net_devmem_dmabuf_bindings, binding->id); diff --cc tools/testing/selftests/drivers/net/ping.py index 17dc11e9b6dd6,93f4b411b378f..7a1026a073681 --- a/tools/testing/selftests/drivers/net/ping.py +++ b/tools/testing/selftests/drivers/net/ping.py @@@ -1,27 -1,34 +1,34 @@@ #!/usr/bin/env python3 # SPDX-License-Identifier: GPL-2.0 + import os + import random, string, time from lib.py import ksft_run, ksft_exit - from lib.py import ksft_eq - from lib.py import NetDrvEpEnv + from lib.py import ksft_eq, KsftSkipEx, KsftFailEx + from lib.py import EthtoolFamily, NetDrvEpEnv from lib.py import bkg, cmd, wait_port_listen, rand_port + from lib.py import ethtool, ip + remote_ifname="" + no_sleep=False - def test_v4(cfg) -> None: + def _test_v4(cfg) -> None: - cfg.require_v4() + cfg.require_ipver("4") - cmd("ping -c 1 -W0.5 " + cfg.remote_addr_v["4"]) - cmd("ping -c 1 -W0.5 " + cfg.addr_v["4"], host=cfg.remote) + cmd(f"ping -c 1 -W0.5 {cfg.remote_v4}") + cmd(f"ping -c 1 -W0.5 {cfg.v4}", host=cfg.remote) + cmd(f"ping -s 65000 -c 1 -W0.5 {cfg.remote_v4}") + cmd(f"ping -s 65000 -c 1 -W0.5 {cfg.v4}", host=cfg.remote) - - def test_v6(cfg) -> None: + def _test_v6(cfg) -> None: - cfg.require_v6() + cfg.require_ipver("6") - cmd("ping -c 1 -W0.5 " + cfg.remote_addr_v["6"]) - cmd("ping -c 1 -W0.5 " + cfg.addr_v["6"], host=cfg.remote) - + cmd(f"ping -c 1 -W5 {cfg.remote_v6}") + cmd(f"ping -c 1 -W5 {cfg.v6}", host=cfg.remote) + cmd(f"ping -s 65000 -c 1 -W0.5 {cfg.remote_v6}") + cmd(f"ping -s 65000 -c 1 -W0.5 {cfg.v6}", host=cfg.remote) - def test_tcp(cfg) -> None: + def _test_tcp(cfg) -> None: cfg.require_cmd("socat", remote=True) port = rand_port() diff --cc tools/testing/selftests/net/Makefile index d5aa16185f429,5916f3b81c39f..f03a0399e7a3a --- a/tools/testing/selftests/net/Makefile +++ b/tools/testing/selftests/net/Makefile @@@ -31,14 -31,12 +31,15 @@@ TEST_PROGS += veth.s TEST_PROGS += ioam6.sh TEST_PROGS += gro.sh TEST_PROGS += gre_gso.sh + TEST_PROGS += gre_ipv6_lladdr.sh TEST_PROGS += cmsg_so_mark.sh TEST_PROGS += cmsg_so_priority.sh -TEST_PROGS += cmsg_time.sh cmsg_ipv6.sh +TEST_PROGS += test_so_rcv.sh +TEST_PROGS += cmsg_time.sh cmsg_ip.sh TEST_PROGS += netns-name.sh +TEST_PROGS += link_netns.py TEST_PROGS += nl_netdev.py +TEST_PROGS += rtnetlink.py TEST_PROGS += srv6_end_dt46_l3vpn_test.sh TEST_PROGS += srv6_end_dt4_l3vpn_test.sh TEST_PROGS += srv6_end_dt6_l3vpn_test.sh