From: Johannes Berg <johannes@sipsolutions.net>
To: John Linville <linville@tuxdriver.com>
Cc: Jiri Benc <jbenc@suse.cz>, Michael Wu <flamingice@sourmilk.net>,
linux-wireless@vger.kernel.org
Subject: [PATCH 27/27] mac80211: use switch statement in tx code
Date: Tue, 21 Aug 2007 16:59:32 +0200 [thread overview]
Message-ID: <20070821150052.565594000@sipsolutions.net> (raw)
In-Reply-To: 20070821145905.689978000@sipsolutions.net
The transmit code needs to set the addresses depending on the
interface type, a likely() for AP/VLAN is quite wrong since
most people will be using STA; convert to a switch statement
to make it look nicer.
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
---
net/mac80211/tx.c | 17 +++++++++++------
1 file changed, 11 insertions(+), 6 deletions(-)
--- wireless-dev.orig/net/mac80211/tx.c 2007-08-21 15:48:54.925923881 +0200
+++ wireless-dev/net/mac80211/tx.c 2007-08-21 16:04:00.675923881 +0200
@@ -1363,15 +1363,17 @@ int ieee80211_subif_start_xmit(struct sk
/* TODO: handling for 802.1x authorized/unauthorized port */
fc = IEEE80211_FTYPE_DATA | IEEE80211_STYPE_DATA;
- if (likely(sdata->type == IEEE80211_IF_TYPE_AP ||
- sdata->type == IEEE80211_IF_TYPE_VLAN)) {
+ switch (sdata->type) {
+ case IEEE80211_IF_TYPE_AP:
+ case IEEE80211_IF_TYPE_VLAN:
fc |= IEEE80211_FCTL_FROMDS;
/* DA BSSID SA */
memcpy(hdr.addr1, skb->data, ETH_ALEN);
memcpy(hdr.addr2, dev->dev_addr, ETH_ALEN);
memcpy(hdr.addr3, skb->data + ETH_ALEN, ETH_ALEN);
hdrlen = 24;
- } else if (sdata->type == IEEE80211_IF_TYPE_WDS) {
+ break;
+ case IEEE80211_IF_TYPE_WDS:
fc |= IEEE80211_FCTL_FROMDS | IEEE80211_FCTL_TODS;
/* RA TA DA SA */
memcpy(hdr.addr1, sdata->u.wds.remote_addr, ETH_ALEN);
@@ -1379,7 +1381,8 @@ int ieee80211_subif_start_xmit(struct sk
memcpy(hdr.addr3, skb->data, ETH_ALEN);
memcpy(hdr.addr4, skb->data + ETH_ALEN, ETH_ALEN);
hdrlen = 30;
- } else if (sdata->type == IEEE80211_IF_TYPE_STA) {
+ break;
+ case IEEE80211_IF_TYPE_STA:
if (dls_link_status(local, skb->data) == DLS_STATUS_OK) {
/* DA SA BSSID */
memcpy(hdr.addr1, skb->data, ETH_ALEN);
@@ -1393,13 +1396,15 @@ int ieee80211_subif_start_xmit(struct sk
memcpy(hdr.addr3, skb->data, ETH_ALEN);
}
hdrlen = 24;
- } else if (sdata->type == IEEE80211_IF_TYPE_IBSS) {
+ break;
+ case IEEE80211_IF_TYPE_IBSS:
/* DA SA BSSID */
memcpy(hdr.addr1, skb->data, ETH_ALEN);
memcpy(hdr.addr2, skb->data + ETH_ALEN, ETH_ALEN);
memcpy(hdr.addr3, sdata->u.sta.bssid, ETH_ALEN);
hdrlen = 24;
- } else {
+ break;
+ default:
ret = 0;
goto fail;
}
--
next prev parent reply other threads:[~2007-08-21 15:04 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-08-21 14:59 [PATCH 00/27] various cleanups and fixes for mac80211 and drivers Johannes Berg
2007-08-21 14:59 ` [PATCH 01/27] mac80211: fix showing transmitted frames on multiple monitor interfaces Johannes Berg
2007-08-21 14:59 ` [PATCH 02/27] mac80211: fix preamble setting Johannes Berg
2007-08-21 14:59 ` [PATCH 03/27] mac80211: avoid copying packets to interfaces that are down Johannes Berg
2007-08-21 14:59 ` [PATCH 04/27] mac80211: fix key debugfs Johannes Berg
2007-08-21 14:59 ` [PATCH 05/27] mac80211, drivers: remove reset callback Johannes Berg
2007-08-21 14:59 ` [PATCH 06/27] ralink drivers: remove IEEE80211_HW_HOST_GEN_BEACON flag Johannes Berg
2007-08-21 14:59 ` [PATCH 07/27] mac80211: " Johannes Berg
2007-08-21 14:59 ` [PATCH 08/27] mac80211: remove PRISM2_PARAM_RADIO_ENABLED Johannes Berg
2007-08-21 14:59 ` [PATCH 09/27] mac80211: remove PRISM2_HOSTAPD_SET_GENERIC_INFO_ELEM Johannes Berg
2007-08-21 14:59 ` [PATCH 10/27] ralink drivers: remove IEEE80211_HW_DATA_NULLFUNC_ACK Johannes Berg
2007-08-21 14:59 ` [PATCH 11/27] rtl8187: " Johannes Berg
2007-08-21 14:59 ` [PATCH 12/27] p54: " Johannes Berg
2007-08-21 14:59 ` [PATCH 13/27] mac80211: " Johannes Berg
2007-08-21 14:59 ` [PATCH 14/27] mac80211: ratelimit some RX messages Johannes Berg
2007-08-21 14:59 ` [PATCH 15/27] mac80211: remove ieee80211_msg_wep_frame_unknown_key Johannes Berg
2007-08-21 14:59 ` [PATCH 16/27] mac80211: remove radar stuff Johannes Berg
2007-08-21 14:59 ` [PATCH 17/27] mac80211: remove scan struct from hostapd_param Johannes Berg
2007-08-21 14:59 ` [PATCH 18/27] mac80211: fix software decryption Johannes Berg
2007-08-21 14:59 ` [PATCH 19/27] cfg80211: extend radiotap parser by all remaining fields Johannes Berg
2007-08-21 14:59 ` [PATCH 20/27] mac80211: remove unused ioctls (1) Johannes Berg
2007-08-21 14:59 ` [PATCH 21/27] mac80211: remove unused ioctls (2) Johannes Berg
2007-08-21 14:59 ` [PATCH 22/27] mac80211: remove unused ioctls (3) Johannes Berg
2007-08-21 14:59 ` [PATCH 23/27] mac80211: remove unused ioctls (4) Johannes Berg
2007-08-21 14:59 ` [PATCH 24/27] mac80211: remove PRISM2_PARAM_KEY_MGMT Johannes Berg
2007-08-21 14:59 ` [PATCH 25/27] mac80211: kill key_mgmt, use key_management_enabled Johannes Berg
2007-08-21 14:59 ` [PATCH 26/27] mac80211: refactor event sending Johannes Berg
2007-08-23 22:16 ` Michael Wu
2007-08-24 10:10 ` Johannes Berg
2007-08-21 14:59 ` Johannes Berg [this message]
2007-08-22 4:21 ` [PATCH 00/27] various cleanups and fixes for mac80211 and drivers Michael Wu
2007-08-23 20:54 ` John W. Linville
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20070821150052.565594000@sipsolutions.net \
--to=johannes@sipsolutions.net \
--cc=flamingice@sourmilk.net \
--cc=jbenc@suse.cz \
--cc=linux-wireless@vger.kernel.org \
--cc=linville@tuxdriver.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).