aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorJuuso Oikarinen <juuso.oikarinen@nokia.com>2009-10-13 05:47:53 -0400
committerJohn W. Linville <linville@tuxdriver.com>2009-10-27 16:48:11 -0400
commit7444113017b9d5394dc8c4bdf577f9567502417b (patch)
treef923b1bff09cb8729c3314931fbebbd1e8b29213 /drivers
parent5d07b668f28175a39e4ad06eccab75e8275266d1 (diff)
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>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/wireless/wl12xx/wl1271_main.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/wireless/wl12xx/wl1271_main.c b/drivers/net/wireless/wl12xx/wl1271_main.c
index ae41a709550..19dbdb1b38a 100644
--- a/drivers/net/wireless/wl12xx/wl1271_main.c
+++ b/drivers/net/wireless/wl12xx/wl1271_main.c
@@ -1160,7 +1160,7 @@ static u64 wl1271_op_prepare_multicast(struct ieee80211_hw *hw, int mc_count,
1160 * configure_filter() instead of saving everything in the context. 1160 * configure_filter() instead of saving everything in the context.
1161 */ 1161 */
1162 1162
1163 fp = kzalloc(sizeof(*fp), GFP_KERNEL); 1163 fp = kzalloc(sizeof(*fp), GFP_ATOMIC);
1164 if (!fp) { 1164 if (!fp) {
1165 wl1271_error("Out of memory setting filters."); 1165 wl1271_error("Out of memory setting filters.");
1166 return 0; 1166 return 0;
@@ -1180,6 +1180,7 @@ static u64 wl1271_op_prepare_multicast(struct ieee80211_hw *hw, int mc_count,
1180 fp->mc_list_length++; 1180 fp->mc_list_length++;
1181 } else 1181 } else
1182 wl1271_warning("Unknown mc address length."); 1182 wl1271_warning("Unknown mc address length.");
1183 mc_list = mc_list->next;
1183 } 1184 }
1184 1185
1185 /* FIXME: We still need to set our filters properly */ 1186 /* FIXME: We still need to set our filters properly */