aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/bge
diff options
context:
space:
mode:
authorRuslan Ermilov <ru@FreeBSD.org>2006-02-01 10:11:24 +0000
committerRuslan Ermilov <ru@FreeBSD.org>2006-02-01 10:11:24 +0000
commitd183af7f3fc74a4eb9e5a4a794d5bf80b2048f83 (patch)
tree8db42462b8d8c7bd46ba63e92c82ccc1d6fb2aca /sys/dev/bge
parentc05e22d44b0100fe86a949c8c73eb5642c21f0ea (diff)
Notes
Diffstat (limited to 'sys/dev/bge')
-rw-r--r--sys/dev/bge/if_bge.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/dev/bge/if_bge.c b/sys/dev/bge/if_bge.c
index b56e099df9797..22a4c6c70894e 100644
--- a/sys/dev/bge/if_bge.c
+++ b/sys/dev/bge/if_bge.c
@@ -3439,7 +3439,7 @@ bge_ioctl(ifp, command, data)
* instead of reinitializing the entire NIC. Doing
* a full re-init means reloading the firmware and
* waiting for it to start up, which may take a
- * second or two.
+ * second or two. Similarly for ALLMULTI.
*/
if (ifp->if_drv_flags & IFF_DRV_RUNNING &&
ifp->if_flags & IFF_PROMISC &&
@@ -3451,6 +3451,9 @@ bge_ioctl(ifp, command, data)
sc->bge_if_flags & IFF_PROMISC) {
BGE_CLRBIT(sc, BGE_RX_MODE,
BGE_RXMODE_RX_PROMISC);
+ } else if (ifp->if_drv_flags & IFF_DRV_RUNNING &&
+ (ifp->if_flags ^ sc->bge_if_flags) & IFF_ALLMULTI) {
+ bge_setmulti(sc);
} else
bge_init_locked(sc);
} else {