From jeffm@suse.com Thu Oct 8 14:46:17 2009 From: Jeff Mahoney Date: Thu, 08 Oct 2009 17:27:51 -0400 Subject: Staging: winbond: implement prepare_multicast and fix API usage To: Greg KH Message-ID: <4ACE5957.1080500@suse.com> This patch adds a prepare_multicast callback for the winbond driver to properly receive mc_count in ->configure_filter. This also fixes incompatible pointer assignment build errors because ->configure_filter had changed. This is build tested only, but that's more than the original code received. Signed-off-by: Jeff Mahoney Signed-off-by: Greg Kroah-Hartman --- drivers/staging/winbond/wbusb.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) --- a/drivers/staging/winbond/wbusb.c +++ b/drivers/staging/winbond/wbusb.c @@ -99,10 +99,16 @@ static int wbsoft_get_tx_stats(struct ie return 0; } +static u64 wbsoft_prepare_multicast(struct ieee80211_hw *hw, int mc_count, + struct dev_addr_list *mc_list) +{ + return mc_count; +} + static void wbsoft_configure_filter(struct ieee80211_hw *dev, unsigned int changed_flags, unsigned int *total_flags, - int mc_count, struct dev_mc_list *mclist) + u64 multicast) { unsigned int new_flags; @@ -110,7 +116,7 @@ static void wbsoft_configure_filter(stru if (*total_flags & FIF_PROMISC_IN_BSS) new_flags |= FIF_PROMISC_IN_BSS; - else if ((*total_flags & FIF_ALLMULTI) || (mc_count > 32)) + else if ((*total_flags & FIF_ALLMULTI) || (multicast > 32)) new_flags |= FIF_ALLMULTI; dev->flags &= ~IEEE80211_HW_RX_INCLUDES_FCS; @@ -278,6 +284,7 @@ static const struct ieee80211_ops wbsoft .add_interface = wbsoft_add_interface, .remove_interface = wbsoft_remove_interface, .config = wbsoft_config, + .prepare_multicast = wbsoft_prepare_multicast, .configure_filter = wbsoft_configure_filter, .get_stats = wbsoft_get_stats, .get_tx_stats = wbsoft_get_tx_stats,