Package: iscsitarget-dkms Version: 1.4.20.2-7 Severity: important Tags: patch
After upgrading a Debian installation to Wheezy, I noticed iSCSI kernel module failed to build with the new kernel headers. It produces the following output : Kernel preparation unnecessary for this kernel. Skipping... Building module: cleaning build area.... make KERNELRELEASE=3.2.0-1-686-pae -C /lib/modules/3.2.0-1-686-pae/build M=/var/lib/dkms/iscsitarget/1.4.20.2/build........(bad exit status: 2) Error! Bad return status for module build on kernel: 3.2.0-1-686-pae (i686) Consult /var/lib/dkms/iscsitarget/1.4.20.2/build/make.log for more information. tail /var/lib/dkms/iscsitarget/1.4.20.2/build/make.log gives the following : CC [M] /var/lib/dkms/iscsitarget/1.4.20.2/build/kernel/nthread.o CC [M] /var/lib/dkms/iscsitarget/1.4.20.2/build/kernel/wthread.o CC [M] /var/lib/dkms/iscsitarget/1.4.20.2/build/kernel/config.o /var/lib/dkms/iscsitarget/1.4.20.2/build/kernel/config.c:358:12: error: ‘THIS_MODULE’ undeclared here (not in a function) make[4]: *** [/var/lib/dkms/iscsitarget/1.4.20.2/build/kernel/config.o] Erreur 1 make[3]: *** [/var/lib/dkms/iscsitarget/1.4.20.2/build/kernel] Erreur 2 make[2]: *** [_module_/var/lib/dkms/iscsitarget/1.4.20.2/build] Erreur 2 make[1]: *** [sub-make] Erreur 2 make: *** [all] Erreur 2 make: quittant le répertoire « /usr/src/linux-headers-3.2.0-1-686-pae » After Googling, I figured out it was due to missing <linux/export.h> and <linux/modules.h> includes in few files. The following patch fixes it : -- System Information: Debian Release: wheezy/sid APT prefers testing APT policy: (500, 'testing') Architecture: i386 (i686) Kernel: Linux 3.2.0-1-686-pae (SMP w/2 CPU cores) Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Versions of packages iscsitarget-dkms depends on: ii dkms 2.2.0.3-1 ii make 3.81-8.1 Versions of packages iscsitarget-dkms recommends: ii linux-headers-3.2.0-1-686-pae [linux-headers] 3.2.4-1 iscsitarget-dkms suggests no packages. -- no debconf information
diff -c /usr/src/iscsitarget-1.4.20.2/kernel/block-io.c /root/iscsitarget-1.4.20.2/kernel/block-io.c *** /usr/src/iscsitarget-1.4.20.2/kernel/block-io.c 2012-01-31 19:17:46.000000000 +0000 --- /root/iscsitarget-1.4.20.2/kernel/block-io.c 2012-02-12 02:28:02.187286214 +0000 *************** *** 13,18 **** --- 13,19 ---- #include <linux/blkdev.h> #include <linux/parser.h> #include <linux/buffer_head.h> + #include <linux/export.h> #include "iscsi.h" #include "iscsi_dbg.h" diff -c /usr/src/iscsitarget-1.4.20.2/kernel/config.c /root/iscsitarget-1.4.20.2/kernel/config.c *** /usr/src/iscsitarget-1.4.20.2/kernel/config.c 2012-01-31 19:17:46.000000000 +0000 --- /root/iscsitarget-1.4.20.2/kernel/config.c 2012-02-12 02:28:02.183286195 +0000 *************** *** 5,10 **** --- 5,11 ---- */ #include <linux/proc_fs.h> + #include <linux/export.h> #include "iscsi.h" #include "iscsi_dbg.h" diff -c /usr/src/iscsitarget-1.4.20.2/kernel/event.c /root/iscsitarget-1.4.20.2/kernel/event.c *** /usr/src/iscsitarget-1.4.20.2/kernel/event.c 2012-01-31 19:17:46.000000000 +0000 --- /root/iscsitarget-1.4.20.2/kernel/event.c 2012-02-12 02:28:02.183286195 +0000 *************** *** 5,10 **** --- 5,11 ---- * * Some functions are based on audit code. */ + #include <linux/export.h> #include <net/tcp.h> #include "iet_u.h" diff -c /usr/src/iscsitarget-1.4.20.2/kernel/session.c /root/iscsitarget-1.4.20.2/kernel/session.c *** /usr/src/iscsitarget-1.4.20.2/kernel/session.c 2012-01-31 19:17:46.000000000 +0000 --- /root/iscsitarget-1.4.20.2/kernel/session.c 2012-02-12 02:28:02.187286214 +0000 *************** *** 3,8 **** --- 3,9 ---- * * Released under the terms of the GNU GPL v2.0. */ + #include <linux/export.h> #include "iscsi.h" #include "iscsi_dbg.h" diff -c /usr/src/iscsitarget-1.4.20.2/kernel/target.c /root/iscsitarget-1.4.20.2/kernel/target.c *** /usr/src/iscsitarget-1.4.20.2/kernel/target.c 2012-01-31 19:17:46.000000000 +0000 --- /root/iscsitarget-1.4.20.2/kernel/target.c 2012-02-12 02:28:02.183286195 +0000 *************** *** 5,10 **** --- 5,12 ---- */ #include <linux/mutex.h> + #include <linux/export.h> + #include <linux/module.h> #include "iscsi.h" #include "digest.h" diff -c /usr/src/iscsitarget-1.4.20.2/kernel/volume.c /root/iscsitarget-1.4.20.2/kernel/volume.c *** /usr/src/iscsitarget-1.4.20.2/kernel/volume.c 2012-01-31 19:17:46.000000000 +0000 --- /root/iscsitarget-1.4.20.2/kernel/volume.c 2012-02-12 02:28:02.183286195 +0000 *************** *** 7,12 **** --- 7,13 ---- #include <linux/types.h> #include <linux/parser.h> #include <linux/blkdev.h> + #include <linux/export.h #include "iscsi.h" #include "iscsi_dbg.h"