diff options
| author | Bill Paul <wpaul@FreeBSD.org> | 2000-01-11 18:09:19 +0000 |
|---|---|---|
| committer | Bill Paul <wpaul@FreeBSD.org> | 2000-01-11 18:09:19 +0000 |
| commit | 611d6a1573b295040c444fb5ed978cb7a09ca6a1 (patch) | |
| tree | 01d84f34bc028dc494a2d565578ae52e0e4edc31 | |
| parent | 15e1a3068c5c93d14054e6ba40c6eb1a46e7a2d9 (diff) | |
Notes
| -rw-r--r-- | sys/dev/usb/if_kue.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/sys/dev/usb/if_kue.c b/sys/dev/usb/if_kue.c index 2371a879c393..231437497d5e 100644 --- a/sys/dev/usb/if_kue.c +++ b/sys/dev/usb/if_kue.c @@ -343,21 +343,20 @@ static void kue_setmulti(sc) * If there are too many addresses for the * internal filter, switch over to allmulti mode. */ - if (i == KUE_MCFILTCNT(sc)) { - i = 0; + if (i == KUE_MCFILTCNT(sc)) break; - } bcopy(LLADDR((struct sockaddr_dl *)ifma->ifma_addr), KUE_MCFILT(sc, i), ETHER_ADDR_LEN); i++; } - if (i) { + if (i == KUE_MCFILTCNT(sc)) + sc->kue_rxfilt |= KUE_RXFILT_ALLMULTI; + else { sc->kue_rxfilt |= KUE_RXFILT_MULTICAST; kue_ctl(sc, KUE_CTL_WRITE, KUE_CMD_SET_MCAST_FILTERS, i, sc->kue_mcfilters, i * ETHER_ADDR_LEN); - } else - sc->kue_rxfilt |= KUE_RXFILT_ALLMULTI; + } kue_setword(sc, KUE_CMD_SET_PKT_FILTER, sc->kue_rxfilt); |
