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.
This commit is contained in:
parent
f0de020e4a
commit
125afe6753
@ -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 command, caddr_t data)
|
||||
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:
|
||||
|
Loading…
x
Reference in New Issue
Block a user