diff options
author | Pyun YongHyeon <yongari@FreeBSD.org> | 2011-02-15 18:16:04 +0000 |
---|---|---|
committer | Pyun YongHyeon <yongari@FreeBSD.org> | 2011-02-15 18:16:04 +0000 |
commit | f6ff7180f8aa1c6d3ec154576375231b124a2067 (patch) | |
tree | 4d220ee7f31ea057504ccdeefe2e2001eee78034 /sys/dev/fxp | |
parent | 69efac96c355ab5524a8322cff70c2bb1fb2a02e (diff) | |
download | src-f6ff7180f8aa1c6d3ec154576375231b124a2067.tar.gz src-f6ff7180f8aa1c6d3ec154576375231b124a2067.zip |
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
Notes
Notes:
svn path=/head/; revision=218710
Diffstat (limited to 'sys/dev/fxp')
-rw-r--r-- | sys/dev/fxp/if_fxp.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/dev/fxp/if_fxp.c b/sys/dev/fxp/if_fxp.c index fe9c0bd9ca62..51e8ef54fdee 100644 --- a/sys/dev/fxp/if_fxp.c +++ b/sys/dev/fxp/if_fxp.c @@ -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: |