summaryrefslogtreecommitdiffstats
path: root/sys/pci
diff options
context:
space:
mode:
authorluigi <luigi@FreeBSD.org>1999-03-01 16:54:28 +0000
committerluigi <luigi@FreeBSD.org>1999-03-01 16:54:28 +0000
commitf9bc5c6a2601bc0a3008def148bc30191850b7a1 (patch)
tree7dd28971cf2f5c3257ca926b43f7ac7f00fe4f73 /sys/pci
parentedb6a1c40f33a43e58e34d8a3f626dfef2b8f03c (diff)
downloadFreeBSD-src-f9bc5c6a2601bc0a3008def148bc30191850b7a1.zip
FreeBSD-src-f9bc5c6a2601bc0a3008def148bc30191850b7a1.tar.gz
Fix handling of IFF_ALLMULTI. The code did not call
tulip_addr_filter() on SIOCSIFFLAGS, and was nuking the IFF_ALLMULTI on entering tulip_addr_filter(). As a result it was impossible to run a multicast router on a machine with a "de" interface.
Diffstat (limited to 'sys/pci')
-rw-r--r--sys/pci/if_de.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/pci/if_de.c b/sys/pci/if_de.c
index 49ae4a2..f3f0a2b 100644
--- a/sys/pci/if_de.c
+++ b/sys/pci/if_de.c
@@ -1,5 +1,5 @@
/* $NetBSD: if_de.c,v 1.80 1998/09/25 18:06:53 matt Exp $ */
-/* $Id: if_de.c,v 1.97 1999/01/29 08:29:05 bde Exp $ */
+/* $Id: if_de.c,v 1.98 1999/01/29 11:31:45 bde Exp $ */
/*-
* Copyright (c) 1994-1997 Matt Thomas (matt@3am-software.com)
@@ -3085,7 +3085,8 @@ tulip_addr_filter(
sc->tulip_cmdmode &= ~TULIP_CMD_RXRUN;
sc->tulip_intrmask &= ~TULIP_STS_RXSTOPPED;
#if defined(IFF_ALLMULTI)
- sc->tulip_if.if_flags &= ~IFF_ALLMULTI;
+ if (sc->tulip_if.if_flags & IFF_ALLMULTI)
+ sc->tulip_flags |= TULIP_ALLMULTI ;
#endif
#if defined(__FreeBSD__) && __FreeBSD_version >= 300000
@@ -4754,6 +4755,7 @@ tulip_ifioctl(
printf(TULIP_PRINTF_FMT ": ignored invalid media request\n", TULIP_PRINTF_ARGS);
}
#endif
+ tulip_addr_filter(sc); /* reinit multicast filter */
tulip_init(sc);
break;
}
OpenPOWER on IntegriCloud