diff -ru madwifi-hal-0.9.30.13-r2351-20070519/net80211/ieee80211_input.c madwifi-hal-0.9.30.13-r2351-20070519-for-kernel-2.6.22/net80211/ieee80211_input.c --- madwifi-hal-0.9.30.13-r2351-20070519/net80211/ieee80211_input.c 2007-05-18 13:19:16.000000000 +0200 +++ madwifi-hal-0.9.30.13-r2351-20070519-for-kernel-2.6.22/net80211/ieee80211_input.c 2007-07-13 09:00:23.000000000 +0200 @@ -1047,11 +1047,11 @@ * incoming fragments * XXX 4-address/QoS frames? */ - else if (skb->end - skb->head < ni->ni_vap->iv_dev->mtu + + else if (skb_end_pointer(skb) - skb->head < ni->ni_vap->iv_dev->mtu + hdrlen) { ni->ni_rxfrag = skb_copy_expand(skb, 0, (ni->ni_vap->iv_dev->mtu + hdrlen) - - (skb->end - skb->head), GFP_ATOMIC); + (skb_end_pointer(skb) - skb->head), GFP_ATOMIC); dev_kfree_skb(skb); } } @@ -1065,7 +1065,7 @@ * we've verified that before */ /* Copy current fragment at end of previous one */ - memcpy(ni->ni_rxfrag->tail, + memcpy(skb_tail_pointer(ni->ni_rxfrag), skb->data + hdrlen, skb->len - hdrlen); /* Update tail and length */ skb_put(ni->ni_rxfrag, skb->len - hdrlen); @@ -1136,9 +1136,9 @@ if (skb1 != NULL) { skb1->dev = dev; -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22) - skb1->mac_header = skb1->data; - skb1->network_header = skb1->data + sizeof(struct ether_header); +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21) + skb_reset_mac_header(skb1); + skb_set_network_header(skb1, sizeof(struct ether_header)); #else skb1->mac.raw = skb1->data; skb1->nh.raw = skb1->data + sizeof(struct ether_header); @@ -2270,8 +2270,8 @@ return; skb1->dev = dev; -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22) - skb1->mac_header = skb1->data; +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21) + skb_reset_mac_header(skb1); #else skb1->mac.raw = skb1->data; #endif @@ -2554,8 +2554,8 @@ skb->pkt_type = PACKET_BROADCAST; skb->protocol = htons(ETH_P_802_2); -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22) - skb->mac_header = skb->data; +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21) + skb_reset_mac_header(skb); #else skb->mac.raw = skb->data; #endif @@ -3742,8 +3742,8 @@ { struct ethhdr *eth; -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22) - skb->mac_header = skb->data; +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21) + skb_reset_mac_header(skb); #else skb->mac.raw = skb->data; #endif @@ -3755,8 +3755,8 @@ * no easy way to do this cleanly. */ -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22) - eth = (struct ethhdr *)skb->mac_header; +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21) + eth = (struct ethhdr *)skb_mac_header(skb); #else eth = (struct ethhdr *)skb->mac.raw; #endif diff -ru madwifi-hal-0.9.30.13-r2351-20070519/net80211/ieee80211_monitor.c madwifi-hal-0.9.30.13-r2351-20070519-for-kernel-2.6.22/net80211/ieee80211_monitor.c --- madwifi-hal-0.9.30.13-r2351-20070519/net80211/ieee80211_monitor.c 2007-05-18 13:19:16.000000000 +0200 +++ madwifi-hal-0.9.30.13-r2351-20070519-for-kernel-2.6.22/net80211/ieee80211_monitor.c 2007-07-13 09:02:17.000000000 +0200 @@ -381,7 +381,7 @@ skb_trim(skb1, vap->iv_monitor_txf_len); #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22) - skb1->network_header = skb1->data; + skb_reset_network_header(skb1); #else skb1->nh.raw = skb1->data; #endif @@ -571,7 +571,7 @@ skb1->dev = dev; /* NB: deliver to wlanX */ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22) - skb1->mac_header = skb1->data; + skb_reset_mac_header(skb1); #else skb1->mac.raw = skb1->data; #endif