aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/mac80211/ieee80211_i.h23
-rw-r--r--net/mac80211/ieee80211_sta.c14
-rw-r--r--net/mac80211/rx.c150
-rw-r--r--net/mac80211/tx.c110
-rw-r--r--net/mac80211/wep.c16
-rw-r--r--net/mac80211/wep.h4
-rw-r--r--net/mac80211/wpa.c72
-rw-r--r--net/mac80211/wpa.h12
8 files changed, 204 insertions, 197 deletions
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h
index ac802feb7655..36ea4fbdf950 100644
--- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
@@ -108,9 +108,16 @@ struct ieee80211_sta_bss {
108}; 108};
109 109
110 110
111typedef enum { 111typedef unsigned __bitwise__ ieee80211_tx_result;
112 TXRX_CONTINUE, TXRX_DROP, TXRX_QUEUED 112#define TX_CONTINUE ((__force ieee80211_tx_result) 0u)
113} ieee80211_txrx_result; 113#define TX_DROP ((__force ieee80211_tx_result) 1u)
114#define TX_QUEUED ((__force ieee80211_tx_result) 2u)
115
116typedef unsigned __bitwise__ ieee80211_rx_result;
117#define RX_CONTINUE ((__force ieee80211_rx_result) 0u)
118#define RX_DROP ((__force ieee80211_rx_result) 1u)
119#define RX_QUEUED ((__force ieee80211_rx_result) 2u)
120
114 121
115/* flags used in struct ieee80211_txrx_data.flags */ 122/* flags used in struct ieee80211_txrx_data.flags */
116/* whether the MSDU was fragmented */ 123/* whether the MSDU was fragmented */
@@ -182,10 +189,10 @@ struct ieee80211_tx_stored_packet {
182 unsigned int last_frag_rate_ctrl_probe; 189 unsigned int last_frag_rate_ctrl_probe;
183}; 190};
184 191
185typedef ieee80211_txrx_result (*ieee80211_tx_handler) 192typedef ieee80211_tx_result (*ieee80211_tx_handler)
186(struct ieee80211_txrx_data *tx); 193(struct ieee80211_txrx_data *tx);
187 194
188typedef ieee80211_txrx_result (*ieee80211_rx_handler) 195typedef ieee80211_rx_result (*ieee80211_rx_handler)
189(struct ieee80211_txrx_data *rx); 196(struct ieee80211_txrx_data *rx);
190 197
191struct beacon_data { 198struct beacon_data {
@@ -729,9 +736,9 @@ int ieee80211_sta_req_scan(struct net_device *dev, u8 *ssid, size_t ssid_len);
729void ieee80211_sta_req_auth(struct net_device *dev, 736void ieee80211_sta_req_auth(struct net_device *dev,
730 struct ieee80211_if_sta *ifsta); 737 struct ieee80211_if_sta *ifsta);
731int ieee80211_sta_scan_results(struct net_device *dev, char *buf, size_t len); 738int ieee80211_sta_scan_results(struct net_device *dev, char *buf, size_t len);
732ieee80211_txrx_result ieee80211_sta_rx_scan(struct net_device *dev, 739ieee80211_rx_result ieee80211_sta_rx_scan(
733 struct sk_buff *skb, 740 struct net_device *dev, struct sk_buff *skb,
734 struct ieee80211_rx_status *rx_status); 741 struct ieee80211_rx_status *rx_status);
735void ieee80211_rx_bss_list_init(struct net_device *dev); 742void ieee80211_rx_bss_list_init(struct net_device *dev);
736void ieee80211_rx_bss_list_deinit(struct net_device *dev); 743void ieee80211_rx_bss_list_deinit(struct net_device *dev);
737int ieee80211_sta_set_extra_ie(struct net_device *dev, char *ie, size_t len); 744int ieee80211_sta_set_extra_ie(struct net_device *dev, char *ie, size_t len);
diff --git a/net/mac80211/ieee80211_sta.c b/net/mac80211/ieee80211_sta.c
index dac02d001ef0..991689371bdc 100644
--- a/net/mac80211/ieee80211_sta.c
+++ b/net/mac80211/ieee80211_sta.c
@@ -2559,7 +2559,7 @@ static void ieee80211_sta_rx_queued_mgmt(struct net_device *dev,
2559} 2559}
2560 2560
2561 2561
2562ieee80211_txrx_result 2562ieee80211_rx_result
2563ieee80211_sta_rx_scan(struct net_device *dev, struct sk_buff *skb, 2563ieee80211_sta_rx_scan(struct net_device *dev, struct sk_buff *skb,
2564 struct ieee80211_rx_status *rx_status) 2564 struct ieee80211_rx_status *rx_status)
2565{ 2565{
@@ -2567,31 +2567,31 @@ ieee80211_sta_rx_scan(struct net_device *dev, struct sk_buff *skb,
2567 u16 fc; 2567 u16 fc;
2568 2568
2569 if (skb->len < 2) 2569 if (skb->len < 2)
2570 return TXRX_DROP; 2570 return RX_DROP;
2571 2571
2572 mgmt = (struct ieee80211_mgmt *) skb->data; 2572 mgmt = (struct ieee80211_mgmt *) skb->data;
2573 fc = le16_to_cpu(mgmt->frame_control); 2573 fc = le16_to_cpu(mgmt->frame_control);
2574 2574
2575 if ((fc & IEEE80211_FCTL_FTYPE) == IEEE80211_FTYPE_CTL) 2575 if ((fc & IEEE80211_FCTL_FTYPE) == IEEE80211_FTYPE_CTL)
2576 return TXRX_CONTINUE; 2576 return RX_CONTINUE;
2577 2577
2578 if (skb->len < 24) 2578 if (skb->len < 24)
2579 return TXRX_DROP; 2579 return RX_DROP;
2580 2580
2581 if ((fc & IEEE80211_FCTL_FTYPE) == IEEE80211_FTYPE_MGMT) { 2581 if ((fc & IEEE80211_FCTL_FTYPE) == IEEE80211_FTYPE_MGMT) {
2582 if ((fc & IEEE80211_FCTL_STYPE) == IEEE80211_STYPE_PROBE_RESP) { 2582 if ((fc & IEEE80211_FCTL_STYPE) == IEEE80211_STYPE_PROBE_RESP) {
2583 ieee80211_rx_mgmt_probe_resp(dev, mgmt, 2583 ieee80211_rx_mgmt_probe_resp(dev, mgmt,
2584 skb->len, rx_status); 2584 skb->len, rx_status);
2585 dev_kfree_skb(skb); 2585 dev_kfree_skb(skb);
2586 return TXRX_QUEUED; 2586 return RX_QUEUED;
2587 } else if ((fc & IEEE80211_FCTL_STYPE) == IEEE80211_STYPE_BEACON) { 2587 } else if ((fc & IEEE80211_FCTL_STYPE) == IEEE80211_STYPE_BEACON) {
2588 ieee80211_rx_mgmt_beacon(dev, mgmt, skb->len, 2588 ieee80211_rx_mgmt_beacon(dev, mgmt, skb->len,
2589 rx_status); 2589 rx_status);
2590 dev_kfree_skb(skb); 2590 dev_kfree_skb(skb);
2591 return TXRX_QUEUED; 2591 return RX_QUEUED;
2592 } 2592 }
2593 } 2593 }
2594 return TXRX_CONTINUE; 2594 return RX_CONTINUE;
2595} 2595}
2596 2596
2597 2597
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
index 0989c212b7c2..ffd68d9a0013 100644
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -351,16 +351,16 @@ static u32 ieee80211_rx_load_stats(struct ieee80211_local *local,
351 351
352/* rx handlers */ 352/* rx handlers */
353 353
354static ieee80211_txrx_result 354static ieee80211_rx_result
355ieee80211_rx_h_if_stats(struct ieee80211_txrx_data *rx) 355ieee80211_rx_h_if_stats(struct ieee80211_txrx_data *rx)
356{ 356{
357 if (rx->sta) 357 if (rx->sta)
358 rx->sta->channel_use_raw += rx->u.rx.load; 358 rx->sta->channel_use_raw += rx->u.rx.load;
359 rx->sdata->channel_use_raw += rx->u.rx.load; 359 rx->sdata->channel_use_raw += rx->u.rx.load;
360 return TXRX_CONTINUE; 360 return RX_CONTINUE;
361} 361}
362 362
363static ieee80211_txrx_result 363static ieee80211_rx_result
364ieee80211_rx_h_passive_scan(struct ieee80211_txrx_data *rx) 364ieee80211_rx_h_passive_scan(struct ieee80211_txrx_data *rx)
365{ 365{
366 struct ieee80211_local *local = rx->local; 366 struct ieee80211_local *local = rx->local;
@@ -372,21 +372,21 @@ ieee80211_rx_h_passive_scan(struct ieee80211_txrx_data *rx)
372 if (unlikely(local->sta_sw_scanning)) { 372 if (unlikely(local->sta_sw_scanning)) {
373 /* drop all the other packets during a software scan anyway */ 373 /* drop all the other packets during a software scan anyway */
374 if (ieee80211_sta_rx_scan(rx->dev, skb, rx->u.rx.status) 374 if (ieee80211_sta_rx_scan(rx->dev, skb, rx->u.rx.status)
375 != TXRX_QUEUED) 375 != RX_QUEUED)
376 dev_kfree_skb(skb); 376 dev_kfree_skb(skb);
377 return TXRX_QUEUED; 377 return RX_QUEUED;
378 } 378 }
379 379
380 if (unlikely(rx->flags & IEEE80211_TXRXD_RXIN_SCAN)) { 380 if (unlikely(rx->flags & IEEE80211_TXRXD_RXIN_SCAN)) {
381 /* scanning finished during invoking of handlers */ 381 /* scanning finished during invoking of handlers */
382 I802_DEBUG_INC(local->rx_handlers_drop_passive_scan); 382 I802_DEBUG_INC(local->rx_handlers_drop_passive_scan);
383 return TXRX_DROP; 383 return RX_DROP;
384 } 384 }
385 385
386 return TXRX_CONTINUE; 386 return RX_CONTINUE;
387} 387}
388 388
389static ieee80211_txrx_result 389static ieee80211_rx_result
390ieee80211_rx_h_check(struct ieee80211_txrx_data *rx) 390ieee80211_rx_h_check(struct ieee80211_txrx_data *rx)
391{ 391{
392 struct ieee80211_hdr *hdr; 392 struct ieee80211_hdr *hdr;
@@ -401,14 +401,14 @@ ieee80211_rx_h_check(struct ieee80211_txrx_data *rx)
401 rx->local->dot11FrameDuplicateCount++; 401 rx->local->dot11FrameDuplicateCount++;
402 rx->sta->num_duplicates++; 402 rx->sta->num_duplicates++;
403 } 403 }
404 return TXRX_DROP; 404 return RX_DROP;
405 } else 405 } else
406 rx->sta->last_seq_ctrl[rx->u.rx.queue] = hdr->seq_ctrl; 406 rx->sta->last_seq_ctrl[rx->u.rx.queue] = hdr->seq_ctrl;
407 } 407 }
408 408
409 if (unlikely(rx->skb->len < 16)) { 409 if (unlikely(rx->skb->len < 16)) {
410 I802_DEBUG_INC(rx->local->rx_handlers_drop_short); 410 I802_DEBUG_INC(rx->local->rx_handlers_drop_short);
411 return TXRX_DROP; 411 return RX_DROP;
412 } 412 }
413 413
414 /* Drop disallowed frame classes based on STA auth/assoc state; 414 /* Drop disallowed frame classes based on STA auth/assoc state;
@@ -430,23 +430,23 @@ ieee80211_rx_h_check(struct ieee80211_txrx_data *rx)
430 || !(rx->flags & IEEE80211_TXRXD_RXRA_MATCH)) { 430 || !(rx->flags & IEEE80211_TXRXD_RXRA_MATCH)) {
431 /* Drop IBSS frames and frames for other hosts 431 /* Drop IBSS frames and frames for other hosts
432 * silently. */ 432 * silently. */
433 return TXRX_DROP; 433 return RX_DROP;
434 } 434 }
435 435
436 return TXRX_DROP; 436 return RX_DROP;
437 } 437 }
438 438
439 return TXRX_CONTINUE; 439 return RX_CONTINUE;
440} 440}
441 441
442 442
443static ieee80211_txrx_result 443static ieee80211_rx_result
444ieee80211_rx_h_decrypt(struct ieee80211_txrx_data *rx) 444ieee80211_rx_h_decrypt(struct ieee80211_txrx_data *rx)
445{ 445{
446 struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) rx->skb->data; 446 struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) rx->skb->data;
447 int keyidx; 447 int keyidx;
448 int hdrlen; 448 int hdrlen;
449 ieee80211_txrx_result result = TXRX_DROP; 449 ieee80211_rx_result result = RX_DROP;
450 struct ieee80211_key *stakey = NULL; 450 struct ieee80211_key *stakey = NULL;
451 451
452 /* 452 /*
@@ -476,14 +476,14 @@ ieee80211_rx_h_decrypt(struct ieee80211_txrx_data *rx)
476 */ 476 */
477 477
478 if (!(rx->fc & IEEE80211_FCTL_PROTECTED)) 478 if (!(rx->fc & IEEE80211_FCTL_PROTECTED))
479 return TXRX_CONTINUE; 479 return RX_CONTINUE;
480 480
481 /* 481 /*
482 * No point in finding a key and decrypting if the frame is neither 482 * No point in finding a key and decrypting if the frame is neither
483 * addressed to us nor a multicast frame. 483 * addressed to us nor a multicast frame.
484 */ 484 */
485 if (!(rx->flags & IEEE80211_TXRXD_RXRA_MATCH)) 485 if (!(rx->flags & IEEE80211_TXRXD_RXRA_MATCH))
486 return TXRX_CONTINUE; 486 return RX_CONTINUE;
487 487
488 if (rx->sta) 488 if (rx->sta)
489 stakey = rcu_dereference(rx->sta->key); 489 stakey = rcu_dereference(rx->sta->key);
@@ -502,12 +502,12 @@ ieee80211_rx_h_decrypt(struct ieee80211_txrx_data *rx)
502 */ 502 */
503 if ((rx->u.rx.status->flag & RX_FLAG_DECRYPTED) && 503 if ((rx->u.rx.status->flag & RX_FLAG_DECRYPTED) &&
504 (rx->u.rx.status->flag & RX_FLAG_IV_STRIPPED)) 504 (rx->u.rx.status->flag & RX_FLAG_IV_STRIPPED))
505 return TXRX_CONTINUE; 505 return RX_CONTINUE;
506 506
507 hdrlen = ieee80211_get_hdrlen(rx->fc); 507 hdrlen = ieee80211_get_hdrlen(rx->fc);
508 508
509 if (rx->skb->len < 8 + hdrlen) 509 if (rx->skb->len < 8 + hdrlen)
510 return TXRX_DROP; /* TODO: count this? */ 510 return RX_DROP; /* TODO: count this? */
511 511
512 /* 512 /*
513 * no need to call ieee80211_wep_get_keyidx, 513 * no need to call ieee80211_wep_get_keyidx,
@@ -536,7 +536,7 @@ ieee80211_rx_h_decrypt(struct ieee80211_txrx_data *rx)
536 printk(KERN_DEBUG "%s: RX protected frame," 536 printk(KERN_DEBUG "%s: RX protected frame,"
537 " but have no key\n", rx->dev->name); 537 " but have no key\n", rx->dev->name);
538#endif /* CONFIG_MAC80211_DEBUG */ 538#endif /* CONFIG_MAC80211_DEBUG */
539 return TXRX_DROP; 539 return RX_DROP;
540 } 540 }
541 541
542 /* Check for weak IVs if possible */ 542 /* Check for weak IVs if possible */
@@ -629,7 +629,7 @@ static int ap_sta_ps_end(struct net_device *dev, struct sta_info *sta)
629 return sent; 629 return sent;
630} 630}
631 631
632static ieee80211_txrx_result 632static ieee80211_rx_result
633ieee80211_rx_h_sta_process(struct ieee80211_txrx_data *rx) 633ieee80211_rx_h_sta_process(struct ieee80211_txrx_data *rx)
634{ 634{
635 struct sta_info *sta = rx->sta; 635 struct sta_info *sta = rx->sta;
@@ -637,7 +637,7 @@ ieee80211_rx_h_sta_process(struct ieee80211_txrx_data *rx)
637 struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) rx->skb->data; 637 struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) rx->skb->data;
638 638
639 if (!sta) 639 if (!sta)
640 return TXRX_CONTINUE; 640 return RX_CONTINUE;
641 641
642 /* Update last_rx only for IBSS packets which are for the current 642 /* Update last_rx only for IBSS packets which are for the current
643 * BSSID to avoid keeping the current IBSS network alive in cases where 643 * BSSID to avoid keeping the current IBSS network alive in cases where
@@ -658,7 +658,7 @@ ieee80211_rx_h_sta_process(struct ieee80211_txrx_data *rx)
658 } 658 }
659 659
660 if (!(rx->flags & IEEE80211_TXRXD_RXRA_MATCH)) 660 if (!(rx->flags & IEEE80211_TXRXD_RXRA_MATCH))
661 return TXRX_CONTINUE; 661 return RX_CONTINUE;
662 662
663 sta->rx_fragments++; 663 sta->rx_fragments++;
664 sta->rx_bytes += rx->skb->len; 664 sta->rx_bytes += rx->skb->len;
@@ -685,10 +685,10 @@ ieee80211_rx_h_sta_process(struct ieee80211_txrx_data *rx)
685 * as a dropped packed. */ 685 * as a dropped packed. */
686 sta->rx_packets++; 686 sta->rx_packets++;
687 dev_kfree_skb(rx->skb); 687 dev_kfree_skb(rx->skb);
688 return TXRX_QUEUED; 688 return RX_QUEUED;
689 } 689 }
690 690
691 return TXRX_CONTINUE; 691 return RX_CONTINUE;
692} /* ieee80211_rx_h_sta_process */ 692} /* ieee80211_rx_h_sta_process */
693 693
694static inline struct ieee80211_fragment_entry * 694static inline struct ieee80211_fragment_entry *
@@ -774,7 +774,7 @@ ieee80211_reassemble_find(struct ieee80211_sub_if_data *sdata,
774 return NULL; 774 return NULL;
775} 775}
776 776
777static ieee80211_txrx_result 777static ieee80211_rx_result
778ieee80211_rx_h_defragment(struct ieee80211_txrx_data *rx) 778ieee80211_rx_h_defragment(struct ieee80211_txrx_data *rx)
779{ 779{
780 struct ieee80211_hdr *hdr; 780 struct ieee80211_hdr *hdr;
@@ -811,7 +811,7 @@ ieee80211_rx_h_defragment(struct ieee80211_txrx_data *rx)
811 rx->key->u.ccmp.rx_pn[rx->u.rx.queue], 811 rx->key->u.ccmp.rx_pn[rx->u.rx.queue],
812 CCMP_PN_LEN); 812 CCMP_PN_LEN);
813 } 813 }
814 return TXRX_QUEUED; 814 return RX_QUEUED;
815 } 815 }
816 816
817 /* This is a fragment for a frame that should already be pending in 817 /* This is a fragment for a frame that should already be pending in
@@ -821,7 +821,7 @@ ieee80211_rx_h_defragment(struct ieee80211_txrx_data *rx)
821 rx->u.rx.queue, hdr); 821 rx->u.rx.queue, hdr);
822 if (!entry) { 822 if (!entry) {
823 I802_DEBUG_INC(rx->local->rx_handlers_drop_defrag); 823 I802_DEBUG_INC(rx->local->rx_handlers_drop_defrag);
824 return TXRX_DROP; 824 return RX_DROP;
825 } 825 }
826 826
827 /* Verify that MPDUs within one MSDU have sequential PN values. 827 /* Verify that MPDUs within one MSDU have sequential PN values.
@@ -830,7 +830,7 @@ ieee80211_rx_h_defragment(struct ieee80211_txrx_data *rx)
830 int i; 830 int i;
831 u8 pn[CCMP_PN_LEN], *rpn; 831 u8 pn[CCMP_PN_LEN], *rpn;
832 if (!rx->key || rx->key->conf.alg != ALG_CCMP) 832 if (!rx->key || rx->key->conf.alg != ALG_CCMP)
833 return TXRX_DROP; 833 return RX_DROP;
834 memcpy(pn, entry->last_pn, CCMP_PN_LEN); 834 memcpy(pn, entry->last_pn, CCMP_PN_LEN);
835 for (i = CCMP_PN_LEN - 1; i >= 0; i--) { 835 for (i = CCMP_PN_LEN - 1; i >= 0; i--) {
836 pn[i]++; 836 pn[i]++;
@@ -848,7 +848,7 @@ ieee80211_rx_h_defragment(struct ieee80211_txrx_data *rx)
848 rpn[0], rpn[1], rpn[2], rpn[3], rpn[4], 848 rpn[0], rpn[1], rpn[2], rpn[3], rpn[4],
849 rpn[5], pn[0], pn[1], pn[2], pn[3], 849 rpn[5], pn[0], pn[1], pn[2], pn[3],
850 pn[4], pn[5]); 850 pn[4], pn[5]);
851 return TXRX_DROP; 851 return RX_DROP;
852 } 852 }
853 memcpy(entry->last_pn, pn, CCMP_PN_LEN); 853 memcpy(entry->last_pn, pn, CCMP_PN_LEN);
854 } 854 }
@@ -859,7 +859,7 @@ ieee80211_rx_h_defragment(struct ieee80211_txrx_data *rx)
859 entry->extra_len += rx->skb->len; 859 entry->extra_len += rx->skb->len;
860 if (rx->fc & IEEE80211_FCTL_MOREFRAGS) { 860 if (rx->fc & IEEE80211_FCTL_MOREFRAGS) {
861 rx->skb = NULL; 861 rx->skb = NULL;
862 return TXRX_QUEUED; 862 return RX_QUEUED;
863 } 863 }
864 864
865 rx->skb = __skb_dequeue(&entry->skb_list); 865 rx->skb = __skb_dequeue(&entry->skb_list);
@@ -869,7 +869,7 @@ ieee80211_rx_h_defragment(struct ieee80211_txrx_data *rx)
869 GFP_ATOMIC))) { 869 GFP_ATOMIC))) {
870 I802_DEBUG_INC(rx->local->rx_handlers_drop_defrag); 870 I802_DEBUG_INC(rx->local->rx_handlers_drop_defrag);
871 __skb_queue_purge(&entry->skb_list); 871 __skb_queue_purge(&entry->skb_list);
872 return TXRX_DROP; 872 return RX_DROP;
873 } 873 }
874 } 874 }
875 while ((skb = __skb_dequeue(&entry->skb_list))) { 875 while ((skb = __skb_dequeue(&entry->skb_list))) {
@@ -887,10 +887,10 @@ ieee80211_rx_h_defragment(struct ieee80211_txrx_data *rx)
887 rx->local->dot11MulticastReceivedFrameCount++; 887 rx->local->dot11MulticastReceivedFrameCount++;
888 else 888 else
889 ieee80211_led_rx(rx->local); 889 ieee80211_led_rx(rx->local);
890 return TXRX_CONTINUE; 890 return RX_CONTINUE;
891} 891}
892 892
893static ieee80211_txrx_result 893static ieee80211_rx_result
894ieee80211_rx_h_ps_poll(struct ieee80211_txrx_data *rx) 894ieee80211_rx_h_ps_poll(struct ieee80211_txrx_data *rx)
895{ 895{
896 struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(rx->dev); 896 struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(rx->dev);
@@ -902,11 +902,11 @@ ieee80211_rx_h_ps_poll(struct ieee80211_txrx_data *rx)
902 (rx->fc & IEEE80211_FCTL_FTYPE) != IEEE80211_FTYPE_CTL || 902 (rx->fc & IEEE80211_FCTL_FTYPE) != IEEE80211_FTYPE_CTL ||
903 (rx->fc & IEEE80211_FCTL_STYPE) != IEEE80211_STYPE_PSPOLL || 903 (rx->fc & IEEE80211_FCTL_STYPE) != IEEE80211_STYPE_PSPOLL ||
904 !(rx->flags & IEEE80211_TXRXD_RXRA_MATCH))) 904 !(rx->flags & IEEE80211_TXRXD_RXRA_MATCH)))
905 return TXRX_CONTINUE; 905 return RX_CONTINUE;
906 906
907 if ((sdata->vif.type != IEEE80211_IF_TYPE_AP) && 907 if ((sdata->vif.type != IEEE80211_IF_TYPE_AP) &&
908 (sdata->vif.type != IEEE80211_IF_TYPE_VLAN)) 908 (sdata->vif.type != IEEE80211_IF_TYPE_VLAN))
909 return TXRX_DROP; 909 return RX_DROP;
910 910
911 skb = skb_dequeue(&rx->sta->tx_filtered); 911 skb = skb_dequeue(&rx->sta->tx_filtered);
912 if (!skb) { 912 if (!skb) {
@@ -957,14 +957,14 @@ ieee80211_rx_h_ps_poll(struct ieee80211_txrx_data *rx)
957 957
958 } 958 }
959 959
960 /* Free PS Poll skb here instead of returning TXRX_DROP that would 960 /* Free PS Poll skb here instead of returning RX_DROP that would
961 * count as an dropped frame. */ 961 * count as an dropped frame. */
962 dev_kfree_skb(rx->skb); 962 dev_kfree_skb(rx->skb);
963 963
964 return TXRX_QUEUED; 964 return RX_QUEUED;
965} 965}
966 966
967static ieee80211_txrx_result 967static ieee80211_rx_result
968ieee80211_rx_h_remove_qos_control(struct ieee80211_txrx_data *rx) 968ieee80211_rx_h_remove_qos_control(struct ieee80211_txrx_data *rx)
969{ 969{
970 u16 fc = rx->fc; 970 u16 fc = rx->fc;
@@ -972,7 +972,7 @@ ieee80211_rx_h_remove_qos_control(struct ieee80211_txrx_data *rx)
972 struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) data; 972 struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) data;
973 973
974 if (!WLAN_FC_IS_QOS_DATA(fc)) 974 if (!WLAN_FC_IS_QOS_DATA(fc))
975 return TXRX_CONTINUE; 975 return RX_CONTINUE;
976 976
977 /* remove the qos control field, update frame type and meta-data */ 977 /* remove the qos control field, update frame type and meta-data */
978 memmove(data + 2, data, ieee80211_get_hdrlen(fc) - 2); 978 memmove(data + 2, data, ieee80211_get_hdrlen(fc) - 2);
@@ -981,7 +981,7 @@ ieee80211_rx_h_remove_qos_control(struct ieee80211_txrx_data *rx)
981 rx->fc = fc &= ~IEEE80211_STYPE_QOS_DATA; 981 rx->fc = fc &= ~IEEE80211_STYPE_QOS_DATA;
982 hdr->frame_control = cpu_to_le16(fc); 982 hdr->frame_control = cpu_to_le16(fc);
983 983
984 return TXRX_CONTINUE; 984 return RX_CONTINUE;
985} 985}
986 986
987static int 987static int
@@ -1238,7 +1238,7 @@ ieee80211_deliver_skb(struct ieee80211_txrx_data *rx)
1238 } 1238 }
1239} 1239}
1240 1240
1241static ieee80211_txrx_result 1241static ieee80211_rx_result
1242ieee80211_rx_h_amsdu(struct ieee80211_txrx_data *rx) 1242ieee80211_rx_h_amsdu(struct ieee80211_txrx_data *rx)
1243{ 1243{
1244 struct net_device *dev = rx->dev; 1244 struct net_device *dev = rx->dev;
@@ -1254,17 +1254,17 @@ ieee80211_rx_h_amsdu(struct ieee80211_txrx_data *rx)
1254 1254
1255 fc = rx->fc; 1255 fc = rx->fc;
1256 if (unlikely((fc & IEEE80211_FCTL_FTYPE) != IEEE80211_FTYPE_DATA)) 1256 if (unlikely((fc & IEEE80211_FCTL_FTYPE) != IEEE80211_FTYPE_DATA))
1257 return TXRX_CONTINUE; 1257 return RX_CONTINUE;
1258 1258
1259 if (unlikely(!WLAN_FC_DATA_PRESENT(fc))) 1259 if (unlikely(!WLAN_FC_DATA_PRESENT(fc)))
1260 return TXRX_DROP; 1260 return RX_DROP;
1261 1261
1262 if (!(rx->flags & IEEE80211_TXRXD_RX_AMSDU)) 1262 if (!(rx->flags & IEEE80211_TXRXD_RX_AMSDU))
1263 return TXRX_CONTINUE; 1263 return RX_CONTINUE;
1264 1264
1265 err = ieee80211_data_to_8023(rx); 1265 err = ieee80211_data_to_8023(rx);
1266 if (unlikely(err)) 1266 if (unlikely(err))
1267 return TXRX_DROP; 1267 return RX_DROP;
1268 1268
1269 skb->dev = dev; 1269 skb->dev = dev;
1270 1270
@@ -1274,7 +1274,7 @@ ieee80211_rx_h_amsdu(struct ieee80211_txrx_data *rx)
1274 /* skip the wrapping header */ 1274 /* skip the wrapping header */
1275 eth = (struct ethhdr *) skb_pull(skb, sizeof(struct ethhdr)); 1275 eth = (struct ethhdr *) skb_pull(skb, sizeof(struct ethhdr));
1276 if (!eth) 1276 if (!eth)
1277 return TXRX_DROP; 1277 return RX_DROP;
1278 1278
1279 while (skb != frame) { 1279 while (skb != frame) {
1280 u8 padding; 1280 u8 padding;
@@ -1289,7 +1289,7 @@ ieee80211_rx_h_amsdu(struct ieee80211_txrx_data *rx)
1289 /* the last MSDU has no padding */ 1289 /* the last MSDU has no padding */
1290 if (subframe_len > remaining) { 1290 if (subframe_len > remaining) {
1291 printk(KERN_DEBUG "%s: wrong buffer size", dev->name); 1291 printk(KERN_DEBUG "%s: wrong buffer size", dev->name);
1292 return TXRX_DROP; 1292 return RX_DROP;
1293 } 1293 }
1294 1294
1295 skb_pull(skb, sizeof(struct ethhdr)); 1295 skb_pull(skb, sizeof(struct ethhdr));
@@ -1301,7 +1301,7 @@ ieee80211_rx_h_amsdu(struct ieee80211_txrx_data *rx)
1301 subframe_len); 1301 subframe_len);
1302 1302
1303 if (frame == NULL) 1303 if (frame == NULL)
1304 return TXRX_DROP; 1304 return RX_DROP;
1305 1305
1306 skb_reserve(frame, local->hw.extra_tx_headroom + 1306 skb_reserve(frame, local->hw.extra_tx_headroom +
1307 sizeof(struct ethhdr)); 1307 sizeof(struct ethhdr));
@@ -1314,7 +1314,7 @@ ieee80211_rx_h_amsdu(struct ieee80211_txrx_data *rx)
1314 printk(KERN_DEBUG "%s: wrong buffer size ", 1314 printk(KERN_DEBUG "%s: wrong buffer size ",
1315 dev->name); 1315 dev->name);
1316 dev_kfree_skb(frame); 1316 dev_kfree_skb(frame);
1317 return TXRX_DROP; 1317 return RX_DROP;
1318 } 1318 }
1319 } 1319 }
1320 1320
@@ -1344,7 +1344,7 @@ ieee80211_rx_h_amsdu(struct ieee80211_txrx_data *rx)
1344 1344
1345 if (!ieee80211_frame_allowed(rx)) { 1345 if (!ieee80211_frame_allowed(rx)) {
1346 if (skb == frame) /* last frame */ 1346 if (skb == frame) /* last frame */
1347 return TXRX_DROP; 1347 return RX_DROP;
1348 dev_kfree_skb(frame); 1348 dev_kfree_skb(frame);
1349 continue; 1349 continue;
1350 } 1350 }
@@ -1352,10 +1352,10 @@ ieee80211_rx_h_amsdu(struct ieee80211_txrx_data *rx)
1352 ieee80211_deliver_skb(rx); 1352 ieee80211_deliver_skb(rx);
1353 } 1353 }
1354 1354
1355 return TXRX_QUEUED; 1355 return RX_QUEUED;
1356} 1356}
1357 1357
1358static ieee80211_txrx_result 1358static ieee80211_rx_result
1359ieee80211_rx_h_data(struct ieee80211_txrx_data *rx) 1359ieee80211_rx_h_data(struct ieee80211_txrx_data *rx)
1360{ 1360{
1361 struct net_device *dev = rx->dev; 1361 struct net_device *dev = rx->dev;
@@ -1364,17 +1364,17 @@ ieee80211_rx_h_data(struct ieee80211_txrx_data *rx)
1364 1364
1365 fc = rx->fc; 1365 fc = rx->fc;
1366 if (unlikely((fc & IEEE80211_FCTL_FTYPE) != IEEE80211_FTYPE_DATA)) 1366 if (unlikely((fc & IEEE80211_FCTL_FTYPE) != IEEE80211_FTYPE_DATA))
1367 return TXRX_CONTINUE; 1367 return RX_CONTINUE;
1368 1368
1369 if (unlikely(!WLAN_FC_DATA_PRESENT(fc))) 1369 if (unlikely(!WLAN_FC_DATA_PRESENT(fc)))
1370 return TXRX_DROP; 1370 return RX_DROP;
1371 1371
1372 err = ieee80211_data_to_8023(rx); 1372 err = ieee80211_data_to_8023(rx);
1373 if (unlikely(err)) 1373 if (unlikely(err))
1374 return TXRX_DROP; 1374 return RX_DROP;
1375 1375
1376 if (!ieee80211_frame_allowed(rx)) 1376 if (!ieee80211_frame_allowed(rx))
1377 return TXRX_DROP; 1377 return RX_DROP;
1378 1378
1379 rx->skb->dev = dev; 1379 rx->skb->dev = dev;
1380 1380
@@ -1383,10 +1383,10 @@ ieee80211_rx_h_data(struct ieee80211_txrx_data *rx)
1383 1383
1384 ieee80211_deliver_skb(rx); 1384 ieee80211_deliver_skb(rx);
1385 1385
1386 return TXRX_QUEUED; 1386 return RX_QUEUED;
1387} 1387}
1388 1388
1389static ieee80211_txrx_result 1389static ieee80211_rx_result
1390ieee80211_rx_h_ctrl(struct ieee80211_txrx_data *rx) 1390ieee80211_rx_h_ctrl(struct ieee80211_txrx_data *rx)
1391{ 1391{
1392 struct ieee80211_local *local = rx->local; 1392 struct ieee80211_local *local = rx->local;
@@ -1398,15 +1398,15 @@ ieee80211_rx_h_ctrl(struct ieee80211_txrx_data *rx)
1398 u16 tid; 1398 u16 tid;
1399 1399
1400 if (likely((rx->fc & IEEE80211_FCTL_FTYPE) != IEEE80211_FTYPE_CTL)) 1400 if (likely((rx->fc & IEEE80211_FCTL_FTYPE) != IEEE80211_FTYPE_CTL))
1401 return TXRX_CONTINUE; 1401 return RX_CONTINUE;
1402 1402
1403 if ((rx->fc & IEEE80211_FCTL_STYPE) == IEEE80211_STYPE_BACK_REQ) { 1403 if ((rx->fc & IEEE80211_FCTL_STYPE) == IEEE80211_STYPE_BACK_REQ) {
1404 if (!rx->sta) 1404 if (!rx->sta)
1405 return TXRX_CONTINUE; 1405 return RX_CONTINUE;
1406 tid = le16_to_cpu(bar->control) >> 12; 1406 tid = le16_to_cpu(bar->control) >> 12;
1407 tid_agg_rx = &(rx->sta->ampdu_mlme.tid_rx[tid]); 1407 tid_agg_rx = &(rx->sta->ampdu_mlme.tid_rx[tid]);
1408 if (tid_agg_rx->state != HT_AGG_STATE_OPERATIONAL) 1408 if (tid_agg_rx->state != HT_AGG_STATE_OPERATIONAL)
1409 return TXRX_CONTINUE; 1409 return RX_CONTINUE;
1410 1410
1411 start_seq_num = le16_to_cpu(bar->start_seq_num) >> 4; 1411 start_seq_num = le16_to_cpu(bar->start_seq_num) >> 4;
1412 1412
@@ -1423,19 +1423,19 @@ ieee80211_rx_h_ctrl(struct ieee80211_txrx_data *rx)
1423 ieee80211_sta_manage_reorder_buf(hw, tid_agg_rx, NULL, 1423 ieee80211_sta_manage_reorder_buf(hw, tid_agg_rx, NULL,
1424 start_seq_num, 1); 1424 start_seq_num, 1);
1425 rcu_read_unlock(); 1425 rcu_read_unlock();
1426 return TXRX_DROP; 1426 return RX_DROP;
1427 } 1427 }
1428 1428
1429 return TXRX_CONTINUE; 1429 return RX_CONTINUE;
1430} 1430}
1431 1431
1432static ieee80211_txrx_result 1432static ieee80211_rx_result
1433ieee80211_rx_h_mgmt(struct ieee80211_txrx_data *rx) 1433ieee80211_rx_h_mgmt(struct ieee80211_txrx_data *rx)
1434{ 1434{
1435 struct ieee80211_sub_if_data *sdata; 1435 struct ieee80211_sub_if_data *sdata;
1436 1436
1437 if (!(rx->flags & IEEE80211_TXRXD_RXRA_MATCH)) 1437 if (!(rx->flags & IEEE80211_TXRXD_RXRA_MATCH))
1438 return TXRX_DROP; 1438 return RX_DROP;
1439 1439
1440 sdata = IEEE80211_DEV_TO_SUB_IF(rx->dev); 1440 sdata = IEEE80211_DEV_TO_SUB_IF(rx->dev);
1441 if ((sdata->vif.type == IEEE80211_IF_TYPE_STA || 1441 if ((sdata->vif.type == IEEE80211_IF_TYPE_STA ||
@@ -1443,39 +1443,39 @@ ieee80211_rx_h_mgmt(struct ieee80211_txrx_data *rx)
1443 !(sdata->flags & IEEE80211_SDATA_USERSPACE_MLME)) 1443 !(sdata->flags & IEEE80211_SDATA_USERSPACE_MLME))
1444 ieee80211_sta_rx_mgmt(rx->dev, rx->skb, rx->u.rx.status); 1444 ieee80211_sta_rx_mgmt(rx->dev, rx->skb, rx->u.rx.status);
1445 else 1445 else
1446 return TXRX_DROP; 1446 return RX_DROP;
1447 1447
1448 return TXRX_QUEUED; 1448 return RX_QUEUED;
1449} 1449}
1450 1450
1451static inline ieee80211_txrx_result __ieee80211_invoke_rx_handlers( 1451static inline ieee80211_rx_result __ieee80211_invoke_rx_handlers(
1452 struct ieee80211_local *local, 1452 struct ieee80211_local *local,
1453 ieee80211_rx_handler *handlers, 1453 ieee80211_rx_handler *handlers,
1454 struct ieee80211_txrx_data *rx, 1454 struct ieee80211_txrx_data *rx,
1455 struct sta_info *sta) 1455 struct sta_info *sta)
1456{ 1456{
1457 ieee80211_rx_handler *handler; 1457 ieee80211_rx_handler *handler;
1458 ieee80211_txrx_result res = TXRX_DROP; 1458 ieee80211_rx_result res = RX_DROP;
1459 1459
1460 for (handler = handlers; *handler != NULL; handler++) { 1460 for (handler = handlers; *handler != NULL; handler++) {
1461 res = (*handler)(rx); 1461 res = (*handler)(rx);
1462 1462
1463 switch (res) { 1463 switch (res) {
1464 case TXRX_CONTINUE: 1464 case RX_CONTINUE:
1465 continue; 1465 continue;
1466 case TXRX_DROP: 1466 case RX_DROP:
1467 I802_DEBUG_INC(local->rx_handlers_drop); 1467 I802_DEBUG_INC(local->rx_handlers_drop);
1468 if (sta) 1468 if (sta)
1469 sta->rx_dropped++; 1469 sta->rx_dropped++;
1470 break; 1470 break;
1471 case TXRX_QUEUED: 1471 case RX_QUEUED:
1472 I802_DEBUG_INC(local->rx_handlers_queued); 1472 I802_DEBUG_INC(local->rx_handlers_queued);
1473 break; 1473 break;
1474 } 1474 }
1475 break; 1475 break;
1476 } 1476 }
1477 1477
1478 if (res == TXRX_DROP) 1478 if (res == RX_DROP)
1479 dev_kfree_skb(rx->skb); 1479 dev_kfree_skb(rx->skb);
1480 return res; 1480 return res;
1481} 1481}
@@ -1486,7 +1486,7 @@ static inline void ieee80211_invoke_rx_handlers(struct ieee80211_local *local,
1486 struct sta_info *sta) 1486 struct sta_info *sta)
1487{ 1487{
1488 if (__ieee80211_invoke_rx_handlers(local, handlers, rx, sta) == 1488 if (__ieee80211_invoke_rx_handlers(local, handlers, rx, sta) ==
1489 TXRX_CONTINUE) 1489 RX_CONTINUE)
1490 dev_kfree_skb(rx->skb); 1490 dev_kfree_skb(rx->skb);
1491} 1491}
1492 1492
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
index 2b4746441232..0cba4a214876 100644
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -232,7 +232,7 @@ static int inline is_ieee80211_device(struct net_device *dev,
232 232
233/* tx handlers */ 233/* tx handlers */
234 234
235static ieee80211_txrx_result 235static ieee80211_tx_result
236ieee80211_tx_h_check_assoc(struct ieee80211_txrx_data *tx) 236ieee80211_tx_h_check_assoc(struct ieee80211_txrx_data *tx)
237{ 237{
238#ifdef CONFIG_MAC80211_VERBOSE_DEBUG 238#ifdef CONFIG_MAC80211_VERBOSE_DEBUG
@@ -242,15 +242,15 @@ ieee80211_tx_h_check_assoc(struct ieee80211_txrx_data *tx)
242 u32 sta_flags; 242 u32 sta_flags;
243 243
244 if (unlikely(tx->flags & IEEE80211_TXRXD_TX_INJECTED)) 244 if (unlikely(tx->flags & IEEE80211_TXRXD_TX_INJECTED))
245 return TXRX_CONTINUE; 245 return TX_CONTINUE;
246 246
247 if (unlikely(tx->local->sta_sw_scanning) && 247 if (unlikely(tx->local->sta_sw_scanning) &&
248 ((tx->fc & IEEE80211_FCTL_FTYPE) != IEEE80211_FTYPE_MGMT || 248 ((tx->fc & IEEE80211_FCTL_FTYPE) != IEEE80211_FTYPE_MGMT ||
249 (tx->fc & IEEE80211_FCTL_STYPE) != IEEE80211_STYPE_PROBE_REQ)) 249 (tx->fc & IEEE80211_FCTL_STYPE) != IEEE80211_STYPE_PROBE_REQ))
250 return TXRX_DROP; 250 return TX_DROP;
251 251
252 if (tx->flags & IEEE80211_TXRXD_TXPS_BUFFERED) 252 if (tx->flags & IEEE80211_TXRXD_TXPS_BUFFERED)
253 return TXRX_CONTINUE; 253 return TX_CONTINUE;
254 254
255 sta_flags = tx->sta ? tx->sta->flags : 0; 255 sta_flags = tx->sta ? tx->sta->flags : 0;
256 256
@@ -265,7 +265,7 @@ ieee80211_tx_h_check_assoc(struct ieee80211_txrx_data *tx)
265 tx->dev->name, print_mac(mac, hdr->addr1)); 265 tx->dev->name, print_mac(mac, hdr->addr1));
266#endif /* CONFIG_MAC80211_VERBOSE_DEBUG */ 266#endif /* CONFIG_MAC80211_VERBOSE_DEBUG */
267 I802_DEBUG_INC(tx->local->tx_handlers_drop_not_assoc); 267 I802_DEBUG_INC(tx->local->tx_handlers_drop_not_assoc);
268 return TXRX_DROP; 268 return TX_DROP;
269 } 269 }
270 } else { 270 } else {
271 if (unlikely((tx->fc & IEEE80211_FCTL_FTYPE) == IEEE80211_FTYPE_DATA && 271 if (unlikely((tx->fc & IEEE80211_FCTL_FTYPE) == IEEE80211_FTYPE_DATA &&
@@ -275,15 +275,15 @@ ieee80211_tx_h_check_assoc(struct ieee80211_txrx_data *tx)
275 * No associated STAs - no need to send multicast 275 * No associated STAs - no need to send multicast
276 * frames. 276 * frames.
277 */ 277 */
278 return TXRX_DROP; 278 return TX_DROP;
279 } 279 }
280 return TXRX_CONTINUE; 280 return TX_CONTINUE;
281 } 281 }
282 282
283 return TXRX_CONTINUE; 283 return TX_CONTINUE;
284} 284}
285 285
286static ieee80211_txrx_result 286static ieee80211_tx_result
287ieee80211_tx_h_sequence(struct ieee80211_txrx_data *tx) 287ieee80211_tx_h_sequence(struct ieee80211_txrx_data *tx)
288{ 288{
289 struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)tx->skb->data; 289 struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)tx->skb->data;
@@ -291,7 +291,7 @@ ieee80211_tx_h_sequence(struct ieee80211_txrx_data *tx)
291 if (ieee80211_get_hdrlen(le16_to_cpu(hdr->frame_control)) >= 24) 291 if (ieee80211_get_hdrlen(le16_to_cpu(hdr->frame_control)) >= 24)
292 ieee80211_include_sequence(tx->sdata, hdr); 292 ieee80211_include_sequence(tx->sdata, hdr);
293 293
294 return TXRX_CONTINUE; 294 return TX_CONTINUE;
295} 295}
296 296
297/* This function is called whenever the AP is about to exceed the maximum limit 297/* This function is called whenever the AP is about to exceed the maximum limit
@@ -341,7 +341,7 @@ static void purge_old_ps_buffers(struct ieee80211_local *local)
341 wiphy_name(local->hw.wiphy), purged); 341 wiphy_name(local->hw.wiphy), purged);
342} 342}
343 343
344static ieee80211_txrx_result 344static ieee80211_tx_result
345ieee80211_tx_h_multicast_ps_buf(struct ieee80211_txrx_data *tx) 345ieee80211_tx_h_multicast_ps_buf(struct ieee80211_txrx_data *tx)
346{ 346{
347 /* 347 /*
@@ -354,11 +354,11 @@ ieee80211_tx_h_multicast_ps_buf(struct ieee80211_txrx_data *tx)
354 354
355 /* not AP/IBSS or ordered frame */ 355 /* not AP/IBSS or ordered frame */
356 if (!tx->sdata->bss || (tx->fc & IEEE80211_FCTL_ORDER)) 356 if (!tx->sdata->bss || (tx->fc & IEEE80211_FCTL_ORDER))
357 return TXRX_CONTINUE; 357 return TX_CONTINUE;
358 358
359 /* no stations in PS mode */ 359 /* no stations in PS mode */
360 if (!atomic_read(&tx->sdata->bss->num_sta_ps)) 360 if (!atomic_read(&tx->sdata->bss->num_sta_ps))
361 return TXRX_CONTINUE; 361 return TX_CONTINUE;
362 362
363 /* buffered in mac80211 */ 363 /* buffered in mac80211 */
364 if (tx->local->hw.flags & IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING) { 364 if (tx->local->hw.flags & IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING) {
@@ -375,16 +375,16 @@ ieee80211_tx_h_multicast_ps_buf(struct ieee80211_txrx_data *tx)
375 } else 375 } else
376 tx->local->total_ps_buffered++; 376 tx->local->total_ps_buffered++;
377 skb_queue_tail(&tx->sdata->bss->ps_bc_buf, tx->skb); 377 skb_queue_tail(&tx->sdata->bss->ps_bc_buf, tx->skb);
378 return TXRX_QUEUED; 378 return TX_QUEUED;
379 } 379 }
380 380
381 /* buffered in hardware */ 381 /* buffered in hardware */
382 tx->u.tx.control->flags |= IEEE80211_TXCTL_SEND_AFTER_DTIM; 382 tx->u.tx.control->flags |= IEEE80211_TXCTL_SEND_AFTER_DTIM;
383 383
384 return TXRX_CONTINUE; 384 return TX_CONTINUE;
385} 385}
386 386
387static ieee80211_txrx_result 387static ieee80211_tx_result
388ieee80211_tx_h_unicast_ps_buf(struct ieee80211_txrx_data *tx) 388ieee80211_tx_h_unicast_ps_buf(struct ieee80211_txrx_data *tx)
389{ 389{
390 struct sta_info *sta = tx->sta; 390 struct sta_info *sta = tx->sta;
@@ -393,7 +393,7 @@ ieee80211_tx_h_unicast_ps_buf(struct ieee80211_txrx_data *tx)
393 if (unlikely(!sta || 393 if (unlikely(!sta ||
394 ((tx->fc & IEEE80211_FCTL_FTYPE) == IEEE80211_FTYPE_MGMT && 394 ((tx->fc & IEEE80211_FCTL_FTYPE) == IEEE80211_FTYPE_MGMT &&
395 (tx->fc & IEEE80211_FCTL_STYPE) == IEEE80211_STYPE_PROBE_RESP))) 395 (tx->fc & IEEE80211_FCTL_STYPE) == IEEE80211_STYPE_PROBE_RESP)))
396 return TXRX_CONTINUE; 396 return TX_CONTINUE;
397 397
398 if (unlikely((sta->flags & WLAN_STA_PS) && !sta->pspoll)) { 398 if (unlikely((sta->flags & WLAN_STA_PS) && !sta->pspoll)) {
399 struct ieee80211_tx_packet_data *pkt_data; 399 struct ieee80211_tx_packet_data *pkt_data;
@@ -427,7 +427,7 @@ ieee80211_tx_h_unicast_ps_buf(struct ieee80211_txrx_data *tx)
427 pkt_data = (struct ieee80211_tx_packet_data *)tx->skb->cb; 427 pkt_data = (struct ieee80211_tx_packet_data *)tx->skb->cb;
428 pkt_data->jiffies = jiffies; 428 pkt_data->jiffies = jiffies;
429 skb_queue_tail(&sta->ps_tx_buf, tx->skb); 429 skb_queue_tail(&sta->ps_tx_buf, tx->skb);
430 return TXRX_QUEUED; 430 return TX_QUEUED;
431 } 431 }
432#ifdef CONFIG_MAC80211_VERBOSE_PS_DEBUG 432#ifdef CONFIG_MAC80211_VERBOSE_PS_DEBUG
433 else if (unlikely(sta->flags & WLAN_STA_PS)) { 433 else if (unlikely(sta->flags & WLAN_STA_PS)) {
@@ -438,14 +438,14 @@ ieee80211_tx_h_unicast_ps_buf(struct ieee80211_txrx_data *tx)
438#endif /* CONFIG_MAC80211_VERBOSE_PS_DEBUG */ 438#endif /* CONFIG_MAC80211_VERBOSE_PS_DEBUG */
439 sta->pspoll = 0; 439 sta->pspoll = 0;
440 440
441 return TXRX_CONTINUE; 441 return TX_CONTINUE;
442} 442}
443 443
444static ieee80211_txrx_result 444static ieee80211_tx_result
445ieee80211_tx_h_ps_buf(struct ieee80211_txrx_data *tx) 445ieee80211_tx_h_ps_buf(struct ieee80211_txrx_data *tx)
446{ 446{
447 if (unlikely(tx->flags & IEEE80211_TXRXD_TXPS_BUFFERED)) 447 if (unlikely(tx->flags & IEEE80211_TXRXD_TXPS_BUFFERED))
448 return TXRX_CONTINUE; 448 return TX_CONTINUE;
449 449
450 if (tx->flags & IEEE80211_TXRXD_TXUNICAST) 450 if (tx->flags & IEEE80211_TXRXD_TXUNICAST)
451 return ieee80211_tx_h_unicast_ps_buf(tx); 451 return ieee80211_tx_h_unicast_ps_buf(tx);
@@ -453,7 +453,7 @@ ieee80211_tx_h_ps_buf(struct ieee80211_txrx_data *tx)
453 return ieee80211_tx_h_multicast_ps_buf(tx); 453 return ieee80211_tx_h_multicast_ps_buf(tx);
454} 454}
455 455
456static ieee80211_txrx_result 456static ieee80211_tx_result
457ieee80211_tx_h_select_key(struct ieee80211_txrx_data *tx) 457ieee80211_tx_h_select_key(struct ieee80211_txrx_data *tx)
458{ 458{
459 struct ieee80211_key *key; 459 struct ieee80211_key *key;
@@ -469,7 +469,7 @@ ieee80211_tx_h_select_key(struct ieee80211_txrx_data *tx)
469 !(tx->u.tx.control->flags & IEEE80211_TXCTL_EAPOL_FRAME) && 469 !(tx->u.tx.control->flags & IEEE80211_TXCTL_EAPOL_FRAME) &&
470 !(tx->flags & IEEE80211_TXRXD_TX_INJECTED)) { 470 !(tx->flags & IEEE80211_TXRXD_TX_INJECTED)) {
471 I802_DEBUG_INC(tx->local->tx_handlers_drop_unencrypted); 471 I802_DEBUG_INC(tx->local->tx_handlers_drop_unencrypted);
472 return TXRX_DROP; 472 return TX_DROP;
473 } else 473 } else
474 tx->key = NULL; 474 tx->key = NULL;
475 475
@@ -498,10 +498,10 @@ ieee80211_tx_h_select_key(struct ieee80211_txrx_data *tx)
498 if (!tx->key || !(tx->key->flags & KEY_FLAG_UPLOADED_TO_HARDWARE)) 498 if (!tx->key || !(tx->key->flags & KEY_FLAG_UPLOADED_TO_HARDWARE))
499 tx->u.tx.control->flags |= IEEE80211_TXCTL_DO_NOT_ENCRYPT; 499 tx->u.tx.control->flags |= IEEE80211_TXCTL_DO_NOT_ENCRYPT;
500 500
501 return TXRX_CONTINUE; 501 return TX_CONTINUE;
502} 502}
503 503
504static ieee80211_txrx_result 504static ieee80211_tx_result
505ieee80211_tx_h_fragment(struct ieee80211_txrx_data *tx) 505ieee80211_tx_h_fragment(struct ieee80211_txrx_data *tx)
506{ 506{
507 struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) tx->skb->data; 507 struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) tx->skb->data;
@@ -513,7 +513,7 @@ ieee80211_tx_h_fragment(struct ieee80211_txrx_data *tx)
513 int frag_threshold = tx->local->fragmentation_threshold; 513 int frag_threshold = tx->local->fragmentation_threshold;
514 514
515 if (!(tx->flags & IEEE80211_TXRXD_FRAGMENTED)) 515 if (!(tx->flags & IEEE80211_TXRXD_FRAGMENTED))
516 return TXRX_CONTINUE; 516 return TX_CONTINUE;
517 517
518 first = tx->skb; 518 first = tx->skb;
519 519
@@ -567,7 +567,7 @@ ieee80211_tx_h_fragment(struct ieee80211_txrx_data *tx)
567 tx->u.tx.num_extra_frag = num_fragm - 1; 567 tx->u.tx.num_extra_frag = num_fragm - 1;
568 tx->u.tx.extra_frag = frags; 568 tx->u.tx.extra_frag = frags;
569 569
570 return TXRX_CONTINUE; 570 return TX_CONTINUE;
571 571
572 fail: 572 fail:
573 printk(KERN_DEBUG "%s: failed to fragment frame\n", tx->dev->name); 573 printk(KERN_DEBUG "%s: failed to fragment frame\n", tx->dev->name);
@@ -578,14 +578,14 @@ ieee80211_tx_h_fragment(struct ieee80211_txrx_data *tx)
578 kfree(frags); 578 kfree(frags);
579 } 579 }
580 I802_DEBUG_INC(tx->local->tx_handlers_drop_fragment); 580 I802_DEBUG_INC(tx->local->tx_handlers_drop_fragment);
581 return TXRX_DROP; 581 return TX_DROP;
582} 582}
583 583
584static ieee80211_txrx_result 584static ieee80211_tx_result
585ieee80211_tx_h_encrypt(struct ieee80211_txrx_data *tx) 585ieee80211_tx_h_encrypt(struct ieee80211_txrx_data *tx)
586{ 586{
587 if (!tx->key) 587 if (!tx->key)
588 return TXRX_CONTINUE; 588 return TX_CONTINUE;
589 589
590 switch (tx->key->conf.alg) { 590 switch (tx->key->conf.alg) {
591 case ALG_WEP: 591 case ALG_WEP:
@@ -598,10 +598,10 @@ ieee80211_tx_h_encrypt(struct ieee80211_txrx_data *tx)
598 598
599 /* not reached */ 599 /* not reached */
600 WARN_ON(1); 600 WARN_ON(1);
601 return TXRX_DROP; 601 return TX_DROP;
602} 602}
603 603
604static ieee80211_txrx_result 604static ieee80211_tx_result
605ieee80211_tx_h_rate_ctrl(struct ieee80211_txrx_data *tx) 605ieee80211_tx_h_rate_ctrl(struct ieee80211_txrx_data *tx)
606{ 606{
607 struct rate_selection rsel; 607 struct rate_selection rsel;
@@ -622,7 +622,7 @@ ieee80211_tx_h_rate_ctrl(struct ieee80211_txrx_data *tx)
622 tx->u.tx.control->alt_retry_rate = NULL; 622 tx->u.tx.control->alt_retry_rate = NULL;
623 623
624 if (!tx->u.tx.rate) 624 if (!tx->u.tx.rate)
625 return TXRX_DROP; 625 return TX_DROP;
626 } else 626 } else
627 tx->u.tx.control->alt_retry_rate = NULL; 627 tx->u.tx.control->alt_retry_rate = NULL;
628 628
@@ -642,10 +642,10 @@ ieee80211_tx_h_rate_ctrl(struct ieee80211_txrx_data *tx)
642 } 642 }
643 tx->u.tx.control->tx_rate = tx->u.tx.rate; 643 tx->u.tx.control->tx_rate = tx->u.tx.rate;
644 644
645 return TXRX_CONTINUE; 645 return TX_CONTINUE;
646} 646}
647 647
648static ieee80211_txrx_result 648static ieee80211_tx_result
649ieee80211_tx_h_misc(struct ieee80211_txrx_data *tx) 649ieee80211_tx_h_misc(struct ieee80211_txrx_data *tx)
650{ 650{
651 struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) tx->skb->data; 651 struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) tx->skb->data;
@@ -754,10 +754,10 @@ ieee80211_tx_h_misc(struct ieee80211_txrx_data *tx)
754 } 754 }
755 } 755 }
756 756
757 return TXRX_CONTINUE; 757 return TX_CONTINUE;
758} 758}
759 759
760static ieee80211_txrx_result 760static ieee80211_tx_result
761ieee80211_tx_h_load_stats(struct ieee80211_txrx_data *tx) 761ieee80211_tx_h_load_stats(struct ieee80211_txrx_data *tx)
762{ 762{
763 struct ieee80211_local *local = tx->local; 763 struct ieee80211_local *local = tx->local;
@@ -810,7 +810,7 @@ ieee80211_tx_h_load_stats(struct ieee80211_txrx_data *tx)
810 tx->sta->channel_use_raw += load; 810 tx->sta->channel_use_raw += load;
811 tx->sdata->channel_use_raw += load; 811 tx->sdata->channel_use_raw += load;
812 812
813 return TXRX_CONTINUE; 813 return TX_CONTINUE;
814} 814}
815 815
816/* TODO: implement register/unregister functions for adding TX/RX handlers 816/* TODO: implement register/unregister functions for adding TX/RX handlers
@@ -837,7 +837,7 @@ ieee80211_tx_handler ieee80211_tx_handlers[] =
837 * deal with packet injection down monitor interface 837 * deal with packet injection down monitor interface
838 * with Radiotap Header -- only called for monitor mode interface 838 * with Radiotap Header -- only called for monitor mode interface
839 */ 839 */
840static ieee80211_txrx_result 840static ieee80211_tx_result
841__ieee80211_parse_tx_radiotap(struct ieee80211_txrx_data *tx, 841__ieee80211_parse_tx_radiotap(struct ieee80211_txrx_data *tx,
842 struct sk_buff *skb) 842 struct sk_buff *skb)
843{ 843{
@@ -926,7 +926,7 @@ __ieee80211_parse_tx_radiotap(struct ieee80211_txrx_data *tx,
926 * on transmission 926 * on transmission
927 */ 927 */
928 if (skb->len < (iterator.max_length + FCS_LEN)) 928 if (skb->len < (iterator.max_length + FCS_LEN))
929 return TXRX_DROP; 929 return TX_DROP;
930 930
931 skb_trim(skb, skb->len - FCS_LEN); 931 skb_trim(skb, skb->len - FCS_LEN);
932 } 932 }
@@ -949,7 +949,7 @@ __ieee80211_parse_tx_radiotap(struct ieee80211_txrx_data *tx,
949 } 949 }
950 950
951 if (ret != -ENOENT) /* ie, if we didn't simply run out of fields */ 951 if (ret != -ENOENT) /* ie, if we didn't simply run out of fields */
952 return TXRX_DROP; 952 return TX_DROP;
953 953
954 /* 954 /*
955 * remove the radiotap header 955 * remove the radiotap header
@@ -958,13 +958,13 @@ __ieee80211_parse_tx_radiotap(struct ieee80211_txrx_data *tx,
958 */ 958 */
959 skb_pull(skb, iterator.max_length); 959 skb_pull(skb, iterator.max_length);
960 960
961 return TXRX_CONTINUE; 961 return TX_CONTINUE;
962} 962}
963 963
964/* 964/*
965 * initialises @tx 965 * initialises @tx
966 */ 966 */
967static ieee80211_txrx_result 967static ieee80211_tx_result
968__ieee80211_tx_prepare(struct ieee80211_txrx_data *tx, 968__ieee80211_tx_prepare(struct ieee80211_txrx_data *tx,
969 struct sk_buff *skb, 969 struct sk_buff *skb,
970 struct net_device *dev, 970 struct net_device *dev,
@@ -991,8 +991,8 @@ __ieee80211_tx_prepare(struct ieee80211_txrx_data *tx,
991 /* process and remove the injection radiotap header */ 991 /* process and remove the injection radiotap header */
992 sdata = IEEE80211_DEV_TO_SUB_IF(dev); 992 sdata = IEEE80211_DEV_TO_SUB_IF(dev);
993 if (unlikely(sdata->vif.type == IEEE80211_IF_TYPE_MNTR)) { 993 if (unlikely(sdata->vif.type == IEEE80211_IF_TYPE_MNTR)) {
994 if (__ieee80211_parse_tx_radiotap(tx, skb) == TXRX_DROP) 994 if (__ieee80211_parse_tx_radiotap(tx, skb) == TX_DROP)
995 return TXRX_DROP; 995 return TX_DROP;
996 996
997 /* 997 /*
998 * __ieee80211_parse_tx_radiotap has now removed 998 * __ieee80211_parse_tx_radiotap has now removed
@@ -1037,7 +1037,7 @@ __ieee80211_tx_prepare(struct ieee80211_txrx_data *tx,
1037 } 1037 }
1038 control->flags |= IEEE80211_TXCTL_FIRST_FRAGMENT; 1038 control->flags |= IEEE80211_TXCTL_FIRST_FRAGMENT;
1039 1039
1040 return TXRX_CONTINUE; 1040 return TX_CONTINUE;
1041} 1041}
1042 1042
1043/* 1043/*
@@ -1131,7 +1131,7 @@ static int ieee80211_tx(struct net_device *dev, struct sk_buff *skb,
1131 struct sta_info *sta; 1131 struct sta_info *sta;
1132 ieee80211_tx_handler *handler; 1132 ieee80211_tx_handler *handler;
1133 struct ieee80211_txrx_data tx; 1133 struct ieee80211_txrx_data tx;
1134 ieee80211_txrx_result res = TXRX_DROP, res_prepare; 1134 ieee80211_tx_result res = TX_DROP, res_prepare;
1135 int ret, i; 1135 int ret, i;
1136 1136
1137 WARN_ON(__ieee80211_queue_pending(local, control->queue)); 1137 WARN_ON(__ieee80211_queue_pending(local, control->queue));
@@ -1144,7 +1144,7 @@ static int ieee80211_tx(struct net_device *dev, struct sk_buff *skb,
1144 /* initialises tx */ 1144 /* initialises tx */
1145 res_prepare = __ieee80211_tx_prepare(&tx, skb, dev, control); 1145 res_prepare = __ieee80211_tx_prepare(&tx, skb, dev, control);
1146 1146
1147 if (res_prepare == TXRX_DROP) { 1147 if (res_prepare == TX_DROP) {
1148 dev_kfree_skb(skb); 1148 dev_kfree_skb(skb);
1149 return 0; 1149 return 0;
1150 } 1150 }
@@ -1161,7 +1161,7 @@ static int ieee80211_tx(struct net_device *dev, struct sk_buff *skb,
1161 for (handler = local->tx_handlers; *handler != NULL; 1161 for (handler = local->tx_handlers; *handler != NULL;
1162 handler++) { 1162 handler++) {
1163 res = (*handler)(&tx); 1163 res = (*handler)(&tx);
1164 if (res != TXRX_CONTINUE) 1164 if (res != TX_CONTINUE)
1165 break; 1165 break;
1166 } 1166 }
1167 1167
@@ -1170,12 +1170,12 @@ static int ieee80211_tx(struct net_device *dev, struct sk_buff *skb,
1170 if (sta) 1170 if (sta)
1171 sta_info_put(sta); 1171 sta_info_put(sta);
1172 1172
1173 if (unlikely(res == TXRX_DROP)) { 1173 if (unlikely(res == TX_DROP)) {
1174 I802_DEBUG_INC(local->tx_handlers_drop); 1174 I802_DEBUG_INC(local->tx_handlers_drop);
1175 goto drop; 1175 goto drop;
1176 } 1176 }
1177 1177
1178 if (unlikely(res == TXRX_QUEUED)) { 1178 if (unlikely(res == TX_QUEUED)) {
1179 I802_DEBUG_INC(local->tx_handlers_queued); 1179 I802_DEBUG_INC(local->tx_handlers_queued);
1180 rcu_read_unlock(); 1180 rcu_read_unlock();
1181 return 0; 1181 return 0;
@@ -1864,7 +1864,7 @@ ieee80211_get_buffered_bc(struct ieee80211_hw *hw,
1864 struct sta_info *sta; 1864 struct sta_info *sta;
1865 ieee80211_tx_handler *handler; 1865 ieee80211_tx_handler *handler;
1866 struct ieee80211_txrx_data tx; 1866 struct ieee80211_txrx_data tx;
1867 ieee80211_txrx_result res = TXRX_DROP; 1867 ieee80211_tx_result res = TX_DROP;
1868 struct net_device *bdev; 1868 struct net_device *bdev;
1869 struct ieee80211_sub_if_data *sdata; 1869 struct ieee80211_sub_if_data *sdata;
1870 struct ieee80211_if_ap *bss = NULL; 1870 struct ieee80211_if_ap *bss = NULL;
@@ -1916,16 +1916,16 @@ ieee80211_get_buffered_bc(struct ieee80211_hw *hw,
1916 1916
1917 for (handler = local->tx_handlers; *handler != NULL; handler++) { 1917 for (handler = local->tx_handlers; *handler != NULL; handler++) {
1918 res = (*handler)(&tx); 1918 res = (*handler)(&tx);
1919 if (res == TXRX_DROP || res == TXRX_QUEUED) 1919 if (res == TX_DROP || res == TX_QUEUED)
1920 break; 1920 break;
1921 } 1921 }
1922 skb = tx.skb; /* handlers are allowed to change skb */ 1922 skb = tx.skb; /* handlers are allowed to change skb */
1923 1923
1924 if (res == TXRX_DROP) { 1924 if (res == TX_DROP) {
1925 I802_DEBUG_INC(local->tx_handlers_drop); 1925 I802_DEBUG_INC(local->tx_handlers_drop);
1926 dev_kfree_skb(skb); 1926 dev_kfree_skb(skb);
1927 skb = NULL; 1927 skb = NULL;
1928 } else if (res == TXRX_QUEUED) { 1928 } else if (res == TX_QUEUED) {
1929 I802_DEBUG_INC(local->tx_handlers_queued); 1929 I802_DEBUG_INC(local->tx_handlers_queued);
1930 skb = NULL; 1930 skb = NULL;
1931 } 1931 }
diff --git a/net/mac80211/wep.c b/net/mac80211/wep.c
index a0cff72a580b..8b0015302645 100644
--- a/net/mac80211/wep.c
+++ b/net/mac80211/wep.c
@@ -305,13 +305,13 @@ u8 * ieee80211_wep_is_weak_iv(struct sk_buff *skb, struct ieee80211_key *key)
305 return NULL; 305 return NULL;
306} 306}
307 307
308ieee80211_txrx_result 308ieee80211_rx_result
309ieee80211_crypto_wep_decrypt(struct ieee80211_txrx_data *rx) 309ieee80211_crypto_wep_decrypt(struct ieee80211_txrx_data *rx)
310{ 310{
311 if ((rx->fc & IEEE80211_FCTL_FTYPE) != IEEE80211_FTYPE_DATA && 311 if ((rx->fc & IEEE80211_FCTL_FTYPE) != IEEE80211_FTYPE_DATA &&
312 ((rx->fc & IEEE80211_FCTL_FTYPE) != IEEE80211_FTYPE_MGMT || 312 ((rx->fc & IEEE80211_FCTL_FTYPE) != IEEE80211_FTYPE_MGMT ||
313 (rx->fc & IEEE80211_FCTL_STYPE) != IEEE80211_STYPE_AUTH)) 313 (rx->fc & IEEE80211_FCTL_STYPE) != IEEE80211_STYPE_AUTH))
314 return TXRX_CONTINUE; 314 return RX_CONTINUE;
315 315
316 if (!(rx->u.rx.status->flag & RX_FLAG_DECRYPTED)) { 316 if (!(rx->u.rx.status->flag & RX_FLAG_DECRYPTED)) {
317 if (ieee80211_wep_decrypt(rx->local, rx->skb, rx->key)) { 317 if (ieee80211_wep_decrypt(rx->local, rx->skb, rx->key)) {
@@ -320,7 +320,7 @@ ieee80211_crypto_wep_decrypt(struct ieee80211_txrx_data *rx)
320 printk(KERN_DEBUG "%s: RX WEP frame, decrypt " 320 printk(KERN_DEBUG "%s: RX WEP frame, decrypt "
321 "failed\n", rx->dev->name); 321 "failed\n", rx->dev->name);
322#endif /* CONFIG_MAC80211_DEBUG */ 322#endif /* CONFIG_MAC80211_DEBUG */
323 return TXRX_DROP; 323 return RX_DROP;
324 } 324 }
325 } else if (!(rx->u.rx.status->flag & RX_FLAG_IV_STRIPPED)) { 325 } else if (!(rx->u.rx.status->flag & RX_FLAG_IV_STRIPPED)) {
326 ieee80211_wep_remove_iv(rx->local, rx->skb, rx->key); 326 ieee80211_wep_remove_iv(rx->local, rx->skb, rx->key);
@@ -328,7 +328,7 @@ ieee80211_crypto_wep_decrypt(struct ieee80211_txrx_data *rx)
328 skb_trim(rx->skb, rx->skb->len - 4); 328 skb_trim(rx->skb, rx->skb->len - 4);
329 } 329 }
330 330
331 return TXRX_CONTINUE; 331 return RX_CONTINUE;
332} 332}
333 333
334static int wep_encrypt_skb(struct ieee80211_txrx_data *tx, struct sk_buff *skb) 334static int wep_encrypt_skb(struct ieee80211_txrx_data *tx, struct sk_buff *skb)
@@ -346,7 +346,7 @@ static int wep_encrypt_skb(struct ieee80211_txrx_data *tx, struct sk_buff *skb)
346 return 0; 346 return 0;
347} 347}
348 348
349ieee80211_txrx_result 349ieee80211_tx_result
350ieee80211_crypto_wep_encrypt(struct ieee80211_txrx_data *tx) 350ieee80211_crypto_wep_encrypt(struct ieee80211_txrx_data *tx)
351{ 351{
352 tx->u.tx.control->iv_len = WEP_IV_LEN; 352 tx->u.tx.control->iv_len = WEP_IV_LEN;
@@ -355,7 +355,7 @@ ieee80211_crypto_wep_encrypt(struct ieee80211_txrx_data *tx)
355 355
356 if (wep_encrypt_skb(tx, tx->skb) < 0) { 356 if (wep_encrypt_skb(tx, tx->skb) < 0) {
357 I802_DEBUG_INC(tx->local->tx_handlers_drop_wep); 357 I802_DEBUG_INC(tx->local->tx_handlers_drop_wep);
358 return TXRX_DROP; 358 return TX_DROP;
359 } 359 }
360 360
361 if (tx->u.tx.extra_frag) { 361 if (tx->u.tx.extra_frag) {
@@ -364,10 +364,10 @@ ieee80211_crypto_wep_encrypt(struct ieee80211_txrx_data *tx)
364 if (wep_encrypt_skb(tx, tx->u.tx.extra_frag[i]) < 0) { 364 if (wep_encrypt_skb(tx, tx->u.tx.extra_frag[i]) < 0) {
365 I802_DEBUG_INC(tx->local-> 365 I802_DEBUG_INC(tx->local->
366 tx_handlers_drop_wep); 366 tx_handlers_drop_wep);
367 return TXRX_DROP; 367 return TX_DROP;
368 } 368 }
369 } 369 }
370 } 370 }
371 371
372 return TXRX_CONTINUE; 372 return TX_CONTINUE;
373} 373}
diff --git a/net/mac80211/wep.h b/net/mac80211/wep.h
index 785fbb4e0dd7..43aef50cd0d6 100644
--- a/net/mac80211/wep.h
+++ b/net/mac80211/wep.h
@@ -28,9 +28,9 @@ int ieee80211_wep_decrypt(struct ieee80211_local *local, struct sk_buff *skb,
28 struct ieee80211_key *key); 28 struct ieee80211_key *key);
29u8 * ieee80211_wep_is_weak_iv(struct sk_buff *skb, struct ieee80211_key *key); 29u8 * ieee80211_wep_is_weak_iv(struct sk_buff *skb, struct ieee80211_key *key);
30 30
31ieee80211_txrx_result 31ieee80211_rx_result
32ieee80211_crypto_wep_decrypt(struct ieee80211_txrx_data *rx); 32ieee80211_crypto_wep_decrypt(struct ieee80211_txrx_data *rx);
33ieee80211_txrx_result 33ieee80211_tx_result
34ieee80211_crypto_wep_encrypt(struct ieee80211_txrx_data *tx); 34ieee80211_crypto_wep_encrypt(struct ieee80211_txrx_data *tx);
35 35
36#endif /* WEP_H */ 36#endif /* WEP_H */
diff --git a/net/mac80211/wpa.c b/net/mac80211/wpa.c
index 6f04311cf0a0..c628fa93f574 100644
--- a/net/mac80211/wpa.c
+++ b/net/mac80211/wpa.c
@@ -70,7 +70,7 @@ static int ieee80211_get_hdr_info(const struct sk_buff *skb, u8 **sa, u8 **da,
70} 70}
71 71
72 72
73ieee80211_txrx_result 73ieee80211_tx_result
74ieee80211_tx_h_michael_mic_add(struct ieee80211_txrx_data *tx) 74ieee80211_tx_h_michael_mic_add(struct ieee80211_txrx_data *tx)
75{ 75{
76 u8 *data, *sa, *da, *key, *mic, qos_tid; 76 u8 *data, *sa, *da, *key, *mic, qos_tid;
@@ -84,10 +84,10 @@ ieee80211_tx_h_michael_mic_add(struct ieee80211_txrx_data *tx)
84 84
85 if (!tx->key || tx->key->conf.alg != ALG_TKIP || skb->len < 24 || 85 if (!tx->key || tx->key->conf.alg != ALG_TKIP || skb->len < 24 ||
86 !WLAN_FC_DATA_PRESENT(fc)) 86 !WLAN_FC_DATA_PRESENT(fc))
87 return TXRX_CONTINUE; 87 return TX_CONTINUE;
88 88
89 if (ieee80211_get_hdr_info(skb, &sa, &da, &qos_tid, &data, &data_len)) 89 if (ieee80211_get_hdr_info(skb, &sa, &da, &qos_tid, &data, &data_len))
90 return TXRX_DROP; 90 return TX_DROP;
91 91
92 if ((tx->key->flags & KEY_FLAG_UPLOADED_TO_HARDWARE) && 92 if ((tx->key->flags & KEY_FLAG_UPLOADED_TO_HARDWARE) &&
93 !(tx->flags & IEEE80211_TXRXD_FRAGMENTED) && 93 !(tx->flags & IEEE80211_TXRXD_FRAGMENTED) &&
@@ -95,7 +95,7 @@ ieee80211_tx_h_michael_mic_add(struct ieee80211_txrx_data *tx)
95 !wpa_test) { 95 !wpa_test) {
96 /* hwaccel - with no need for preallocated room for Michael MIC 96 /* hwaccel - with no need for preallocated room for Michael MIC
97 */ 97 */
98 return TXRX_CONTINUE; 98 return TX_CONTINUE;
99 } 99 }
100 100
101 if (skb_tailroom(skb) < MICHAEL_MIC_LEN) { 101 if (skb_tailroom(skb) < MICHAEL_MIC_LEN) {
@@ -105,7 +105,7 @@ ieee80211_tx_h_michael_mic_add(struct ieee80211_txrx_data *tx)
105 GFP_ATOMIC))) { 105 GFP_ATOMIC))) {
106 printk(KERN_DEBUG "%s: failed to allocate more memory " 106 printk(KERN_DEBUG "%s: failed to allocate more memory "
107 "for Michael MIC\n", tx->dev->name); 107 "for Michael MIC\n", tx->dev->name);
108 return TXRX_DROP; 108 return TX_DROP;
109 } 109 }
110 } 110 }
111 111
@@ -119,11 +119,11 @@ ieee80211_tx_h_michael_mic_add(struct ieee80211_txrx_data *tx)
119 mic = skb_put(skb, MICHAEL_MIC_LEN); 119 mic = skb_put(skb, MICHAEL_MIC_LEN);
120 michael_mic(key, da, sa, qos_tid & 0x0f, data, data_len, mic); 120 michael_mic(key, da, sa, qos_tid & 0x0f, data, data_len, mic);
121 121
122 return TXRX_CONTINUE; 122 return TX_CONTINUE;
123} 123}
124 124
125 125
126ieee80211_txrx_result 126ieee80211_rx_result
127ieee80211_rx_h_michael_mic_verify(struct ieee80211_txrx_data *rx) 127ieee80211_rx_h_michael_mic_verify(struct ieee80211_txrx_data *rx)
128{ 128{
129 u8 *data, *sa, *da, *key = NULL, qos_tid; 129 u8 *data, *sa, *da, *key = NULL, qos_tid;
@@ -140,15 +140,15 @@ ieee80211_rx_h_michael_mic_verify(struct ieee80211_txrx_data *rx)
140 * No way to verify the MIC if the hardware stripped it 140 * No way to verify the MIC if the hardware stripped it
141 */ 141 */
142 if (rx->u.rx.status->flag & RX_FLAG_MMIC_STRIPPED) 142 if (rx->u.rx.status->flag & RX_FLAG_MMIC_STRIPPED)
143 return TXRX_CONTINUE; 143 return RX_CONTINUE;
144 144
145 if (!rx->key || rx->key->conf.alg != ALG_TKIP || 145 if (!rx->key || rx->key->conf.alg != ALG_TKIP ||
146 !(rx->fc & IEEE80211_FCTL_PROTECTED) || !WLAN_FC_DATA_PRESENT(fc)) 146 !(rx->fc & IEEE80211_FCTL_PROTECTED) || !WLAN_FC_DATA_PRESENT(fc))
147 return TXRX_CONTINUE; 147 return RX_CONTINUE;
148 148
149 if (ieee80211_get_hdr_info(skb, &sa, &da, &qos_tid, &data, &data_len) 149 if (ieee80211_get_hdr_info(skb, &sa, &da, &qos_tid, &data, &data_len)
150 || data_len < MICHAEL_MIC_LEN) 150 || data_len < MICHAEL_MIC_LEN)
151 return TXRX_DROP; 151 return RX_DROP;
152 152
153 data_len -= MICHAEL_MIC_LEN; 153 data_len -= MICHAEL_MIC_LEN;
154 154
@@ -162,14 +162,14 @@ ieee80211_rx_h_michael_mic_verify(struct ieee80211_txrx_data *rx)
162 michael_mic(key, da, sa, qos_tid & 0x0f, data, data_len, mic); 162 michael_mic(key, da, sa, qos_tid & 0x0f, data, data_len, mic);
163 if (memcmp(mic, data + data_len, MICHAEL_MIC_LEN) != 0 || wpa_test) { 163 if (memcmp(mic, data + data_len, MICHAEL_MIC_LEN) != 0 || wpa_test) {
164 if (!(rx->flags & IEEE80211_TXRXD_RXRA_MATCH)) 164 if (!(rx->flags & IEEE80211_TXRXD_RXRA_MATCH))
165 return TXRX_DROP; 165 return RX_DROP;
166 166
167 printk(KERN_DEBUG "%s: invalid Michael MIC in data frame from " 167 printk(KERN_DEBUG "%s: invalid Michael MIC in data frame from "
168 "%s\n", rx->dev->name, print_mac(mac, sa)); 168 "%s\n", rx->dev->name, print_mac(mac, sa));
169 169
170 mac80211_ev_michael_mic_failure(rx->dev, rx->key->conf.keyidx, 170 mac80211_ev_michael_mic_failure(rx->dev, rx->key->conf.keyidx,
171 (void *) skb->data); 171 (void *) skb->data);
172 return TXRX_DROP; 172 return RX_DROP;
173 } 173 }
174 174
175 /* remove Michael MIC from payload */ 175 /* remove Michael MIC from payload */
@@ -179,7 +179,7 @@ ieee80211_rx_h_michael_mic_verify(struct ieee80211_txrx_data *rx)
179 rx->key->u.tkip.iv32_rx[rx->u.rx.queue] = rx->u.rx.tkip_iv32; 179 rx->key->u.tkip.iv32_rx[rx->u.rx.queue] = rx->u.rx.tkip_iv32;
180 rx->key->u.tkip.iv16_rx[rx->u.rx.queue] = rx->u.rx.tkip_iv16; 180 rx->key->u.tkip.iv16_rx[rx->u.rx.queue] = rx->u.rx.tkip_iv16;
181 181
182 return TXRX_CONTINUE; 182 return RX_CONTINUE;
183} 183}
184 184
185 185
@@ -242,7 +242,7 @@ static int tkip_encrypt_skb(struct ieee80211_txrx_data *tx,
242} 242}
243 243
244 244
245ieee80211_txrx_result 245ieee80211_tx_result
246ieee80211_crypto_tkip_encrypt(struct ieee80211_txrx_data *tx) 246ieee80211_crypto_tkip_encrypt(struct ieee80211_txrx_data *tx)
247{ 247{
248 struct sk_buff *skb = tx->skb; 248 struct sk_buff *skb = tx->skb;
@@ -257,26 +257,26 @@ ieee80211_crypto_tkip_encrypt(struct ieee80211_txrx_data *tx)
257 !wpa_test) { 257 !wpa_test) {
258 /* hwaccel - with no need for preallocated room for IV/ICV */ 258 /* hwaccel - with no need for preallocated room for IV/ICV */
259 tx->u.tx.control->key_idx = tx->key->conf.hw_key_idx; 259 tx->u.tx.control->key_idx = tx->key->conf.hw_key_idx;
260 return TXRX_CONTINUE; 260 return TX_CONTINUE;
261 } 261 }
262 262
263 if (tkip_encrypt_skb(tx, skb, test) < 0) 263 if (tkip_encrypt_skb(tx, skb, test) < 0)
264 return TXRX_DROP; 264 return TX_DROP;
265 265
266 if (tx->u.tx.extra_frag) { 266 if (tx->u.tx.extra_frag) {
267 int i; 267 int i;
268 for (i = 0; i < tx->u.tx.num_extra_frag; i++) { 268 for (i = 0; i < tx->u.tx.num_extra_frag; i++) {
269 if (tkip_encrypt_skb(tx, tx->u.tx.extra_frag[i], test) 269 if (tkip_encrypt_skb(tx, tx->u.tx.extra_frag[i], test)
270 < 0) 270 < 0)
271 return TXRX_DROP; 271 return TX_DROP;
272 } 272 }
273 } 273 }
274 274
275 return TXRX_CONTINUE; 275 return TX_CONTINUE;
276} 276}
277 277
278 278
279ieee80211_txrx_result 279ieee80211_rx_result
280ieee80211_crypto_tkip_decrypt(struct ieee80211_txrx_data *rx) 280ieee80211_crypto_tkip_decrypt(struct ieee80211_txrx_data *rx)
281{ 281{
282 struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) rx->skb->data; 282 struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) rx->skb->data;
@@ -290,10 +290,10 @@ ieee80211_crypto_tkip_decrypt(struct ieee80211_txrx_data *rx)
290 hdrlen = ieee80211_get_hdrlen(fc); 290 hdrlen = ieee80211_get_hdrlen(fc);
291 291
292 if ((rx->fc & IEEE80211_FCTL_FTYPE) != IEEE80211_FTYPE_DATA) 292 if ((rx->fc & IEEE80211_FCTL_FTYPE) != IEEE80211_FTYPE_DATA)
293 return TXRX_CONTINUE; 293 return RX_CONTINUE;
294 294
295 if (!rx->sta || skb->len - hdrlen < 12) 295 if (!rx->sta || skb->len - hdrlen < 12)
296 return TXRX_DROP; 296 return RX_DROP;
297 297
298 if (rx->u.rx.status->flag & RX_FLAG_DECRYPTED) { 298 if (rx->u.rx.status->flag & RX_FLAG_DECRYPTED) {
299 if (rx->u.rx.status->flag & RX_FLAG_IV_STRIPPED) { 299 if (rx->u.rx.status->flag & RX_FLAG_IV_STRIPPED) {
@@ -302,7 +302,7 @@ ieee80211_crypto_tkip_decrypt(struct ieee80211_txrx_data *rx)
302 * replay protection, and stripped the ICV/IV so 302 * replay protection, and stripped the ICV/IV so
303 * we cannot do any checks here. 303 * we cannot do any checks here.
304 */ 304 */
305 return TXRX_CONTINUE; 305 return RX_CONTINUE;
306 } 306 }
307 307
308 /* let TKIP code verify IV, but skip decryption */ 308 /* let TKIP code verify IV, but skip decryption */
@@ -322,7 +322,7 @@ ieee80211_crypto_tkip_decrypt(struct ieee80211_txrx_data *rx)
322 "frame from %s (res=%d)\n", rx->dev->name, 322 "frame from %s (res=%d)\n", rx->dev->name,
323 print_mac(mac, rx->sta->addr), res); 323 print_mac(mac, rx->sta->addr), res);
324#endif /* CONFIG_MAC80211_DEBUG */ 324#endif /* CONFIG_MAC80211_DEBUG */
325 return TXRX_DROP; 325 return RX_DROP;
326 } 326 }
327 327
328 /* Trim ICV */ 328 /* Trim ICV */
@@ -332,7 +332,7 @@ ieee80211_crypto_tkip_decrypt(struct ieee80211_txrx_data *rx)
332 memmove(skb->data + TKIP_IV_LEN, skb->data, hdrlen); 332 memmove(skb->data + TKIP_IV_LEN, skb->data, hdrlen);
333 skb_pull(skb, TKIP_IV_LEN); 333 skb_pull(skb, TKIP_IV_LEN);
334 334
335 return TXRX_CONTINUE; 335 return RX_CONTINUE;
336} 336}
337 337
338 338
@@ -491,7 +491,7 @@ static int ccmp_encrypt_skb(struct ieee80211_txrx_data *tx,
491} 491}
492 492
493 493
494ieee80211_txrx_result 494ieee80211_tx_result
495ieee80211_crypto_ccmp_encrypt(struct ieee80211_txrx_data *tx) 495ieee80211_crypto_ccmp_encrypt(struct ieee80211_txrx_data *tx)
496{ 496{
497 struct sk_buff *skb = tx->skb; 497 struct sk_buff *skb = tx->skb;
@@ -506,26 +506,26 @@ ieee80211_crypto_ccmp_encrypt(struct ieee80211_txrx_data *tx)
506 /* hwaccel - with no need for preallocated room for CCMP " 506 /* hwaccel - with no need for preallocated room for CCMP "
507 * header or MIC fields */ 507 * header or MIC fields */
508 tx->u.tx.control->key_idx = tx->key->conf.hw_key_idx; 508 tx->u.tx.control->key_idx = tx->key->conf.hw_key_idx;
509 return TXRX_CONTINUE; 509 return TX_CONTINUE;
510 } 510 }
511 511
512 if (ccmp_encrypt_skb(tx, skb, test) < 0) 512 if (ccmp_encrypt_skb(tx, skb, test) < 0)
513 return TXRX_DROP; 513 return TX_DROP;
514 514
515 if (tx->u.tx.extra_frag) { 515 if (tx->u.tx.extra_frag) {
516 int i; 516 int i;
517 for (i = 0; i < tx->u.tx.num_extra_frag; i++) { 517 for (i = 0; i < tx->u.tx.num_extra_frag; i++) {
518 if (ccmp_encrypt_skb(tx, tx->u.tx.extra_frag[i], test) 518 if (ccmp_encrypt_skb(tx, tx->u.tx.extra_frag[i], test)
519 < 0) 519 < 0)
520 return TXRX_DROP; 520 return TX_DROP;
521 } 521 }
522 } 522 }
523 523
524 return TXRX_CONTINUE; 524 return TX_CONTINUE;
525} 525}
526 526
527 527
528ieee80211_txrx_result 528ieee80211_rx_result
529ieee80211_crypto_ccmp_decrypt(struct ieee80211_txrx_data *rx) 529ieee80211_crypto_ccmp_decrypt(struct ieee80211_txrx_data *rx)
530{ 530{
531 struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) rx->skb->data; 531 struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) rx->skb->data;
@@ -541,15 +541,15 @@ ieee80211_crypto_ccmp_decrypt(struct ieee80211_txrx_data *rx)
541 hdrlen = ieee80211_get_hdrlen(fc); 541 hdrlen = ieee80211_get_hdrlen(fc);
542 542
543 if ((rx->fc & IEEE80211_FCTL_FTYPE) != IEEE80211_FTYPE_DATA) 543 if ((rx->fc & IEEE80211_FCTL_FTYPE) != IEEE80211_FTYPE_DATA)
544 return TXRX_CONTINUE; 544 return RX_CONTINUE;
545 545
546 data_len = skb->len - hdrlen - CCMP_HDR_LEN - CCMP_MIC_LEN; 546 data_len = skb->len - hdrlen - CCMP_HDR_LEN - CCMP_MIC_LEN;
547 if (!rx->sta || data_len < 0) 547 if (!rx->sta || data_len < 0)
548 return TXRX_DROP; 548 return RX_DROP;
549 549
550 if ((rx->u.rx.status->flag & RX_FLAG_DECRYPTED) && 550 if ((rx->u.rx.status->flag & RX_FLAG_DECRYPTED) &&
551 (rx->u.rx.status->flag & RX_FLAG_IV_STRIPPED)) 551 (rx->u.rx.status->flag & RX_FLAG_IV_STRIPPED))
552 return TXRX_CONTINUE; 552 return RX_CONTINUE;
553 553
554 (void) ccmp_hdr2pn(pn, skb->data + hdrlen); 554 (void) ccmp_hdr2pn(pn, skb->data + hdrlen);
555 555
@@ -565,7 +565,7 @@ ieee80211_crypto_ccmp_decrypt(struct ieee80211_txrx_data *rx)
565 ppn[0], ppn[1], ppn[2], ppn[3], ppn[4], ppn[5]); 565 ppn[0], ppn[1], ppn[2], ppn[3], ppn[4], ppn[5]);
566#endif /* CONFIG_MAC80211_DEBUG */ 566#endif /* CONFIG_MAC80211_DEBUG */
567 key->u.ccmp.replays++; 567 key->u.ccmp.replays++;
568 return TXRX_DROP; 568 return RX_DROP;
569 } 569 }
570 570
571 if (!(rx->u.rx.status->flag & RX_FLAG_DECRYPTED)) { 571 if (!(rx->u.rx.status->flag & RX_FLAG_DECRYPTED)) {
@@ -589,7 +589,7 @@ ieee80211_crypto_ccmp_decrypt(struct ieee80211_txrx_data *rx)
589 "for RX frame from %s\n", rx->dev->name, 589 "for RX frame from %s\n", rx->dev->name,
590 print_mac(mac, rx->sta->addr)); 590 print_mac(mac, rx->sta->addr));
591#endif /* CONFIG_MAC80211_DEBUG */ 591#endif /* CONFIG_MAC80211_DEBUG */
592 return TXRX_DROP; 592 return RX_DROP;
593 } 593 }
594 } 594 }
595 595
@@ -600,5 +600,5 @@ ieee80211_crypto_ccmp_decrypt(struct ieee80211_txrx_data *rx)
600 memmove(skb->data + CCMP_HDR_LEN, skb->data, hdrlen); 600 memmove(skb->data + CCMP_HDR_LEN, skb->data, hdrlen);
601 skb_pull(skb, CCMP_HDR_LEN); 601 skb_pull(skb, CCMP_HDR_LEN);
602 602
603 return TXRX_CONTINUE; 603 return RX_CONTINUE;
604} 604}
diff --git a/net/mac80211/wpa.h b/net/mac80211/wpa.h
index 49d80cf0cd75..16e4dba4aa70 100644
--- a/net/mac80211/wpa.h
+++ b/net/mac80211/wpa.h
@@ -13,19 +13,19 @@
13#include <linux/types.h> 13#include <linux/types.h>
14#include "ieee80211_i.h" 14#include "ieee80211_i.h"
15 15
16ieee80211_txrx_result 16ieee80211_tx_result
17ieee80211_tx_h_michael_mic_add(struct ieee80211_txrx_data *tx); 17ieee80211_tx_h_michael_mic_add(struct ieee80211_txrx_data *tx);
18ieee80211_txrx_result 18ieee80211_rx_result
19ieee80211_rx_h_michael_mic_verify(struct ieee80211_txrx_data *rx); 19ieee80211_rx_h_michael_mic_verify(struct ieee80211_txrx_data *rx);
20 20
21ieee80211_txrx_result 21ieee80211_tx_result
22ieee80211_crypto_tkip_encrypt(struct ieee80211_txrx_data *tx); 22ieee80211_crypto_tkip_encrypt(struct ieee80211_txrx_data *tx);
23ieee80211_txrx_result 23ieee80211_rx_result
24ieee80211_crypto_tkip_decrypt(struct ieee80211_txrx_data *rx); 24ieee80211_crypto_tkip_decrypt(struct ieee80211_txrx_data *rx);
25 25
26ieee80211_txrx_result 26ieee80211_tx_result
27ieee80211_crypto_ccmp_encrypt(struct ieee80211_txrx_data *tx); 27ieee80211_crypto_ccmp_encrypt(struct ieee80211_txrx_data *tx);
28ieee80211_txrx_result 28ieee80211_rx_result
29ieee80211_crypto_ccmp_decrypt(struct ieee80211_txrx_data *rx); 29ieee80211_crypto_ccmp_decrypt(struct ieee80211_txrx_data *rx);
30 30
31#endif /* WPA_H */ 31#endif /* WPA_H */