staging: wfx: drop struct wfx_grp_addr_table
The struct wfx_grp_addr_table is only instantiated on one place. There is no justifiation for this struct. Moreover, it is not consistent with other fields related to filtering (filter_bssid, etc...). Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com> Link: https://lore.kernel.org/r/20200415161147.69738-15-Jerome.Pouiller@silabs.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
6273691fbd
commit
981132aa03
|
@ -149,17 +149,16 @@ void wfx_update_filtering(struct wfx_vif *wvif)
|
|||
hif_set_data_filtering(wvif, false, true);
|
||||
return;
|
||||
|
||||
if (!wvif->mcast_filter.enable) {
|
||||
if (!wvif->filter_mcast) {
|
||||
hif_set_data_filtering(wvif, false, true);
|
||||
return;
|
||||
}
|
||||
for (i = 0; i < wvif->mcast_filter.num_addresses; i++)
|
||||
hif_set_mac_addr_condition(wvif, i,
|
||||
wvif->mcast_filter.address_list[i]);
|
||||
for (i = 0; i < wvif->filter_mcast_count; i++)
|
||||
hif_set_mac_addr_condition(wvif, i, wvif->filter_mcast_addr[i]);
|
||||
hif_set_uc_mc_bc_condition(wvif, 0,
|
||||
HIF_FILTER_UNICAST | HIF_FILTER_BROADCAST);
|
||||
hif_set_config_data_filter(wvif, true, 0, BIT(1),
|
||||
BIT(wvif->mcast_filter.num_addresses) - 1);
|
||||
BIT(wvif->filter_mcast_count) - 1);
|
||||
hif_set_data_filtering(wvif, true, true);
|
||||
}
|
||||
|
||||
|
@ -173,18 +172,17 @@ u64 wfx_prepare_multicast(struct ieee80211_hw *hw,
|
|||
int count = netdev_hw_addr_list_count(mc_list);
|
||||
|
||||
while ((wvif = wvif_iterate(wdev, wvif)) != NULL) {
|
||||
memset(&wvif->mcast_filter, 0x00, sizeof(wvif->mcast_filter));
|
||||
if (!count ||
|
||||
count > ARRAY_SIZE(wvif->mcast_filter.address_list))
|
||||
if (count > ARRAY_SIZE(wvif->filter_mcast_addr)) {
|
||||
wvif->filter_mcast_count = 0;
|
||||
continue;
|
||||
}
|
||||
wvif->filter_mcast_count = count;
|
||||
|
||||
i = 0;
|
||||
netdev_hw_addr_list_for_each(ha, mc_list) {
|
||||
ether_addr_copy(wvif->mcast_filter.address_list[i],
|
||||
ha->addr);
|
||||
ether_addr_copy(wvif->filter_mcast_addr[i], ha->addr);
|
||||
i++;
|
||||
}
|
||||
wvif->mcast_filter.num_addresses = count;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
@ -220,12 +218,12 @@ void wfx_configure_filter(struct ieee80211_hw *hw,
|
|||
wvif->filter_beacon = true;
|
||||
|
||||
if (*total_flags & FIF_ALLMULTI) {
|
||||
wvif->mcast_filter.enable = false;
|
||||
} else if (!wvif->mcast_filter.num_addresses) {
|
||||
wvif->filter_mcast = false;
|
||||
} else if (!wvif->filter_mcast_count) {
|
||||
dev_dbg(wdev->dev, "disabling unconfigured multicast filter");
|
||||
wvif->mcast_filter.enable = false;
|
||||
wvif->filter_mcast = false;
|
||||
} else {
|
||||
wvif->mcast_filter.enable = true;
|
||||
wvif->filter_mcast = true;
|
||||
}
|
||||
wfx_update_filtering(wvif);
|
||||
|
||||
|
|
|
@ -28,12 +28,6 @@ struct wfx_hif_event {
|
|||
struct hif_ind_event evt;
|
||||
};
|
||||
|
||||
struct wfx_grp_addr_table {
|
||||
bool enable;
|
||||
int num_addresses;
|
||||
u8 address_list[8][ETH_ALEN];
|
||||
};
|
||||
|
||||
struct wfx_sta_priv {
|
||||
int link_id;
|
||||
int vif_id;
|
||||
|
|
|
@ -77,7 +77,6 @@ struct wfx_vif {
|
|||
u32 link_id_map;
|
||||
|
||||
bool after_dtim_tx_allowed;
|
||||
struct wfx_grp_addr_table mcast_filter;
|
||||
|
||||
s8 wep_default_key_id;
|
||||
struct sk_buff *wep_pending_skb;
|
||||
|
@ -88,6 +87,9 @@ struct wfx_vif {
|
|||
|
||||
struct work_struct update_tim_work;
|
||||
|
||||
int filter_mcast_count;
|
||||
u8 filter_mcast_addr[8][ETH_ALEN];
|
||||
bool filter_mcast;
|
||||
bool filter_bssid;
|
||||
bool filter_prbreq;
|
||||
bool filter_beacon;
|
||||
|
|
Loading…
Reference in a new issue