Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 08 Aug 2026 00:44:13 +0000
From:      Kevin Bowling <kbowling@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org
Cc:        Wei Zhao <wei.zhao1@intel.com>
Subject:   git: edf4edbd1ca0 - stable/14 - ixgbe: disable VF multicast reception for empty list
Message-ID:  <6a767bdd.3eaf6.59c6aa0c@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch stable/14 has been updated by kbowling:

URL: https://cgit.FreeBSD.org/src/commit/?id=edf4edbd1ca09ee9b0c255d7506f3b5bc9542557

commit edf4edbd1ca09ee9b0c255d7506f3b5bc9542557
Author:     Wei Zhao <wei.zhao1@intel.com>
AuthorDate: 2026-07-28 11:20:32 +0000
Commit:     Kevin Bowling <kbowling@FreeBSD.org>
CommitDate: 2026-08-08 00:42:40 +0000

    ixgbe: disable VF multicast reception for empty list
    
    Clear ROMPE for an empty list and enable it only for a nonempty list.
    FreeBSD already clears ROMPE when resetting a VF, so that part of the
    DPDK change is not needed.
    
    DPDK commit message
    
    net/ixgbe: fix over using multicast table for VF
    
    VMOLR.ROMPE allows a VF to receive packets matching the shared multicast
    table.  Leaving it enabled after the VF removes its last multicast
    address lets PF or peer-VF table entries continue selecting that VF.
    
    Signed-off-by: Wei Zhao <wei.zhao1@intel.com>
    Acked-by: Qi Zhang <qi.z.zhang@intel.com>
    
    Obtained from:  DPDK (dc5a6e7422)
    
    (cherry picked from commit 786c71845f80b8bf733d07f9155de9740a8cbc19)
---
 sys/dev/ixgbe/if_sriov.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/sys/dev/ixgbe/if_sriov.c b/sys/dev/ixgbe/if_sriov.c
index c822303a4067..8d4e20fcf8bf 100644
--- a/sys/dev/ixgbe/if_sriov.c
+++ b/sys/dev/ixgbe/if_sriov.c
@@ -437,7 +437,10 @@ ixgbe_vf_set_mc_addr(struct ixgbe_softc *sc, struct ixgbe_vf *vf, u32 *msg)
 		IXGBE_WRITE_REG(&sc->hw, IXGBE_MTA(vec_reg), mta_reg);
 	}
 
-	vmolr |= IXGBE_VMOLR_ROMPE;
+	if (entries == 0)
+		vmolr &= ~IXGBE_VMOLR_ROMPE;
+	else
+		vmolr |= IXGBE_VMOLR_ROMPE;
 	IXGBE_WRITE_REG(&sc->hw, IXGBE_VMOLR(vf->pool), vmolr);
 	ixgbe_send_vf_success(sc, vf, msg[0]);
 } /* ixgbe_vf_set_mc_addr */


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6a767bdd.3eaf6.59c6aa0c>