[Bug 283820] ixl multicast filter problems

From: <bugzilla-noreply_at_freebsd.org>
Date: Fri, 31 Oct 2025 20:53:02 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=283820

--- Comment #2 from commit-hook@FreeBSD.org ---
A commit in branch stable/15 references this bug:

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

commit f3c442950de3b34dda24ecb258171c32d161b1fd
Author:     Bhosale, Yogesh <yogesh.bhosale@intel.com>
AuthorDate: 2025-10-16 20:02:45 +0000
Commit:     Krzysztof Galazka <kgalazka@FreeBSD.org>
CommitDate: 2025-10-31 20:47:20 +0000

    ixl(4): fix multicast promiscuous mode state tracking and filter management

    This change reapplies the improvements from commit 89e7335 and adds
    additional fixes and code optimizations on top of it.

    The ixl driver supports up to 128 multicast filters in hardware. When this
    limit is exceeded, the driver should enable multicast promiscuous mode.
    When the count drops below 128, it should disable promiscuous mode and
    restore individual filters.

    The driver previously had problems that could corrupt multicast filters
list.
    The main issue was that ixl_dis_multi_promisc() would attempt to disable
    promiscuous mode without checking if it was actually enabled, potentially
    corrupting existing filters. There was also no state tracking across driver
    functions, leading to redundant operations.

    This change adds an IXL_FLAGS_MC_PROMISC flag to track the multicast
    promiscuous mode state. The flag is set when enabling promiscuous mode and
    cleared when disabling it. Early return checks prevent redundant operations
    when the mode is already in the desired state, avoiding filter corruption
    and unnecessary hardware calls.

    Signed-off-by: Yogesh Bhosale yogesh.bhosale@intel.com

    PR:             283820
    Approved by:    kbowling (mentor)
    Tested by:      gowtham.kumar.ks_intel.com
    Sponsored by:   Intel Corporation
    Differential Revision:  https://reviews.freebsd.org/D52549

    (cherry picked from commit 46a8a1f08f88c278e60ebb6daa7a551eb641c67b)

 sys/dev/ixl/if_ixl.c      |  27 +++++++++++-
 sys/dev/ixl/ixl.h         |   1 +
 sys/dev/ixl/ixl_pf_main.c | 110 +++++++++++++++++++++++++++++++++++++++-------
 3 files changed, 120 insertions(+), 18 deletions(-)

-- 
You are receiving this mail because:
You are the assignee for the bug.