git: b513c311d0db - stable/14 - ifnet: Remove if_getamcount()

From: Mark Johnston <markj_at_FreeBSD.org>
Date: Fri, 20 Sep 2024 11:39:58 UTC
The branch stable/14 has been updated by markj:

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

commit b513c311d0db5c301c939b1cf44b2826e09011d3
Author:     Mark Johnston <markj@FreeBSD.org>
AuthorDate: 2024-09-04 13:07:11 +0000
Commit:     Mark Johnston <markj@FreeBSD.org>
CommitDate: 2024-09-20 11:39:16 +0000

    ifnet: Remove if_getamcount()
    
    All uses of this function were incorrect.  if_amcount is a reference
    count which tracks the number of times the network stack internally set
    IFF_ALLMULTI.  (if_pcount is the corresponding counter for IFF_PROMISC.)
    
    Remove if_getamcount() and fix up callers to get the number of assigned
    multicast addresses instead, since that's what they actually want.
    
    Sponsored by:   Klara, Inc.
    Reviewed by:    zlei, glebius
    MFC after:      2 weeks
    Differential Revision:  https://reviews.freebsd.org/D46523
    
    (cherry picked from commit 408c909dc64f77d2696d6fec77a2e0b00255cf96)
---
 sys/dev/bxe/bxe.c            | 2 +-
 sys/dev/liquidio/lio_ioctl.c | 2 +-
 sys/net/if.c                 | 6 ------
 sys/net/if_var.h             | 1 -
 4 files changed, 2 insertions(+), 9 deletions(-)

diff --git a/sys/dev/bxe/bxe.c b/sys/dev/bxe/bxe.c
index 05bc22c0c981..45e8f654c36a 100644
--- a/sys/dev/bxe/bxe.c
+++ b/sys/dev/bxe/bxe.c
@@ -12174,7 +12174,7 @@ bxe_set_rx_mode(struct bxe_softc *sc)
     if (if_getflags(ifp) & IFF_PROMISC) {
         rx_mode = BXE_RX_MODE_PROMISC;
     } else if ((if_getflags(ifp) & IFF_ALLMULTI) ||
-               ((if_getamcount(ifp) > BXE_MAX_MULTICAST) &&
+               (if_llmaddr_count(ifp) > BXE_MAX_MULTICAST &&
                 CHIP_IS_E1(sc))) {
         rx_mode = BXE_RX_MODE_ALLMULTI;
     } else {
diff --git a/sys/dev/liquidio/lio_ioctl.c b/sys/dev/liquidio/lio_ioctl.c
index 10c88b209051..b2fd54f59580 100644
--- a/sys/dev/liquidio/lio_ioctl.c
+++ b/sys/dev/liquidio/lio_ioctl.c
@@ -481,7 +481,7 @@ lio_get_new_flags(if_t ifp)
 		 * Accept all multicast addresses if there are more than we
 		 * can handle
 		 */
-		if (if_getamcount(ifp) > LIO_MAX_MULTICAST_ADDR)
+		if (if_llmaddr_count(ifp) > LIO_MAX_MULTICAST_ADDR)
 			f |= LIO_IFFLAG_ALLMULTI;
 	}
 	if (if_getflags(ifp) & IFF_BROADCAST)
diff --git a/sys/net/if.c b/sys/net/if.c
index 110ab73f2aad..9beac09d54c9 100644
--- a/sys/net/if.c
+++ b/sys/net/if.c
@@ -4783,12 +4783,6 @@ if_getifaddr(const if_t ifp)
 	return (ifp->if_addr);
 }
 
-int
-if_getamcount(const if_t ifp)
-{
-	return (ifp->if_amcount);
-}
-
 int
 if_setsendqready(if_t ifp)
 {
diff --git a/sys/net/if_var.h b/sys/net/if_var.h
index 48a503df7ffe..74692e916558 100644
--- a/sys/net/if_var.h
+++ b/sys/net/if_var.h
@@ -660,7 +660,6 @@ u_int if_lladdr_count(if_t);
 u_int if_llmaddr_count(if_t);
 bool if_maddr_empty(if_t);
 
-int if_getamcount(const if_t ifp);
 struct ifaddr * if_getifaddr(const if_t ifp);
 typedef u_int if_addr_cb_t(void *, struct ifaddr *, u_int);
 u_int if_foreach_addr_type(if_t ifp, int type, if_addr_cb_t cb, void *cb_arg);