With Linux 2.6.29.1 et131x v 1.2.3-3 does not build.
#@make -C /lib/modules/2.6.29-02062901-generic/build M=/usr/src/et131x-1.2.3-3 modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.29-02062901-generic'
CC [M] /usr/src/et131x-1.2.3-3/et131x_main.o
CC [M] /usr/src/et131x-1.2.3-3/et131x_initpci.o
/usr/src/et131x-1.2.3-3/et131x_initpci.c: In function ‘et131x_pci_remove’:
/usr/src/et131x-1.2.3-3/et131x_initpci.c:1169: error: ‘struct net_device’ has no member named ‘priv’
/usr/src/et131x-1.2.3-3/et131x_initpci.c: In function ‘et131x_pci_setup’:
/usr/src/et131x-1.2.3-3/et131x_initpci.c:1506: error: ‘struct net_device’ has no member named ‘priv’
make[2]: *** [/usr/src/et131x-1.2.3-3/et131x_initpci.o] Error 1
make[1]: *** [_module_/usr/src/et131x-1.2.3-3] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-2.6.29-02062901-generic'
make: *** [modules] Error 2
The 'priv' member of struct net_device has been replaced with the function netdev_priv().
All uses of priv need to be updated.
I found a fix that works for me. In et131x_supp.h there is a macro that maintains compatibility with older kernel versions by replacing netdev_priv( dev ) calls with dev->priv. For some reason this directive is incorrectly activated during compilation.
Fix:
open et131x_supp.h and comment out the following lines:
#ifndef netdev_priv
#define netdev_priv(x) (ET131X_ADAPTER *)netdev->priv
#endif