Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 13262ffd authored by Jiri Slaby's avatar Jiri Slaby Committed by David S. Miller
Browse files

[MAC80211]: Remove bitfields from struct ieee80211_sub_if_data



mac80211, remove bitfields from struct ieee80211_sub_if_data

Signed-off-by: default avatarJiri Slaby <jirislaby@gmail.com>
Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
Acked-by: default avatarMichael Wu <flamingice@sourmilk.net>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent d6f2da5b
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -118,7 +118,7 @@ static ssize_t ieee80211_if_fmt_flags(
		 sdata->u.sta.flags & IEEE80211_STA_AUTHENTICATED ? "AUTH\n" : "",
		 sdata->u.sta.flags & IEEE80211_STA_ASSOCIATED ? "ASSOC\n" : "",
		 sdata->u.sta.flags & IEEE80211_STA_PROBEREQ_POLL ? "PROBEREQ POLL\n" : "",
		 sdata->use_protection ? "CTS prot\n" : "");
		 sdata->flags & IEEE80211_SDATA_USE_PROTECTION ? "CTS prot\n" : "");
}
__IEEE80211_IF_FILE(flags);

+14 −16
Original line number Diff line number Diff line
@@ -555,23 +555,21 @@ static void ieee80211_set_multicast_list(struct net_device *dev)
	unsigned short flags;

	netif_tx_lock_nested(local->mdev, TX_LOCK_MASTER);
	if (((dev->flags & IFF_ALLMULTI) != 0) ^ (sdata->allmulti != 0)) {
		if (sdata->allmulti) {
			sdata->allmulti = 0;
	if (((dev->flags & IFF_ALLMULTI) != 0) ^
	    ((sdata->flags & IEEE80211_SDATA_ALLMULTI) != 0)) {
		if (sdata->flags & IEEE80211_SDATA_ALLMULTI)
			local->iff_allmultis--;
		} else {
			sdata->allmulti = 1;
		else
			local->iff_allmultis++;
		sdata->flags ^= IEEE80211_SDATA_ALLMULTI;
	}
	}
	if (((dev->flags & IFF_PROMISC) != 0) ^ (sdata->promisc != 0)) {
		if (sdata->promisc) {
			sdata->promisc = 0;
	if (((dev->flags & IFF_PROMISC) != 0) ^
	    ((sdata->flags & IEEE80211_SDATA_PROMISC) != 0)) {
		if (sdata->flags & IEEE80211_SDATA_PROMISC)
			local->iff_promiscs--;
		} else {
			sdata->promisc = 1;
		else
			local->iff_promiscs++;
		}
		sdata->flags ^= IEEE80211_SDATA_PROMISC;
	}
	if (dev->mc_count != sdata->mc_count) {
		local->mc_count = local->mc_count - sdata->mc_count +
@@ -740,16 +738,16 @@ void ieee80211_erp_info_change_notify(struct net_device *dev, u8 changes)
	struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
	if (local->ops->erp_ie_changed)
		local->ops->erp_ie_changed(local_to_hw(local), changes,
					   sdata->use_protection,
					   !sdata->short_preamble);
			!!(sdata->flags & IEEE80211_SDATA_USE_PROTECTION),
			!(sdata->flags & IEEE80211_SDATA_SHORT_PREAMBLE));
}

void ieee80211_reset_erp_info(struct net_device *dev)
{
	struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);

	sdata->short_preamble = 0;
	sdata->use_protection = 0;
	sdata->flags &= ~(IEEE80211_SDATA_USE_PROTECTION |
			IEEE80211_SDATA_SHORT_PREAMBLE);
	ieee80211_erp_info_change_notify(dev,
					 IEEE80211_ERP_CHANGE_PROTECTION |
					 IEEE80211_ERP_CHANGE_PREAMBLE);
+10 −8
Original line number Diff line number Diff line
@@ -277,6 +277,14 @@ struct ieee80211_if_sta {
};


/* flags used in struct ieee80211_sub_if_data.flags */
#define IEEE80211_SDATA_ALLMULTI	BIT(0)
#define IEEE80211_SDATA_PROMISC		BIT(1)
#define IEEE80211_SDATA_USE_PROTECTION	BIT(2) /* CTS protect ERP frames */
/* use short preamble with IEEE 802.11b: this flag is set when the AP or beacon
 * generator reports that there are no present stations that cannot support short
 * preambles */
#define IEEE80211_SDATA_SHORT_PREAMBLE	BIT(3)
struct ieee80211_sub_if_data {
	struct list_head list;
	unsigned int type;
@@ -287,14 +295,8 @@ struct ieee80211_sub_if_data {
	struct ieee80211_local *local;

	int mc_count;
	unsigned int allmulti:1;
	unsigned int promisc:1;
	unsigned int use_protection:1; /* CTS protect ERP frames */

	/* use short preamble with IEEE 802.11b: this flag is set when the AP
	 * or beacon generator reports that there are no present stations that
	 * cannot support short preambles */
	unsigned int short_preamble:1;

	unsigned int flags;

	struct net_device_stats stats;
	int drop_unencrypted;
+14 −6
Original line number Diff line number Diff line
@@ -1063,8 +1063,12 @@ static int ieee80211_ioctl_prism2_param(struct net_device *dev,

	case PRISM2_PARAM_CTS_PROTECT_ERP_FRAMES:
		if (sdata->type == IEEE80211_IF_TYPE_AP) {
			sdata->use_protection = !!value;
			ieee80211_erp_info_change_notify(dev, IEEE80211_ERP_CHANGE_PROTECTION);
			if (value)
				sdata->flags |= IEEE80211_SDATA_USE_PROTECTION;
			else
				sdata->flags &= ~IEEE80211_SDATA_USE_PROTECTION;
			ieee80211_erp_info_change_notify(dev,
					IEEE80211_ERP_CHANGE_PROTECTION);
		} else {
			ret = -ENOENT;
		}
@@ -1072,8 +1076,12 @@ static int ieee80211_ioctl_prism2_param(struct net_device *dev,

	case PRISM2_PARAM_PREAMBLE:
		if (sdata->type != IEEE80211_IF_TYPE_AP) {
			sdata->short_preamble = !!value;
			ieee80211_erp_info_change_notify(dev, IEEE80211_ERP_CHANGE_PREAMBLE);
			if (value)
				sdata->flags |= IEEE80211_SDATA_SHORT_PREAMBLE;
			else
				sdata->flags &= ~IEEE80211_SDATA_SHORT_PREAMBLE;
			ieee80211_erp_info_change_notify(dev,
					IEEE80211_ERP_CHANGE_PREAMBLE);
		} else {
			ret = -ENOENT;
		}
@@ -1167,11 +1175,11 @@ static int ieee80211_ioctl_get_prism2_param(struct net_device *dev,
		break;

	case PRISM2_PARAM_CTS_PROTECT_ERP_FRAMES:
		*param = sdata->use_protection;
		*param = !!(sdata->flags & IEEE80211_SDATA_USE_PROTECTION);
		break;

	case PRISM2_PARAM_PREAMBLE:
		*param = sdata->short_preamble;
		*param = !!(sdata->flags & IEEE80211_SDATA_SHORT_PREAMBLE);
		break;

	case PRISM2_PARAM_SHORT_SLOT_TIME:
+13 −6
Original line number Diff line number Diff line
@@ -321,7 +321,7 @@ static void ieee80211_handle_erp_ie(struct net_device *dev, u8 erp_value)
	int preamble_mode = (erp_value & WLAN_ERP_BARKER_PREAMBLE) != 0;
	u8 changes = 0;

	if (use_protection != sdata->use_protection) {
	if (use_protection != !!(sdata->flags & IEEE80211_SDATA_USE_PROTECTION)) {
		if (net_ratelimit()) {
			printk(KERN_DEBUG "%s: CTS protection %s (BSSID="
			       MAC_FMT ")\n",
@@ -329,11 +329,14 @@ static void ieee80211_handle_erp_ie(struct net_device *dev, u8 erp_value)
			       use_protection ? "enabled" : "disabled",
			       MAC_ARG(ifsta->bssid));
		}
		sdata->use_protection = use_protection;
		if (use_protection)
			sdata->flags |= IEEE80211_SDATA_USE_PROTECTION;
		else
			sdata->flags &= ~IEEE80211_SDATA_USE_PROTECTION;
		changes |= IEEE80211_ERP_CHANGE_PROTECTION;
	}

	if (!preamble_mode != sdata->short_preamble) {
	if (preamble_mode != !(sdata->flags & IEEE80211_SDATA_SHORT_PREAMBLE)) {
		if (net_ratelimit()) {
			printk(KERN_DEBUG "%s: switched to %s barker preamble"
			       " (BSSID=" MAC_FMT ")\n",
@@ -342,7 +345,10 @@ static void ieee80211_handle_erp_ie(struct net_device *dev, u8 erp_value)
					"short" : "long",
			       MAC_ARG(ifsta->bssid));
		}
		sdata->short_preamble = !preamble_mode;
		if (preamble_mode)
			sdata->flags &= ~IEEE80211_SDATA_SHORT_PREAMBLE;
		else
			sdata->flags |= IEEE80211_SDATA_SHORT_PREAMBLE;
		changes |= IEEE80211_ERP_CHANGE_PREAMBLE;
	}

@@ -2307,7 +2313,8 @@ static int ieee80211_sta_join_ibss(struct net_device *dev,
			       "for IBSS beacon\n", dev->name);
			break;
		}
		control.tx_rate = (sdata->short_preamble &&
		control.tx_rate =
			((sdata->flags & IEEE80211_SDATA_SHORT_PREAMBLE) &&
			(rate->flags & IEEE80211_RATE_PREAMBLE2)) ?
			rate->val2 : rate->val;
		control.antenna_sel_tx = local->hw.conf.antenna_sel_tx;
Loading