aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/fxp
diff options
context:
space:
mode:
authorPyun YongHyeon <yongari@FreeBSD.org>2011-02-15 18:16:04 +0000
committerPyun YongHyeon <yongari@FreeBSD.org>2011-02-15 18:16:04 +0000
commitf6ff7180f8aa1c6d3ec154576375231b124a2067 (patch)
tree4d220ee7f31ea057504ccdeefe2e2001eee78034 /sys/dev/fxp
parent69efac96c355ab5524a8322cff70c2bb1fb2a02e (diff)
downloadsrc-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.c4
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: