Bug#644871: Compiling e1000e-1.4.4 and above against linux-headers-2.6.32-5-amd64 2.6.32-38 fails
Package: linux-headers-2.6.32-5-amd64
Version: 2.6.32-38
Compiling e1000e-1.4.4 and above against linux-headers-2.6.32-5-amd64
2.6.32-38 fails:
root@Coentro:/usr/local/src/e1000e-1.4.4/src#
BUILD_KERNEL=2.6.32-5-amd64 make
make -C /lib/modules/2.6.32-5-amd64/build
SUBDIRS=/usr/local/src/e1000e-1.4.4/src modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.32-5-amd64'
CC [M] /usr/local/src/e1000e-1.4.4/src/netdev.o
/usr/local/src/e1000e-1.4.4/src/netdev.c: In function
‘e1000_runtime_resume’:
/usr/local/src/e1000e-1.4.4/src/netdev.c:6323: error: ‘struct
dev_pm_info’ has no member named ‘runtime_auto’
/usr/local/src/e1000e-1.4.4/src/netdev.c: At top level:
/usr/local/src/e1000e-1.4.4/src/netdev.c:7172: error: implicit
declaration of function ‘SET_RUNTIME_PM_OPS’
/usr/local/src/e1000e-1.4.4/src/netdev.c:7174: error: initializer
element is not constant
/usr/local/src/e1000e-1.4.4/src/netdev.c:7174: error: (near
initialization for ‘e1000_pm_ops.suspend_noirq’)
make[4]: *** [/usr/local/src/e1000e-1.4.4/src/netdev.o] Error 1
make[3]: *** [_module_/usr/local/src/e1000e-1.4.4/src] Error 2
make[2]: *** [sub-make] Error 2
make[1]: *** [all] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-2.6.32-5-amd64'
make: *** [default] Error 2
If I comment out
#ifdef CONFIG_PM_SLEEP
#define SET_SYSTEM_SLEEP_PM_OPS(suspend_fn, resume_fn) \
.suspend = suspend_fn, \
.resume = resume_fn, \
.freeze = suspend_fn, \
.thaw = resume_fn, \
.poweroff = suspend_fn, \
.restore = resume_fn,
#else
#define SET_SYSTEM_SLEEP_PM_OPS(suspend_fn, resume_fn)
#endif
in /usr/src/linux-headers-2.6.32-5-common/include/linux/pm.h, builds OK:
root@Coentro:/usr/local/src/e1000e-1.4.4/src# diff -C 1
/usr/src/linux-headers-2.6.32-5-common/include/linux/pm.h
/usr/src/linux-headers-2.6.32-5-common/include/linux/pm.h.orig
*** /usr/src/linux-headers-2.6.32-5-common/include/linux/pm.h 2011-10-09
21:48:32.000000000 +0100
--- /usr/src/linux-headers-2.6.32-5-common/include/linux/pm.h.orig
2011-10-03 04:07:06.000000000 +0100
***************
*** 215,228 ****
! /* #ifdef CONFIG_PM_SLEEP
! * #define SET_SYSTEM_SLEEP_PM_OPS(suspend_fn, resume_fn) \
! * .suspend = suspend_fn, \
! * .resume = resume_fn, \
! * .freeze = suspend_fn, \
! * .thaw = resume_fn, \
! * .poweroff = suspend_fn, \
! * .restore = resume_fn,
! * #else
! * #define SET_SYSTEM_SLEEP_PM_OPS(suspend_fn, resume_fn)
! * #endif
! */
--- 215,227 ----
! #ifdef CONFIG_PM_SLEEP
! #define SET_SYSTEM_SLEEP_PM_OPS(suspend_fn, resume_fn) \
! .suspend = suspend_fn, \
! .resume = resume_fn, \
! .freeze = suspend_fn, \
! .thaw = resume_fn, \
! .poweroff = suspend_fn, \
! .restore = resume_fn,
! #else
! #define SET_SYSTEM_SLEEP_PM_OPS(suspend_fn, resume_fn)
! #endif
root@Coentro:/usr/local/src/e1000e-1.4.4/src# vi
/usr/src/linux-headers-2.6.32-5-common/include/linux/pm.h
root@Coentro:/usr/local/src/e1000e-1.4.4/src#
BUILD_KERNEL=2.6.32-5-amd64 make
make -C /lib/modules/2.6.32-5-amd64/build
SUBDIRS=/usr/local/src/e1000e-1.4.4/src modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.32-5-amd64'
CC [M] /usr/local/src/e1000e-1.4.4/src/netdev.o
CC [M] /usr/local/src/e1000e-1.4.4/src/ethtool.o
CC [M] /usr/local/src/e1000e-1.4.4/src/param.o
CC [M] /usr/local/src/e1000e-1.4.4/src/82571.o
CC [M] /usr/local/src/e1000e-1.4.4/src/ich8lan.o
CC [M] /usr/local/src/e1000e-1.4.4/src/80003es2lan.o
CC [M] /usr/local/src/e1000e-1.4.4/src/mac.o
CC [M] /usr/local/src/e1000e-1.4.4/src/nvm.o
CC [M] /usr/local/src/e1000e-1.4.4/src/phy.o
CC [M] /usr/local/src/e1000e-1.4.4/src/manage.o
CC [M] /usr/local/src/e1000e-1.4.4/src/kcompat.o
LD [M] /usr/local/src/e1000e-1.4.4/src/e1000e.o
Building modules, stage 2.
MODPOST 1 modules
CC /usr/local/src/e1000e-1.4.4/src/e1000e.mod.o
LD [M] /usr/local/src/e1000e-1.4.4/src/e1000e.ko
make[1]: Leaving directory `/usr/src/linux-headers-2.6.32-5-amd64'
I believe that block of code was added in 2.6.32-37
(http://packages.debian.org/changelogs/pool/main/l/linux-2.6/linux-2.6_2.6.32-38/changelog#version2.6.32-37):
* pm: Fix definition of SET_SYSTEM_SLEEP_PM_OPS used in backported drivers
(fixes FTBFS on ia64)
I'm afraid I had not the chance to test the compiled module; however,
the previous Debian kernel version did not have this problem and the
module worked fine, as neither does the upstream 2.6.35.14 I'm using
(nor the upstream 2.6.32.45); I've tested against e1000e-1.4.4,
e1000e-1.5.1 and e1000e-1.6.2 with the same results.
Please let me know if I can be of further assistance.
Kind regards,
Filipe
--
filipe.fonseca@farmingbits.com
+351.914593743
Reply to: