Commit 981132aa authored by Jérôme Pouiller's avatar Jérôme Pouiller Committed by Greg Kroah-Hartman
Browse files

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: default avatarJérôme Pouiller <jerome.pouiller@silabs.com>
Link: https://lore.kernel.org/r/20200415161147.69738-15-Jerome.Pouiller@silabs.com


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 6273691f
Loading
Loading
Loading
Loading
+13 −15
Original line number Diff line number Diff line
@@ -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);

+0 −6
Original line number Diff line number Diff line
@@ -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;
+3 −1
Original line number Diff line number Diff line
@@ -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;