Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 26 Mar 2015 05:08:36 +0000 (UTC)
From:      Pyun YongHyeon <yongari@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org
Subject:   svn commit: r280660 - stable/9/sys/dev/nge
Message-ID:  <201503260508.t2Q58ama036496@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: yongari
Date: Thu Mar 26 05:08:35 2015
New Revision: 280660
URL: https://svnweb.freebsd.org/changeset/base/280660

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/9/sys/dev/nge/if_nge.c
Directory Properties:
  stable/9/sys/   (props changed)
  stable/9/sys/dev/   (props changed)

Modified: stable/9/sys/dev/nge/if_nge.c
==============================================================================
--- stable/9/sys/dev/nge/if_nge.c	Thu Mar 26 05:07:18 2015	(r280659)
+++ stable/9/sys/dev/nge/if_nge.c	Thu Mar 26 05:08:35 2015	(r280660)
@@ -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:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201503260508.t2Q58ama036496>