From be5d594c35dba508cd43f869868d6c1f3f98d56a Mon Sep 17 00:00:00 2001 From: Benoit Papillault Date: Sun, 3 Jan 2010 10:20:01 +0100 Subject: [PATCH] --- yaml --- r: 179237 b: refs/heads/master c: 7de3c5dc0ac89b847b00f25d16976c158dc38e4c h: refs/heads/master i: 179235: c807471c06d9833aa8b222dc3399e6eacc0f3727 v: v3 --- [refs] | 2 +- trunk/drivers/net/wireless/zd1211rw/zd_mac.c | 13 +++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/[refs] b/[refs] index 58a8b286b1c2..434cfe53b38c 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 8a9ac160e844c7ce8074f6aa531feefb4acdee7c +refs/heads/master: 7de3c5dc0ac89b847b00f25d16976c158dc38e4c diff --git a/trunk/drivers/net/wireless/zd1211rw/zd_mac.c b/trunk/drivers/net/wireless/zd1211rw/zd_mac.c index cc648efb8ede..9d9b263733e6 100644 --- a/trunk/drivers/net/wireless/zd1211rw/zd_mac.c +++ b/trunk/drivers/net/wireless/zd1211rw/zd_mac.c @@ -987,12 +987,13 @@ static void zd_op_configure_filter(struct ieee80211_hw *hw, changed_flags &= SUPPORTED_FIF_FLAGS; *new_flags &= SUPPORTED_FIF_FLAGS; - /* changed_flags is always populated but this driver - * doesn't support all FIF flags so its possible we don't - * need to do anything */ - if (!changed_flags) - return; - + /* + * If multicast parameter (as returned by zd_op_prepare_multicast) + * has changed, no bit in changed_flags is set. To handle this + * situation, we do not return if changed_flags is 0. If we do so, + * we will have some issue with IPv6 which uses multicast for link + * layer address resolution. + */ if (*new_flags & (FIF_PROMISC_IN_BSS | FIF_ALLMULTI)) zd_mc_add_all(&hash);