Build fails on intrepid amd64, error: too many arguments to function 'smp_call_function'

Bug #263080 reported by Tim Kornhammar
28
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Virtualbox
Fix Released
Unknown
virtualbox-ose-modules (Ubuntu)
Fix Released
Undecided
Rolf Leggewie

Bug Description

Distribution: Ubuntu Intrepid
Version: 30
Architecture: amd64

"""
# Build the vboxdrv module:
for i in generic server ; do \
  mkdir /var/cache/prevu/src/28496/source/debian/build-$i ; \
  tar jxfC /usr/src/virtualbox-ose.tar.bz2 /var/cache/prevu/src/28496/source/debian/build-$i;\
  export KERN_DIR=/usr/src/linux-headers-2.6.27-2-$i; \
  /usr/bin/make -C /var/cache/prevu/src/28496/source/debian/build-$i/modules/virtualbox-ose; \
 done
make[1]: Entering directory `/var/cache/prevu/src/28496/source/debian/build-generic/modules/virtualbox-ose'
/usr/bin/make KBUILD_VERBOSE=1 -C /usr/src/linux-headers-2.6.27-2-generic SUBDIRS=/var/cache/prevu/src/28496/source/debian/build-generic/modules/virtualbox-ose SRCROOT=/var/cache/prevu/src/28496/source/debian/build-generic/modules/virtualbox-ose modules
make[2]: Entering directory `/usr/src/linux-headers-2.6.27-2-generic'
test -e include/linux/autoconf.h -a -e include/config/auto.conf || ( \
 echo; \
 echo " ERROR: Kernel configuration is invalid."; \
 echo " include/linux/autoconf.h or include/config/auto.conf are missing."; \
 echo " Run 'make oldconfig && make prepare' on kernel src to fix it."; \
 echo; \
 /bin/false)
mkdir -p /var/cache/prevu/src/28496/source/debian/build-generic/modules/virtualbox-ose/.tmp_versions ; rm -f /var/cache/prevu/src/28496/source/debian/build-generic/modules/virtualbox-ose/.tmp_versions/*
/usr/bin/make -f scripts/Makefile.build obj=/var/cache/prevu/src/28496/source/debian/build-generic/modules/virtualbox-ose
  gcc -Wp,-MD,/var/cache/prevu/src/28496/source/debian/build-generic/modules/virtualbox-ose/linux/.SUPDrv-linux.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-linux-gnu/4.3.2/include -D__KERNEL__ -Iinclude -I/usr/src/linux-headers-2.6.27-2-generic/arch/x86/include -include include/linux/autoconf.h -Iubuntu/include -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -O2 -m64 -mtune=generic -mno-red-zone -mcmodel=kernel -funit-at-a-time -maccumulate-outgoing-args -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -Iinclude/asm-x86/mach-default -fno-stack-protector -fno-omit-frame-pointer -fno-optimize-sibling-calls -pg -Wdeclaration-after-statement -Wno-pointer-sign -I/usr/src/linux-headers-2.6.27-2-generic/include -I/var/cache/prevu/src/28496/source/debian/build-generic/modules/virtualbox-ose/ -I/var/cache/prevu/src/28496/source/debian/build-generic/modules/virtualbox-ose/include -I/var/cache/prevu/src/28496/source/debian/build-generic/modules/virtualbox-ose/r0drv/linux -D__KERNEL__ -DMODULE -DRT_OS_LINUX -DIN_RING0 -DIN_RT_R0 -DIN_SUP_R0 -DVBOX -DRT_WITH_VBOX -DCONFIG_VBOXDRV_AS_MISC -DRT_ARCH_AMD64 -DUSE_NEW_OS_INTERFACE_FOR_MM -DMODULE -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(SUPDrv_linux)" -D"KBUILD_MODNAME=KBUILD_STR(vboxdrv)" -c -o /var/cache/prevu/src/28496/source/debian/build-generic/modules/virtualbox-ose/linux/.tmp_SUPDrv-linux.o /var/cache/prevu/src/28496/source/debian/build-generic/modules/virtualbox-ose/linux/SUPDrv-linux.c
In file included from /var/cache/prevu/src/28496/source/debian/build-generic/modules/virtualbox-ose/linux/SUPDrv-linux.c:35:
/var/cache/prevu/src/28496/source/debian/build-generic/modules/virtualbox-ose/SUPDRV.h:99:30: error: asm/semaphore.h: No such file or directory
/var/cache/prevu/src/28496/source/debian/build-generic/modules/virtualbox-ose/linux/SUPDrv-linux.c: In function 'supdrvOSGipResume':
/var/cache/prevu/src/28496/source/debian/build-generic/modules/virtualbox-ose/linux/SUPDrv-linux.c:1331: error: too many arguments to function 'smp_call_function'
make[3]: *** [/var/cache/prevu/src/28496/source/debian/build-generic/modules/virtualbox-ose/linux/SUPDrv-linux.o] Error 1
make[2]: *** [_module_/var/cache/prevu/src/28496/source/debian/build-generic/modules/virtualbox-ose] Error 2
make[2]: Leaving directory `/usr/src/linux-headers-2.6.27-2-generic'
make[1]: *** [vboxdrv] Error 2
make[1]: Leaving directory `/var/cache/prevu/src/28496/source/debian/build-generic/modules/virtualbox-ose'
make[1]: Entering directory `/var/cache/prevu/src/28496/source/debian/build-server/modules/virtualbox-ose'
/usr/bin/make KBUILD_VERBOSE=1 -C /usr/src/linux-headers-2.6.27-2-server SUBDIRS=/var/cache/prevu/src/28496/source/debian/build-server/modules/virtualbox-ose SRCROOT=/var/cache/prevu/src/28496/source/debian/build-server/modules/virtualbox-ose modules
make[2]: Entering directory `/usr/src/linux-headers-2.6.27-2-server'
test -e include/linux/autoconf.h -a -e include/config/auto.conf || ( \
 echo; \
 echo " ERROR: Kernel configuration is invalid."; \
 echo " include/linux/autoconf.h or include/config/auto.conf are missing."; \
 echo " Run 'make oldconfig && make prepare' on kernel src to fix it."; \
 echo; \
 /bin/false)
mkdir -p /var/cache/prevu/src/28496/source/debian/build-server/modules/virtualbox-ose/.tmp_versions ; rm -f /var/cache/prevu/src/28496/source/debian/build-server/modules/virtualbox-ose/.tmp_versions/*
/usr/bin/make -f scripts/Makefile.build obj=/var/cache/prevu/src/28496/source/debian/build-server/modules/virtualbox-ose
  gcc -Wp,-MD,/var/cache/prevu/src/28496/source/debian/build-server/modules/virtualbox-ose/linux/.SUPDrv-linux.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-linux-gnu/4.3.2/include -D__KERNEL__ -Iinclude -I/usr/src/linux-headers-2.6.27-2-server/arch/x86/include -include include/linux/autoconf.h -Iubuntu/include -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -O2 -m64 -mtune=generic -mno-red-zone -mcmodel=kernel -funit-at-a-time -maccumulate-outgoing-args -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -Iinclude/asm-x86/mach-default -fno-stack-protector -fno-omit-frame-pointer -fno-optimize-sibling-calls -pg -Wdeclaration-after-statement -Wno-pointer-sign -I/usr/src/linux-headers-2.6.27-2-server/include -I/var/cache/prevu/src/28496/source/debian/build-server/modules/virtualbox-ose/ -I/var/cache/prevu/src/28496/source/debian/build-server/modules/virtualbox-ose/include -I/var/cache/prevu/src/28496/source/debian/build-server/modules/virtualbox-ose/r0drv/linux -D__KERNEL__ -DMODULE -DRT_OS_LINUX -DIN_RING0 -DIN_RT_R0 -DIN_SUP_R0 -DVBOX -DRT_WITH_VBOX -DCONFIG_VBOXDRV_AS_MISC -DRT_ARCH_AMD64 -DUSE_NEW_OS_INTERFACE_FOR_MM -DMODULE -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(SUPDrv_linux)" -D"KBUILD_MODNAME=KBUILD_STR(vboxdrv)" -c -o /var/cache/prevu/src/28496/source/debian/build-server/modules/virtualbox-ose/linux/.tmp_SUPDrv-linux.o /var/cache/prevu/src/28496/source/debian/build-server/modules/virtualbox-ose/linux/SUPDrv-linux.c
In file included from /var/cache/prevu/src/28496/source/debian/build-server/modules/virtualbox-ose/linux/SUPDrv-linux.c:35:
/var/cache/prevu/src/28496/source/debian/build-server/modules/virtualbox-ose/SUPDRV.h:99:30: error: asm/semaphore.h: No such file or directory
/var/cache/prevu/src/28496/source/debian/build-server/modules/virtualbox-ose/linux/SUPDrv-linux.c: In function 'supdrvOSGipResume':
/var/cache/prevu/src/28496/source/debian/build-server/modules/virtualbox-ose/linux/SUPDrv-linux.c:1331: error: too many arguments to function 'smp_call_function'
make[3]: *** [/var/cache/prevu/src/28496/source/debian/build-server/modules/virtualbox-ose/linux/SUPDrv-linux.o] Error 1
make[2]: *** [_module_/var/cache/prevu/src/28496/source/debian/build-server/modules/virtualbox-ose] Error 2
make[2]: Leaving directory `/usr/src/linux-headers-2.6.27-2-server'
make[1]: *** [vboxdrv] Error 2
make[1]: Leaving directory `/var/cache/prevu/src/28496/source/debian/build-server/modules/virtualbox-ose'
make: *** [build_vboxdrv] Error 2
dpkg-buildpackage: failure: debian/rules build gave error exit status 2
"""

Revision history for this message
Matthias Kestenholz (mk-spinlock) wrote :

Disclaimer: I'm no kernel hacker, I just want to get virtualbox up and running again.

The quick fix for me was changing #include <asm/semaphore.h> to #include <linux/semaphore.h> and removing the third parameter (0 /* retry */,) from all those places where compiling failed because of too many arguments (esp. smp_call_function, I don't remember the other function names)

Revision history for this message
Matthias Kestenholz (mk-spinlock) wrote :

The attached patch is obviously not very clean and not nice at all (It should take the linux version into account instead of replacing things all over the place breaking the source for older kernels) but it works for linux-image-2.6.27-2-generic. It might be a starting point for other people, though.

Note: I'm not even sure this is the correct fix. The only tests I have done with it were compiling the module, insmoding it and booting windows xp inside the VM...

Revision history for this message
Matthias Kestenholz (mk-spinlock) wrote :

Argh, I should think before posting.

This bug is fixed in VirtualBox 1.6.6 as per the posting here: http://www.virtualbox.org/ticket/1962

Revision history for this message
Sami Haahtinen (ressu) wrote :

Lets link this bug to the upstream bug

Revision history for this message
Sami Haahtinen (ressu) wrote :

Confirming this bug, also verifying that the patch works as a temporary fix.

Changed in virtualbox-ose-modules:
status: New → Confirmed
Changed in virtualbox:
status: Unknown → New
Revision history for this message
Jeremy Wilkins (wjeremy) wrote :

Confirmed. Seems to be problems building with the new 2.6.27 kernel, because it was working on 2.6.26.

Changed in virtualbox:
status: New → Fix Released
Revision history for this message
Rolf Leggewie (r0lf) wrote :

does this ever occur in lucid or later? The upstream ticket is closed as fix released.

Changed in virtualbox-ose-modules (Ubuntu):
assignee: nobody → Rolf Leggewie (r0lf)
status: Confirmed → Incomplete
Revision history for this message
Rolf Leggewie (r0lf) wrote :

We'd like to figure out what's causing this bug for you, but we haven't heard back from you in a while. Could you please provide the requested information? Thanks!

Revision history for this message
Matthias Kestenholz (mk-spinlock) wrote :

I haven't seen this problem in years now, I completely forgot about it.

I'd say this can be closed for good.

Revision history for this message
Daniel Hahler (blueyed) wrote :

Marking as fixed as per last comment from Matthias.

Changed in virtualbox-ose-modules (Ubuntu):
status: Incomplete → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.