wl1271: Fix multicast list handling
Fixes bugs in the multicast list handling:
- Use atomic memory allocation in non-sleepable context
- Increment address pointer when iterating list of MC addresses
Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
diff --git a/drivers/net/wireless/wl12xx/wl1271_main.c b/drivers/net/wireless/wl12xx/wl1271_main.c
index ae41a70..19dbdb1 100644
--- a/drivers/net/wireless/wl12xx/wl1271_main.c
+++ b/drivers/net/wireless/wl12xx/wl1271_main.c
@@ -1160,7 +1160,7 @@
* configure_filter() instead of saving everything in the context.
*/
- fp = kzalloc(sizeof(*fp), GFP_KERNEL);
+ fp = kzalloc(sizeof(*fp), GFP_ATOMIC);
if (!fp) {
wl1271_error("Out of memory setting filters.");
return 0;
@@ -1180,6 +1180,7 @@
fp->mc_list_length++;
} else
wl1271_warning("Unknown mc address length.");
+ mc_list = mc_list->next;
}
/* FIXME: We still need to set our filters properly */