The branch stable/14 has been updated by kbowling:

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

commit a9376f5caf1cdcee074601dbd838a1c5450e283c
Author:     Keith Reynolds <keith.reyno...@hpe.com>
AuthorDate: 2024-08-05 19:10:18 +0000
Commit:     Kevin Bowling <kbowl...@freebsd.org>
CommitDate: 2024-08-13 19:34:10 +0000

    qlnxe: Allow MAC address override
    
    The qlnxe driver always sets the NIC's rx mac address to the card's
    default MAC, ignoring any MAC address set via ifconfig.
    
    PR:             278085
    
    (cherry picked from commit 792226e53023cb09566cb78b2135b052e9b62e0e)
---
 sys/dev/qlnx/qlnxe/qlnx_os.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/sys/dev/qlnx/qlnxe/qlnx_os.c b/sys/dev/qlnx/qlnxe/qlnx_os.c
index 6665894d058d..49d3f20aa0c2 100644
--- a/sys/dev/qlnx/qlnxe/qlnx_os.c
+++ b/sys/dev/qlnx/qlnxe/qlnx_os.c
@@ -7055,8 +7055,17 @@ qlnx_set_rx_mode(qlnx_host_t *ha)
 {
        int     rc = 0;
        uint8_t filter;
+       const struct ifnet *ifp = ha->ifp;
+       struct sockaddr_dl *sdl;
 
-       rc = qlnx_set_ucast_rx_mac(ha, ECORE_FILTER_REPLACE, ha->primary_mac);
+       if (ifp->if_type == IFT_ETHER && ifp->if_addr != NULL &&
+                       ifp->if_addr->ifa_addr != NULL) {
+               sdl = (struct sockaddr_dl *) ifp->if_addr->ifa_addr;
+
+               rc = qlnx_set_ucast_rx_mac(ha, ECORE_FILTER_REPLACE, 
LLADDR(sdl));
+       } else {
+               rc = qlnx_set_ucast_rx_mac(ha, ECORE_FILTER_REPLACE, 
ha->primary_mac);
+       }
         if (rc)
                 return rc;
 

Reply via email to