Author: yongari
Date: Mon Jan 12 07:43:19 2015
New Revision: 277050
URL: https://svnweb.freebsd.org/changeset/base/277050

Log:
  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.
  
  Suggested by: b...@openbsd.org

Modified:
  head/sys/dev/nge/if_nge.c

Modified: head/sys/dev/nge/if_nge.c
==============================================================================
--- head/sys/dev/nge/if_nge.c   Mon Jan 12 07:39:52 2015        (r277049)
+++ head/sys/dev/nge/if_nge.c   Mon Jan 12 07:43:19 2015        (r277050)
@@ -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