Author: yongari
Date: Thu Mar 26 05:07:18 2015
New Revision: 280659
URL: https://svnweb.freebsd.org/changeset/base/280659

Log:
  MFC r277050:
    Receive filter configuration is done in nge_rxfilter().  Remove
    unnecessary filter configuration code in nge_init_locked().
    While I'm here add a check for driver running state for multicast
    filter handling.  Also remove unnecessary assignment to error
    variable since it is cleared in the function entry.

Modified:
  stable/10/sys/dev/nge/if_nge.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/sys/dev/nge/if_nge.c
==============================================================================
--- stable/10/sys/dev/nge/if_nge.c      Thu Mar 26 04:58:47 2015        
(r280658)
+++ stable/10/sys/dev/nge/if_nge.c      Thu Mar 26 05:07:18 2015        
(r280659)
@@ -2102,27 +2102,6 @@ nge_init_locked(struct nge_softc *sc)
         */
        nge_list_tx_init(sc);
 
-       /*
-        * For the NatSemi chip, we have to explicitly enable the
-        * reception of ARP frames, as well as turn on the 'perfect
-        * match' filter where we store the station address, otherwise
-        * we won't receive unicasts meant for this host.
-        */
-       NGE_SETBIT(sc, NGE_RXFILT_CTL, NGE_RXFILTCTL_ARP);
-       NGE_SETBIT(sc, NGE_RXFILT_CTL, NGE_RXFILTCTL_PERFECT);
-
-       /*
-        * Set the capture broadcast bit to capture broadcast frames.
-        */
-       if (ifp->if_flags & IFF_BROADCAST) {
-               NGE_SETBIT(sc, NGE_RXFILT_CTL, NGE_RXFILTCTL_BROAD);
-       } else {
-               NGE_CLRBIT(sc, NGE_RXFILT_CTL, NGE_RXFILTCTL_BROAD);
-       }
-
-       /* Turn the receive filter on. */
-       NGE_SETBIT(sc, NGE_RXFILT_CTL, NGE_RXFILTCTL_ENABLE);
-
        /* Set Rx filter. */
        nge_rxfilter(sc);
 
@@ -2335,9 +2314,9 @@ nge_ioctl(struct ifnet *ifp, u_long comm
        case SIOCADDMULTI:
        case SIOCDELMULTI:
                NGE_LOCK(sc);
-               nge_rxfilter(sc);
+               if ((ifp->if_drv_flags & IFF_DRV_RUNNING) != 0)
+                       nge_rxfilter(sc);
                NGE_UNLOCK(sc);
-               error = 0;
                break;
        case SIOCGIFMEDIA:
        case SIOCSIFMEDIA:
_______________________________________________
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