mac80211: split ieee80211_txrx_result
authorJohannes Berg <johannes@sipsolutions.net>
Thu, 31 Jan 2008 18:48:20 +0000 (19:48 +0100)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 29 Feb 2008 20:37:01 +0000 (15:37 -0500)
The _DROP result will need to be split in the RX path but not
in the TX path, so for preparation split up the type into two
types, one for RX and one for TX. Also make sure (via sparse)
that they cannot be confused.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
net/mac80211/ieee80211_i.h
net/mac80211/ieee80211_sta.c
net/mac80211/rx.c
net/mac80211/tx.c
net/mac80211/wep.c
net/mac80211/wep.h
net/mac80211/wpa.c
net/mac80211/wpa.h

index ac802fe..36ea4fb 100644 (file)
@@ -108,9 +108,16 @@ struct ieee80211_sta_bss {
 };
 
 
-typedef enum {
-       TXRX_CONTINUE, TXRX_DROP, TXRX_QUEUED
-} ieee80211_txrx_result;
+typedef unsigned __bitwise__ ieee80211_tx_result;
+#define TX_CONTINUE    ((__force ieee80211_tx_result) 0u)
+#define TX_DROP                ((__force ieee80211_tx_result) 1u)
+#define TX_QUEUED      ((__force ieee80211_tx_result) 2u)
+
+typedef unsigned __bitwise__ ieee80211_rx_result;
+#define RX_CONTINUE    ((__force ieee80211_rx_result) 0u)
+#define RX_DROP                ((__force ieee80211_rx_result) 1u)
+#define RX_QUEUED      ((__force ieee80211_rx_result) 2u)
+
 
 /* flags used in struct ieee80211_txrx_data.flags */
 /* whether the MSDU was fragmented */
@@ -182,10 +189,10 @@ struct ieee80211_tx_stored_packet {
        unsigned int last_frag_rate_ctrl_probe;
 };
 
-typedef ieee80211_txrx_result (*ieee80211_tx_handler)
+typedef ieee80211_tx_result (*ieee80211_tx_handler)
 (struct ieee80211_txrx_data *tx);
 
-typedef ieee80211_txrx_result (*ieee80211_rx_handler)
+typedef ieee80211_rx_result (*ieee80211_rx_handler)
 (struct ieee80211_txrx_data *rx);
 
 struct beacon_data {
@@ -729,9 +736,9 @@ int ieee80211_sta_req_scan(struct net_device *dev, u8 *ssid, size_t ssid_len);
 void ieee80211_sta_req_auth(struct net_device *dev,
                            struct ieee80211_if_sta *ifsta);
 int ieee80211_sta_scan_results(struct net_device *dev, char *buf, size_t len);
-ieee80211_txrx_result ieee80211_sta_rx_scan(struct net_device *dev,
-                                           struct sk_buff *skb,
-                          struct ieee80211_rx_status *rx_status);
+ieee80211_rx_result ieee80211_sta_rx_scan(
+       struct net_device *dev, struct sk_buff *skb,
+       struct ieee80211_rx_status *rx_status);
 void ieee80211_rx_bss_list_init(struct net_device *dev);
 void ieee80211_rx_bss_list_deinit(struct net_device *dev);
 int ieee80211_sta_set_extra_ie(struct net_device *dev, char *ie, size_t len);
index dac02d0..9916893 100644 (file)
@@ -2559,7 +2559,7 @@ static void ieee80211_sta_rx_queued_mgmt(struct net_device *dev,
 }
 
 
-ieee80211_txrx_result
+ieee80211_rx_result
 ieee80211_sta_rx_scan(struct net_device *dev, struct sk_buff *skb,
                      struct ieee80211_rx_status *rx_status)
 {
@@ -2567,31 +2567,31 @@ ieee80211_sta_rx_scan(struct net_device *dev, struct sk_buff *skb,
        u16 fc;
 
        if (skb->len < 2)
-               return TXRX_DROP;
+               return RX_DROP;
 
        mgmt = (struct ieee80211_mgmt *) skb->data;
        fc = le16_to_cpu(mgmt->frame_control);
 
        if ((fc & IEEE80211_FCTL_FTYPE) == IEEE80211_FTYPE_CTL)
-               return TXRX_CONTINUE;
+               return RX_CONTINUE;
 
        if (skb->len < 24)
-               return TXRX_DROP;
+               return RX_DROP;
 
        if ((fc & IEEE80211_FCTL_FTYPE) == IEEE80211_FTYPE_MGMT) {
                if ((fc & IEEE80211_FCTL_STYPE) == IEEE80211_STYPE_PROBE_RESP) {
                        ieee80211_rx_mgmt_probe_resp(dev, mgmt,
                                                     skb->len, rx_status);
                        dev_kfree_skb(skb);
-                       return TXRX_QUEUED;
+                       return RX_QUEUED;
                } else if ((fc & IEEE80211_FCTL_STYPE) == IEEE80211_STYPE_BEACON) {
                        ieee80211_rx_mgmt_beacon(dev, mgmt, skb->len,
                                                 rx_status);
                        dev_kfree_skb(skb);
-                       return TXRX_QUEUED;
+                       return RX_QUEUED;
                }
        }
-       return TXRX_CONTINUE;
+       return RX_CONTINUE;
 }
 
 
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge