Fix a regression introduced in r215906. The change made in r215906

caused link re-negotiation whenever application joins or leaves a
multicast group.  If driver is running, it would have established a
link so there is no need to start re-negotiation. The re-negotiation
broke established link which in turn stopped multicast application
working while re-negotiation is in progress.

PR:	kern/154667
MFC after:	1 week
This commit is contained in:
Pyun YongHyeon 2011-02-15 18:16:04 +00:00
parent 69efac96c3
commit f6ff7180f8
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=218710

View File

@ -2823,8 +2823,10 @@ fxp_ioctl(struct ifnet *ifp, u_long command, caddr_t data)
case SIOCADDMULTI:
case SIOCDELMULTI:
FXP_LOCK(sc);
if ((ifp->if_drv_flags & IFF_DRV_RUNNING) != 0)
fxp_init(sc);
fxp_init_body(sc, 0);
FXP_UNLOCK(sc);
break;
case SIOCSIFMEDIA: