From nobody Tue Feb 24 10:45:06 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fKvWC52kXz6ThKX for ; Tue, 24 Feb 2026 10:45:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fKvWC2rNSz42ds for ; Tue, 24 Feb 2026 10:45:11 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771929911; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=6xuemcRASKgv0kXq7GjRd70tvllOp8uHoVE82kvPyZE=; b=fwxlkYPea1fmsAdZExI1lyQcnhFUszIQGmmL/DbcneOVLRqu7YpcdX7R8XJ0At3r2HDhAV 1Z2PR4kBd0sdfBn5so3wAlqxwcRMy7vqw/G03iRGgN6fN3Z5drjtk6O3fQxG4fB/fif/d1 WACv2CGWliyJd57QE0Qnix03jOsqLd+F1U3AfY3RgDWWy/4OzktHtS/ch8lFEeTkkgna3V 4ok1Xt1hLyYyB7kr69KrzjfRbxrrL4EHlN56qtddkmpZOtEplVtZ7Ol8Cy6RMBdnKCHy6B KF396GKT09QSH9hXwGw9t0GFfgJyjOktWOMuTLd40zOW1Lh8Bj5CBCA0cis8Xg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771929911; a=rsa-sha256; cv=none; b=FxkA7OBvVvGFpiKhVbIjy1U2U0TG5NAnf/UQ4N1TDqaFPrf/tsDjJJ8m228NFd4Q9Z0BCP Pn3/L4xGsGleF7kSnR3nzM524GtOBRjQOkO58vNwMs6FD8Zlxcn8UBihUxTuEiHza6kgra OjZyecOgaX/PfhIlVG1MPWv4ASYvtdVaMC8RE5CPgYpwVakQsQICWjJnXudkOFmpL5y9DS q44uXzP0RoKpdDwCVdpEi+yguBYuDDLCYnLA1a8ui8Zzvn8Q+h0ZCN81tGljPrj6zp3F5y FT620uwmGN5WUQbotB4eH1ONOeQ/HxtFv9/HodF/rGNagBdRGk2L8/9D+RnkOw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771929911; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=6xuemcRASKgv0kXq7GjRd70tvllOp8uHoVE82kvPyZE=; b=adTcbGAemi4b9juxAQ7F7H4c9o86tKUfsD2GnsRBSxEl+5u0NhKVyDiSyhjmdJuP5NiLuo H82sV4It7pw7A0iAV0bpgdvaTsKkwdcknczfPycn23/tQrKmpeOeJhzDLVaSU5e/P0BOYM 471zsj6OplzM90jFlI4fNnhnbYink7xO787Uj5jvPmgc3RpOLZDTNL8L63T4U4Z9bKZA8y TUcFrbMUgNNP7k3Am0VmPJWa+9sb/cJQrFwykCNKhLRxOJrxCMqvggXpOqCNky0C7IY5OI zS+PyiG3rVVM+UGdF1vfGxa6dI3Okj2vZzISbIjPxOnQwDoOI5tr7901TCe3fw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fKvWC2LJYz1Bcs for ; Tue, 24 Feb 2026 10:45:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3652b by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 24 Feb 2026 10:45:06 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Keith Reynolds From: Zhenlei Huang Subject: git: 610b81333f48 - stable/13 - qlnxe: Fix promiscuous and allmulti settings List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: zlei X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 610b81333f4816b5906df780cb064526cd8ba1f0 Auto-Submitted: auto-generated Date: Tue, 24 Feb 2026 10:45:06 +0000 Message-Id: <699d8132.3652b.4381cdf5@gitrepo.freebsd.org> The branch stable/13 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=610b81333f4816b5906df780cb064526cd8ba1f0 commit 610b81333f4816b5906df780cb064526cd8ba1f0 Author: Keith Reynolds AuthorDate: 2024-05-28 05:57:44 +0000 Commit: Zhenlei Huang CommitDate: 2026-02-24 10:15:35 +0000 qlnxe: Fix promiscuous and allmulti settings PR: 278087 (cherry picked from commit e3ec564ecb9c2daa96a8db36052e50ea554fe598) (cherry picked from commit e4f48fc20b56df8a03ab63fb867f49bfcc0e7eae) --- sys/dev/qlnx/qlnxe/qlnx_os.c | 33 ++++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/sys/dev/qlnx/qlnxe/qlnx_os.c b/sys/dev/qlnx/qlnxe/qlnx_os.c index ba9731600b50..64909d39ff59 100644 --- a/sys/dev/qlnx/qlnxe/qlnx_os.c +++ b/sys/dev/qlnx/qlnxe/qlnx_os.c @@ -85,8 +85,8 @@ static void qlnx_init_ifnet(device_t dev, qlnx_host_t *ha); static void qlnx_init(void *arg); static void qlnx_init_locked(qlnx_host_t *ha); static int qlnx_set_multi(qlnx_host_t *ha, uint32_t add_multi); -static int qlnx_set_promisc(qlnx_host_t *ha); -static int qlnx_set_allmulti(qlnx_host_t *ha); +static int qlnx_set_promisc(qlnx_host_t *ha, int enabled); +static int qlnx_set_allmulti(qlnx_host_t *ha, int enabled); static int qlnx_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data); static int qlnx_media_change(struct ifnet *ifp); static void qlnx_media_status(struct ifnet *ifp, struct ifmediareq *ifmr); @@ -2624,7 +2624,7 @@ qlnx_set_multi(qlnx_host_t *ha, uint32_t add_multi) } static int -qlnx_set_promisc(qlnx_host_t *ha) +qlnx_set_promisc(qlnx_host_t *ha, int enabled) { int rc = 0; uint8_t filter; @@ -2633,15 +2633,20 @@ qlnx_set_promisc(qlnx_host_t *ha) return (0); filter = ha->filter; - filter |= ECORE_ACCEPT_MCAST_UNMATCHED; - filter |= ECORE_ACCEPT_UCAST_UNMATCHED; + if (enabled) { + filter |= ECORE_ACCEPT_MCAST_UNMATCHED; + filter |= ECORE_ACCEPT_UCAST_UNMATCHED; + } else { + filter &= ~ECORE_ACCEPT_MCAST_UNMATCHED; + filter &= ~ECORE_ACCEPT_UCAST_UNMATCHED; + } rc = qlnx_set_rx_accept_filter(ha, filter); return (rc); } static int -qlnx_set_allmulti(qlnx_host_t *ha) +qlnx_set_allmulti(qlnx_host_t *ha, int enabled) { int rc = 0; uint8_t filter; @@ -2650,7 +2655,11 @@ qlnx_set_allmulti(qlnx_host_t *ha) return (0); filter = ha->filter; - filter |= ECORE_ACCEPT_MCAST_UNMATCHED; + if (enabled) { + filter |= ECORE_ACCEPT_MCAST_UNMATCHED; + } else { + filter &= ~ECORE_ACCEPT_MCAST_UNMATCHED; + } rc = qlnx_set_rx_accept_filter(ha, filter); return (rc); @@ -2714,10 +2723,10 @@ qlnx_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data) if (ifp->if_drv_flags & IFF_DRV_RUNNING) { if ((ifp->if_flags ^ ha->if_flags) & IFF_PROMISC) { - ret = qlnx_set_promisc(ha); + ret = qlnx_set_promisc(ha, ifp->if_flags & IFF_PROMISC); } else if ((ifp->if_flags ^ ha->if_flags) & IFF_ALLMULTI) { - ret = qlnx_set_allmulti(ha); + ret = qlnx_set_allmulti(ha, ifp->if_flags & IFF_ALLMULTI); } } else { ha->max_frame_size = ifp->if_mtu + @@ -2727,9 +2736,9 @@ qlnx_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data) } else { if (ifp->if_drv_flags & IFF_DRV_RUNNING) qlnx_stop(ha); - ha->if_flags = ifp->if_flags; } + ha->if_flags = ifp->if_flags; QLNX_UNLOCK(ha); break; @@ -7196,9 +7205,11 @@ qlnx_set_rx_mode(qlnx_host_t *ha) ECORE_ACCEPT_MCAST_MATCHED | ECORE_ACCEPT_BCAST; - if (qlnx_vf_device(ha) == 0) { + if (qlnx_vf_device(ha) == 0 || (ha->ifp->if_flags & IFF_PROMISC)) { filter |= ECORE_ACCEPT_UCAST_UNMATCHED; filter |= ECORE_ACCEPT_MCAST_UNMATCHED; + } else if (ha->ifp->if_flags & IFF_ALLMULTI) { + filter |= ECORE_ACCEPT_MCAST_UNMATCHED; } ha->filter = filter;