diff options
author | Juuso Oikarinen <juuso.oikarinen@nokia.com> | 2009-10-13 05:47:53 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-10-27 16:48:11 -0400 |
commit | 7444113017b9d5394dc8c4bdf577f9567502417b (patch) | |
tree | f923b1bff09cb8729c3314931fbebbd1e8b29213 /drivers | |
parent | 5d07b668f28175a39e4ad06eccab75e8275266d1 (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.c | 3 |
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 */ |