]> err.no Git - linux-2.6/blobdiff - net/ieee80211/ieee80211_rx.c
[SK_BUFF]: Introduce skb_reset_mac_header(skb)
[linux-2.6] / net / ieee80211 / ieee80211_rx.c
index 4084909f6f924220becc534f557d5ab778ad6bb9..f39bf7c4101238aa141a93c6c4f3fe1b1916013d 100644 (file)
@@ -42,7 +42,7 @@ static void ieee80211_monitor_rx(struct ieee80211_device *ieee,
        u16 fc = le16_to_cpu(hdr->frame_ctl);
 
        skb->dev = ieee->dev;
-       skb->mac.raw = skb->data;
+       skb_reset_mac_header(skb);
        skb_pull(skb, ieee80211_get_hdrlen(fc));
        skb->pkt_type = PACKET_OTHERHOST;
        skb->protocol = __constant_htons(ETH_P_80211_RAW);
@@ -789,10 +789,11 @@ int ieee80211_rx(struct ieee80211_device *ieee, struct sk_buff *skb,
 
        if (skb2 != NULL) {
                /* send to wireless media */
+               skb2->dev = dev;
                skb2->protocol = __constant_htons(ETH_P_802_3);
-               skb2->mac.raw = skb2->nh.raw = skb2->data;
+               skb_reset_mac_header(skb2);
+               skb2->nh.raw = skb2->data;
                /* skb2->nh.raw = skb2->data + ETH_HLEN; */
-               skb2->dev = dev;
                dev_queue_xmit(skb2);
        }
 #endif
@@ -800,7 +801,6 @@ int ieee80211_rx(struct ieee80211_device *ieee, struct sk_buff *skb,
        if (skb) {
                skb->protocol = eth_type_trans(skb, dev);
                memset(skb->cb, 0, sizeof(skb->cb));
-               skb->dev = dev;
                skb->ip_summed = CHECKSUM_NONE; /* 802.11 crc not sufficient */
                if (netif_rx(skb) == NET_RX_DROP) {
                        /* netif_rx always succeeds, but it might drop