From 1dee8327d4721282bd52acf84cc73ed3dae4a71a Mon Sep 17 00:00:00 2001 From: Navdeep Parhar Date: Tue, 23 Sep 2014 22:57:11 +0000 Subject: [PATCH] cxgbe(4): Verify that the addresses in if_multiaddrs really are multicast addresses. (The chip doesn't really care, it's just that it needs to be told explicitly if unicast DMACs are checked for "hits" in the hash that is used after the TCAM entries are all used up). --- sys/dev/cxgbe/t4_main.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sys/dev/cxgbe/t4_main.c b/sys/dev/cxgbe/t4_main.c index 3e87eafe155..35fb17d4f71 100644 --- a/sys/dev/cxgbe/t4_main.c +++ b/sys/dev/cxgbe/t4_main.c @@ -3031,8 +3031,10 @@ update_mac_settings(struct ifnet *ifp, int flags) TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) { if (ifma->ifma_addr->sa_family != AF_LINK) continue; - mcaddr[i++] = + mcaddr[i] = LLADDR((struct sockaddr_dl *)ifma->ifma_addr); + MPASS(ETHER_IS_MULTICAST(mcaddr[i])); + i++; if (i == FW_MAC_EXACT_CHUNK) { rc = t4_alloc_mac_filt(sc, sc->mbox, viid, del,