When trying to build the usb module (have not tried others) the make fails with error: 'struct sk_buff' has no member named 'mac' Reproducible: Always Steps to Reproduce: 1. emerge linux-wlan-ng against gentoo-sources 2.6.22-rc5 Actual Results: set -e; for d in src doc man etc; do make -C $d ; done make[1]: Entering directory `/var/tmp/portage/net-wireless/linux-wlan-ng-modules-0.2.8/work/linux-wlan-ng-0.2.8/src' set -e; for d in mkmeta shared wlanctl nwepgen wlancfg p80211 prism2; do make WLAN_SRC=/var/tmp/portage/net-wireless/linux-wlan-ng-modules-0.2.8/work/linux-wlan-ng-0.2.8/src/ -C $d ; done make[2]: Entering directory `/var/tmp/portage/net-wireless/linux-wlan-ng-modules-0.2.8/work/linux-wlan-ng-0.2.8/src/mkmeta' mkdir -p obj make[2]: Leaving directory `/var/tmp/portage/net-wireless/linux-wlan-ng-modules-0.2.8/work/linux-wlan-ng-0.2.8/src/mkmeta' make[2]: Entering directory `/var/tmp/portage/net-wireless/linux-wlan-ng-modules-0.2.8/work/linux-wlan-ng-0.2.8/src/shared' Nothing to do... make[2]: Leaving directory `/var/tmp/portage/net-wireless/linux-wlan-ng-modules-0.2.8/work/linux-wlan-ng-0.2.8/src/shared' make[2]: Entering directory `/var/tmp/portage/net-wireless/linux-wlan-ng-modules-0.2.8/work/linux-wlan-ng-0.2.8/src/wlanctl' gcc -I../include -I/usr/src/linux/include -D__LINUX_WLAN__ -c -o wlanctl.o wlanctl.c gcc -I../include -I/usr/src/linux/include -D__LINUX_WLAN__ -c -o help.o help.c gcc -I../include -I/usr/src/linux/include -D__LINUX_WLAN__ -c -o ../shared/p80211types.o ../shared/p80211types.c gcc -I../include -I/usr/src/linux/include -D__LINUX_WLAN__ -c -o ../shared/p80211meta.o ../shared/p80211meta.c gcc -I../include -I/usr/src/linux/include -D__LINUX_WLAN__ -c -o ../shared/p80211metamsg.o ../shared/p80211metamsg.c gcc -I../include -I/usr/src/linux/include -D__LINUX_WLAN__ -c -o ../shared/p80211metamib.o ../shared/p80211metamib.c gcc -o wlanctl wlanctl.o help.o ../shared/p80211types.o ../shared/p80211meta.o ../shared/p80211metamsg.o ../shared/p80211metamib.o make[2]: Leaving directory `/var/tmp/portage/net-wireless/linux-wlan-ng-modules-0.2.8/work/linux-wlan-ng-0.2.8/src/wlanctl' make[2]: Entering directory `/var/tmp/portage/net-wireless/linux-wlan-ng-modules-0.2.8/work/linux-wlan-ng-0.2.8/src/nwepgen' gcc -I../include -I/usr/src/linux/include -D__LINUX_WLAN__ -c -o nwepgen.o nwepgen.c gcc -o nwepgen nwepgen.o make[2]: Leaving directory `/var/tmp/portage/net-wireless/linux-wlan-ng-modules-0.2.8/work/linux-wlan-ng-0.2.8/src/nwepgen' make[2]: Entering directory `/var/tmp/portage/net-wireless/linux-wlan-ng-modules-0.2.8/work/linux-wlan-ng-0.2.8/src/wlancfg' gcc -I../include -I/usr/src/linux/include -D__LINUX_WLAN__ -c -o wlancfg.o wlancfg.c gcc -o wlancfg wlancfg.o ../shared/p80211types.o ../shared/p80211meta.o ../shared/p80211metamsg.o ../shared/p80211metamib.o make[2]: Leaving directory `/var/tmp/portage/net-wireless/linux-wlan-ng-modules-0.2.8/work/linux-wlan-ng-0.2.8/src/wlancfg' make[2]: Entering directory `/var/tmp/portage/net-wireless/linux-wlan-ng-modules-0.2.8/work/linux-wlan-ng-0.2.8/src/p80211' make -C /usr/src/linux M='/var/tmp/portage/net-wireless/linux-wlan-ng-modules-0.2.8/work/linux-wlan-ng-0.2.8/src/p80211' WLAN_SRC=/var/tmp/portage/net-wireless/linux-wlan-ng-modules-0.2.8/work/linux-wlan-ng-0.2.8/src/ modules make[3]: Entering directory `/usr/src/linux-2.6.23-rc4-mm1' CC [M] /var/tmp/portage/net-wireless/linux-wlan-ng-modules-0.2.8/work/linux-wlan-ng-0.2.8/src/p80211/p80211mod.o CC [M] /var/tmp/portage/net-wireless/linux-wlan-ng-modules-0.2.8/work/linux-wlan-ng-0.2.8/src/p80211/p80211conv.o /var/tmp/portage/net-wireless/linux-wlan-ng-modules-0.2.8/work/linux-wlan-ng-0.2.8/src/p80211/p80211conv.c: In function 'skb_p80211_to_ether': /var/tmp/portage/net-wireless/linux-wlan-ng-modules-0.2.8/work/linux-wlan-ng-0.2.8/src/p80211/p80211conv.c:501: error: 'struct sk_buff' has no member named 'mac' make[4]: *** [/var/tmp/portage/net-wireless/linux-wlan-ng-modules-0.2.8/work/linux-wlan-ng-0.2.8/src/p80211/p80211conv.o] Error 1 make[3]: *** [_module_/var/tmp/portage/net-wireless/linux-wlan-ng-modules-0.2.8/work/linux-wlan-ng-0.2.8/src/p80211] Error 2 make[3]: Leaving directory `/usr/src/linux-2.6.23-rc4-mm1' make[2]: *** [default] Error 2 make[2]: Leaving directory `/var/tmp/portage/net-wireless/linux-wlan-ng-modules-0.2.8/work/linux-wlan-ng-0.2.8/src/p80211' make[1]: *** [all] Error 2 make[1]: Leaving directory `/var/tmp/portage/net-wireless/linux-wlan-ng-modules-0.2.8/work/linux-wlan-ng-0.2.8/src' make: *** [all] Error 2 Expected Results: set -e; for d in src doc man etc; do make -C $d ; done make[1]: Entering directory `/tmp/linux-wlan-ng-0.2.8/src' set -e; for d in mkmeta shared wlanctl nwepgen wlancfg p80211 prism2; do make WLAN_SRC=/tmp/linux-wlan-ng-0.2.8/src/ -C $d ; done make[2]: Entering directory `/tmp/linux-wlan-ng-0.2.8/src/mkmeta' gcc -E -M -I../include -I/lib/modules/2.6.22-gentoo-r5/build//include -D__LINUX_WLAN__ ../shared/p80211types.c ../shared/p80211metamsg.c ../shared/p80211metamib.c ../shared/p80211meta.c mkmetadef.c ../shared/p80211types.c ../shared/p80211metamsg.c ../shared/p80211metamib.c ../shared/p80211meta.c mkmetastruct.c > .depend mkdir -p obj gcc -c -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -I../include -I/lib/modules/2.6.22-gentoo-r5/build//include -D__LINUX_WLAN__ ../shared/p80211types.c -o obj/p80211types.o ../shared/p80211types.c: In function 'p80211_totext_displaystr': ../shared/p80211types.c:253: warning: pointer targets in passing argument 2 of 'strncat' differ in signedness ../shared/p80211types.c: In function 'p80211_fromtext_displaystr': ../shared/p80211types.c:341: warning: pointer targets in passing argument 1 of 'strncpy' differ in signedness gcc -c -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -I../include -I/lib/modules/2.6.22-gentoo-r5/build//include -D__LINUX_WLAN__ ../shared/p80211metamsg.c -o obj/p80211metamsg.o gcc -c -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -I../include -I/lib/modules/2.6.22-gentoo-r5/build//include -D__LINUX_WLAN__ ../shared/p80211metamib.c -o obj/p80211metamib.o gcc -c -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -I../include -I/lib/modules/2.6.22-gentoo-r5/build//include -D__LINUX_WLAN__ ../shared/p80211meta.c -o obj/p80211meta.o gcc -c -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -I../include -I/lib/modules/2.6.22-gentoo-r5/build//include -D__LINUX_WLAN__ mkmetadef.c -o obj/mkmetadef.o gcc -o mkmetadef obj/p80211types.o obj/p80211metamsg.o obj/p80211metamib.o obj/p80211meta.o obj/mkmetadef.o cat mkmetadefhead.txt > ../include/wlan/p80211metadef.h ./mkmetadef >> ../include/wlan/p80211metadef.h echo "#endif" >> ../include/wlan/p80211metadef.h gcc -c -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -I../include -I/lib/modules/2.6.22-gentoo-r5/build//include -D__LINUX_WLAN__ mkmetastruct.c -o obj/mkmetastruct.o gcc -o mkmetastruct obj/p80211types.o obj/p80211metamsg.o obj/p80211metamib.o obj/p80211meta.o obj/mkmetastruct.o cat mkmetastructhead.txt > ../include/wlan/p80211metastruct.h ./mkmetastruct >> ../include/wlan/p80211metastruct.h echo "#endif" >> ../include/wlan/p80211metastruct.h make[2]: Leaving directory `/tmp/linux-wlan-ng-0.2.8/src/mkmeta' make[2]: Entering directory `/tmp/linux-wlan-ng-0.2.8/src/shared' Nothing to do... make[2]: Leaving directory `/tmp/linux-wlan-ng-0.2.8/src/shared' make[2]: Entering directory `/tmp/linux-wlan-ng-0.2.8/src/wlanctl' gcc -I../include -I/lib/modules/2.6.22-gentoo-r5/build//include -D__LINUX_WLAN__ -c -o wlanctl.o wlanctl.c gcc -I../include -I/lib/modules/2.6.22-gentoo-r5/build//include -D__LINUX_WLAN__ -c -o help.o help.c gcc -I../include -I/lib/modules/2.6.22-gentoo-r5/build//include -D__LINUX_WLAN__ -c -o ../shared/p80211types.o ../shared/p80211types.c gcc -I../include -I/lib/modules/2.6.22-gentoo-r5/build//include -D__LINUX_WLAN__ -c -o ../shared/p80211meta.o ../shared/p80211meta.c gcc -I../include -I/lib/modules/2.6.22-gentoo-r5/build//include -D__LINUX_WLAN__ -c -o ../shared/p80211metamsg.o ../shared/p80211metamsg.c gcc -I../include -I/lib/modules/2.6.22-gentoo-r5/build//include -D__LINUX_WLAN__ -c -o ../shared/p80211metamib.o ../shared/p80211metamib.c gcc -o wlanctl wlanctl.o help.o ../shared/p80211types.o ../shared/p80211meta.o ../shared/p80211metamsg.o ../shared/p80211metamib.o make[2]: Leaving directory `/tmp/linux-wlan-ng-0.2.8/src/wlanctl' make[2]: Entering directory `/tmp/linux-wlan-ng-0.2.8/src/nwepgen' gcc -I../include -I/lib/modules/2.6.22-gentoo-r5/build//include -D__LINUX_WLAN__ -c -o nwepgen.o nwepgen.c gcc -o nwepgen nwepgen.o make[2]: Leaving directory `/tmp/linux-wlan-ng-0.2.8/src/nwepgen' make[2]: Entering directory `/tmp/linux-wlan-ng-0.2.8/src/wlancfg' gcc -I../include -I/lib/modules/2.6.22-gentoo-r5/build//include -D__LINUX_WLAN__ -c -o wlancfg.o wlancfg.c gcc -o wlancfg wlancfg.o ../shared/p80211types.o ../shared/p80211meta.o ../shared/p80211metamsg.o ../shared/p80211metamib.o make[2]: Leaving directory `/tmp/linux-wlan-ng-0.2.8/src/wlancfg' make[2]: Entering directory `/tmp/linux-wlan-ng-0.2.8/src/p80211' make -C /lib/modules/2.6.22-gentoo-r5/build/ M='/tmp/linux-wlan-ng-0.2.8/src/p80211' WLAN_SRC=/tmp/linux-wlan-ng-0.2.8/src/ modules make[3]: Entering directory `/usr/src/linux-2.6.22-gentoo-r5' CC [M] /tmp/linux-wlan-ng-0.2.8/src/p80211/p80211mod.o CC [M] /tmp/linux-wlan-ng-0.2.8/src/p80211/p80211conv.o CC [M] /tmp/linux-wlan-ng-0.2.8/src/p80211/p80211req.o CC [M] /tmp/linux-wlan-ng-0.2.8/src/p80211/p80211wep.o CC [M] /tmp/linux-wlan-ng-0.2.8/src/p80211/p80211wext.o /tmp/linux-wlan-ng-0.2.8/src/p80211/p80211wext.c:451:2: warning: #warning "get rid of p2mib here" CC [M] /tmp/linux-wlan-ng-0.2.8/src/p80211/p80211netdev.o LD [M] /tmp/linux-wlan-ng-0.2.8/src/p80211/p80211.o Building modules, stage 2. MODPOST 1 modules CC /tmp/linux-wlan-ng-0.2.8/src/p80211/p80211.mod.o LD [M] /tmp/linux-wlan-ng-0.2.8/src/p80211/p80211.ko make[3]: Leaving directory `/usr/src/linux-2.6.22-gentoo-r5' make[2]: Leaving directory `/tmp/linux-wlan-ng-0.2.8/src/p80211' make[2]: Entering directory `/tmp/linux-wlan-ng-0.2.8/src/prism2' set -e; for d in driver ridlist download; do make -C $d ; done make[3]: Entering directory `/tmp/linux-wlan-ng-0.2.8/src/prism2/driver' cp /tmp/linux-wlan-ng-0.2.8/src//p80211/Module*.symvers . make -C /lib/modules/2.6.22-gentoo-r5/build/ M='/tmp/linux-wlan-ng-0.2.8/src/prism2/driver' WLAN_SRC=/tmp/linux-wlan-ng-0.2.8/src/ modules make[4]: Entering directory `/usr/src/linux-2.6.22-gentoo-r5' CC [M] /tmp/linux-wlan-ng-0.2.8/src/prism2/driver/prism2_usb.o Building modules, stage 2. MODPOST 1 modules CC /tmp/linux-wlan-ng-0.2.8/src/prism2/driver/prism2_usb.mod.o LD [M] /tmp/linux-wlan-ng-0.2.8/src/prism2/driver/prism2_usb.ko make[4]: Leaving directory `/usr/src/linux-2.6.22-gentoo-r5' make[3]: Leaving directory `/tmp/linux-wlan-ng-0.2.8/src/prism2/driver' make[3]: Entering directory `/tmp/linux-wlan-ng-0.2.8/src/prism2/ridlist' mkdir -p obj make[3]: Leaving directory `/tmp/linux-wlan-ng-0.2.8/src/prism2/ridlist' make[3]: Entering directory `/tmp/linux-wlan-ng-0.2.8/src/prism2/download' gcc -I../../include -I../include -I/lib/modules/2.6.22-gentoo-r5/build//include -D__LINUX_WLAN__ -c -o prism2dl.o prism2dl.c gcc -g -o prism2dl prism2dl.o make[3]: Leaving directory `/tmp/linux-wlan-ng-0.2.8/src/prism2/download' make[2]: Leaving directory `/tmp/linux-wlan-ng-0.2.8/src/prism2' make[1]: Leaving directory `/tmp/linux-wlan-ng-0.2.8/src' make[1]: Entering directory `/tmp/linux-wlan-ng-0.2.8/doc' Nothing to do... make[1]: Leaving directory `/tmp/linux-wlan-ng-0.2.8/doc' make[1]: Entering directory `/tmp/linux-wlan-ng-0.2.8/man' Nothing to do... make[1]: Leaving directory `/tmp/linux-wlan-ng-0.2.8/man' make[1]: Entering directory `/tmp/linux-wlan-ng-0.2.8/etc' set -e; for d in pcmcia wlan; do make -C $d all; done make[2]: Entering directory `/tmp/linux-wlan-ng-0.2.8/etc/pcmcia' Nothing to do make[2]: Leaving directory `/tmp/linux-wlan-ng-0.2.8/etc/pcmcia' make[2]: Entering directory `/tmp/linux-wlan-ng-0.2.8/etc/wlan' echo "Nothing to do" Nothing to do make[2]: Leaving directory `/tmp/linux-wlan-ng-0.2.8/etc/wlan' make[1]: Leaving directory `/tmp/linux-wlan-ng-0.2.8/etc' #! /bin/sh /usr/share/dpatch/dpatch-run ## ubuntu-sk_buff-mac.dpatch by <debian.tormod@gmail.com> ## ## All lines beginning with `## DP:' are a description of the patch. ## DP: No description. @DPATCH@ diff -urNad linux-wlan-ng-0.2.8+dfsg~/src/p80211/p80211conv.c linux-wlan-ng-0.2.8+dfsg/src/p80211/p80211conv.c --- linux-wlan-ng-0.2.8+dfsg~/src/p80211/p80211conv.c 2007-03-19 15:37:00.000000000 +0000 +++ linux-wlan-ng-0.2.8+dfsg/src/p80211/p80211conv.c 2007-06-06 22:20:07.000000000 +0000 @@ -498,7 +498,7 @@ } skb->protocol = eth_type_trans(skb, netdev); - skb->mac.raw = (unsigned char *) e_hdr; /* new MAC header */ + skb->mac_header = (unsigned char *) e_hdr; /* new MAC header */ /* jkriegl: process signal and noise as set in hfa384x_int_rx() */ /* jkriegl: only process signal/noise if requested by iwspy */ diff -urNad linux-wlan-ng-0.2.8+dfsg~/src/p80211/p80211netdev.c linux-wlan-ng-0.2.8+dfsg/src/p80211/p80211netdev.c --- linux-wlan-ng-0.2.8+dfsg~/src/p80211/p80211netdev.c 2007-03-19 15:37:00.000000000 +0000 +++ linux-wlan-ng-0.2.8+dfsg/src/p80211/p80211netdev.c 2007-06-06 22:20:07.000000000 +0000 @@ -389,7 +389,7 @@ /* set up various data fields */ skb->dev = dev; - skb->mac.raw = skb->data ; + skb_reset_mac_header(skb); skb->ip_summed = CHECKSUM_NONE; skb->pkt_type = PACKET_OTHERHOST; skb->protocol = htons(ETH_P_80211_RAW); diff -urNad linux-wlan-ng-0.2.8+dfsg~/src/prism2/driver/hfa384x.c linux-wlan-ng-0.2.8+dfsg/src/prism2/driver/hfa384x.c --- linux-wlan-ng-0.2.8+dfsg~/src/prism2/driver/hfa384x.c 2007-03-19 15:37:00.000000000 +0000 +++ linux-wlan-ng-0.2.8+dfsg/src/prism2/driver/hfa384x.c 2007-06-06 22:20:07.000000000 +0000 @@ -3645,7 +3645,7 @@ /* the prism2 cards don't return the FCS */ datap = skb_put(skb, WLAN_CRC_LEN); memset (datap, 0xff, WLAN_CRC_LEN); - skb->mac.raw = skb->data; + skb_reset_mac_header(skb); /* Attach the rxmeta, set some stuff */ p80211skb_rxmeta_attach(wlandev, skb); diff -urNad linux-wlan-ng-0.2.8+dfsg~/src/prism2/driver/hfa384x_usb.c linux-wlan-ng-0.2.8+dfsg/src/prism2/driver/hfa384x_usb.c --- linux-wlan-ng-0.2.8+dfsg~/src/prism2/driver/hfa384x_usb.c 2007-03-19 15:37:00.000000000 +0000 +++ linux-wlan-ng-0.2.8+dfsg/src/prism2/driver/hfa384x_usb.c 2007-06-06 22:20:07.000000000 +0000 @@ -4255,7 +4255,7 @@ /* The prism2 series does not return the CRC */ memset(skb_put(skb, WLAN_CRC_LEN), 0xff, WLAN_CRC_LEN); - skb->mac.raw = skb->data; + skb_reset_mac_header(skb); /* Attach the rxmeta, set some stuff */ p80211skb_rxmeta_attach(wlandev, skb);
Created attachment 132829 [details, diff] Fixes the compile for Kernel >= 2.6.22 Here is a working patch for it.
Created attachment 132830 [details] ebuild with patch in it. And here is the ebuild, maybe someone have to changed the version. Anyway it works for me ;)
I'm having the same issues. This bug is now over 2 months old, any chance of a fix in portage?
(In reply to comment #3) > I'm having the same issues. This bug is now over 2 months old, any chance of a > fix in portage? > Patch added. Sorry about the delay.