Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[linux-dvb] <FIXED> error: union has no member named `ethernet' (2.6.9-rc3-bk8)



C.Y.M wrote:
C.Y.M wrote:

After testing today's latest kernel snapshot against the latest dvb-kernel cvs drivers, I am getting the following error:

CC [M] drivers/media/dvb/dvb-core/dvb_ca_en50221.o
CC [M] drivers/media/dvb/dvb-core/dvb_frontend.o
CC [M] drivers/media/dvb/dvb-core/dvb_net.o
drivers/media/dvb/dvb-core/dvb_net.c: In function `dvb_net_eth_type_trans':
drivers/media/dvb/dvb-core/dvb_net.c:143: error: union has no member named `ethernet'
make[5]: *** [drivers/media/dvb/dvb-core/dvb_net.o] Error 1
make[4]: *** [drivers/media/dvb/dvb-core] Error 2
make[3]: *** [drivers/media/dvb] Error 2
make[2]: *** [drivers/media] Error 2
make[1]: *** [drivers] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.9-rc3-bk8'
make: *** [stamp-build] Error 2

I believe this has to do with the changes from 2.6.9-rc3-bk7 to 2.6.9-rc3-bk8 (bk7 works fine). I may have narrowed it down to the following changes in the kernel (but I am not positive):

--- a/net/ethernet/eth.c 2004-08-30 14:27:27 -07:00
+++ b/net/ethernet/eth.c 2004-10-05 14:51:01 -07:00
@@ -163,7 +163,7 @@

skb->mac.raw=skb->data;
skb_pull(skb,ETH_HLEN);
- eth= skb->mac.ethernet;
+ eth = eth_hdr(skb);
skb->input_dev = dev;

if(*eth->h_dest&1)
@@ -210,7 +210,7 @@

int eth_header_parse(struct sk_buff *skb, unsigned char *haddr)
{
- struct ethhdr *eth = skb->mac.ethernet;
+ struct ethhdr *eth = eth_hdr(skb);
memcpy(haddr, eth->h_source, ETH_ALEN);
return ETH_ALEN;
}



I just test this mornings kernel build and this is also a problem with 2.6.9-rc3-bk9 (same error as above). I believe the final release of 2.6.9 will have these "ethernet" changes in it so something needs to be changed with the dvb-kernel's dvb-net code in order to get the final release of 2.6.9 working.

Thanks,



The following patch needs to be applied to build the dvb-kernel with the latest 2.6.9-rc3-bk8+ kernel sources:

--- dvb-kernel/linux/drivers/media/dvb/dvb-core/dvb_net.c.original 2004-10-09 13:01:48.000000000 -0700
+++ dvb-kernel/linux/drivers/media/dvb/dvb-core/dvb_net.c 2004-10-09 13:03:30.000000000 -0700
@@ -140,7 +140,7 @@

skb->mac.raw=skb->data;
skb_pull(skb,dev->hard_header_len);
- eth= skb->mac.ethernet;
+ eth = eth_hdr(skb);

if (*eth->h_dest & 1) {
if(memcmp(eth->h_dest,dev->broadcast, ETH_ALEN)==0)





Home | Main Index | Thread Index