Author: davidcs
Date: Tue Jun 16 21:11:32 2015
New Revision: 284470
URL: https://svnweb.freebsd.org/changeset/base/284470

Log:
  In bxe_init_mcast_macs_list(): mc_mac->mac needs to point to the multicast 
mac address
  In bxe_set_mc_list(): added missing BXE_MCAST_UNLOCK()
  In __ecore_vlan_mac_h_exec_pending(): need to check for ECORE_PENDING
  
  Submitted by:gary.zambr...@qlogic.com

Modified:
  head/sys/dev/bxe/bxe.c
  head/sys/dev/bxe/ecore_sp.c

Modified: head/sys/dev/bxe/bxe.c
==============================================================================
--- head/sys/dev/bxe/bxe.c      Tue Jun 16 21:11:31 2015        (r284469)
+++ head/sys/dev/bxe/bxe.c      Tue Jun 16 21:11:32 2015        (r284470)
@@ -12525,6 +12525,7 @@ bxe_init_mcast_macs_list(struct bxe_soft
         BLOGE(sc, "Failed to allocate temp mcast list\n");
         return (-1);
     }
+    bzero(mta, (sizeof(unsigned char) * ETHER_ADDR_LEN * mc_count));
     
     mc_mac = malloc(sizeof(*mc_mac) * mc_count, M_DEVBUF,
                     (M_NOWAIT | M_ZERO));
@@ -12533,12 +12534,13 @@ bxe_init_mcast_macs_list(struct bxe_soft
         BLOGE(sc, "Failed to allocate temp mcast list\n");
         return (-1);
     }
+    bzero(mc_mac, (sizeof(*mc_mac) * mc_count));
 
     if_multiaddr_array(ifp, mta, &mcnt, mc_count); /* mta and mcnt not 
expected 
                                                       to be  different */
     for(i=0; i< mcnt; i++) {
 
-        bcopy((mta + (i * ETHER_ADDR_LEN)), mc_mac->mac, ETHER_ADDR_LEN);
+       mc_mac->mac = (uint8_t *)(mta + (i * ETHER_ADDR_LEN));
         ECORE_LIST_PUSH_TAIL(&mc_mac->link, &p->mcast_list);
 
         BLOGD(sc, DBG_LOAD,
@@ -12583,6 +12585,7 @@ bxe_set_mc_list(struct bxe_softc *sc)
     rc = ecore_config_mcast(sc, &rparam, ECORE_MCAST_CMD_DEL);
     if (rc < 0) {
         BLOGE(sc, "Failed to clear multicast configuration: %d\n", rc);
+        BXE_MCAST_UNLOCK(sc);
         return (rc);
     }
 

Modified: head/sys/dev/bxe/ecore_sp.c
==============================================================================
--- head/sys/dev/bxe/ecore_sp.c Tue Jun 16 21:11:31 2015        (r284469)
+++ head/sys/dev/bxe/ecore_sp.c Tue Jun 16 21:11:32 2015        (r284470)
@@ -474,7 +474,7 @@ static void __ecore_vlan_mac_h_exec_pend
        o->head_exe_request = FALSE;
        o->saved_ramrod_flags = 0;
        rc = ecore_exe_queue_step(sc, &o->exe_queue, &ramrod_flags);
-       if (rc != ECORE_SUCCESS) {
+       if ((rc != ECORE_SUCCESS) && (rc != ECORE_PENDING)) {
                ECORE_ERR("execution of pending commands failed with rc %d\n",
                          rc);
 #ifdef ECORE_STOP_ON_ERROR
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to