struct sk_buff **extra_frag;
        int num_extra_frag;
 
-       u16 fc, ethertype;
+       u16 ethertype;
        unsigned int flags;
 };
 
        struct ieee80211_rx_status *status;
        struct ieee80211_rate *rate;
 
-       u16 fc, ethertype;
+       u16 ethertype;
        unsigned int flags;
        int sent_ps_buffered;
        int queue;
 
                ieee80211_hdrlen(hdr->frame_control) - IEEE80211_QOS_CTL_LEN);
        hdr = (struct ieee80211_hdr *)skb_pull(rx->skb, IEEE80211_QOS_CTL_LEN);
        /* change frame type to non QOS */
-       rx->fc &= ~IEEE80211_STYPE_QOS_DATA;
        hdr->frame_control &= ~cpu_to_le16(IEEE80211_STYPE_QOS_DATA);
 
        return RX_CONTINUE;
 
        rx.status = status;
        rx.rate = rate;
-       rx.fc = le16_to_cpu(hdr->frame_control);
 
        if (ieee80211_is_data(hdr->frame_control) || ieee80211_is_mgmt(hdr->frame_control))
                local->dot11ReceivedFragmentCount++;
                                       prev->dev->name);
                        continue;
                }
-               rx.fc = le16_to_cpu(hdr->frame_control);
                ieee80211_invoke_rx_handlers(prev, &rx, skb_new);
                prev = sdata;
        }
-       if (prev) {
-               rx.fc = le16_to_cpu(hdr->frame_control);
+       if (prev)
                ieee80211_invoke_rx_handlers(prev, &rx, skb);
-       } else
+       else
                dev_kfree_skb(skb);
 }
 
 
        hdr = (struct ieee80211_hdr *) skb->data;
 
        tx->sta = sta_info_get(local, hdr->addr1);
-       tx->fc = le16_to_cpu(hdr->frame_control);
 
        if (is_multicast_ether_addr(hdr->addr1)) {
                tx->flags &= ~IEEE80211_TX_UNICAST;