kernel panic on shutdown w/ vboxdrv

On my environment (VineSeed/Vine Linux 6 on MacBook Early 2008), the system always crashes with a kernel panic when trying to shut the system down like this:

panic occurred, switching back to text console
BUG: scheduling while atomic: swapper/0/0x10010000
Modules linked in: sit tunnel4 rfcomm sco bnep l2cap vboxnetadp vboxnetflt vboxdrv autofs4 sunrpc
ipv6 acpi_cpufreq freq_table mperf dm_mirror dm_region_hash dm_log dm_mod uinput snd_hda_codec_realtek
snd_hda_intel lib80211_crypt_tkip snd_hda_codec wl(P) snd_hwdep uvcvideo btusb snd_seq_dummy
snd_seq_oss snd_seq_midi_event snd_seq videodev bluetooth ohci1394 v4l1_compat snd_seq_device
applesmc snd_pcm_oss snd_pcm hwmon rfkill lib80211 ieee1394 led_class snd_timer snd firewire_ohci
soundcore firewire_core i2c_i801 snd_page_alloc sky2 input_polldev mbp_nvidia_bl pcspkr crc_itu_t
joydev iTCO_wdt iTCO_vendor_support appletouch processor battery thermal ac ata_generic pata_acpi
uhci_hcd ohci_hcd ehci_hcd i915 dkms_kms_helper drm i2c_algo_bit button i2c_core video output
[last unloaded: cpufreq_ondemand]
Pid: 0, comm: swapper Tainted: P       D     2.6.35-20vl6 #1
Call Trace:
[<c102d3a6>] __schedule_bug+0x1/0x56
[<c1359495>] schedule+0x83/0x4b9
[<f7d7b78e>] ? drm_crtc_helper_set_config+0x84/0x65b [drm_kms_helper]
[<c135999d>] _cond_resched+0x2e/0x47
[<c10c8b80>] __kmalloc+0xa8/0x145
[<f7d7b78e>] drm_crtc_helper_set_config+0x94/0x65b [drm_kms_helper]
[<c1005e37>] ?show_trace_log_lvl+0x39/0x43
[<f7d7aae8>] drm_fb_helper_force_kernel_mode+0x2b/0x5b [drm_kms_helper]
[<f7d7ab62>] drm_fb_helper_panic+0x17/0x1d [drm_kms_helper]
[<c104b6c3>] notifier_call_chain+0x14/0x16
[<c1359289>] atomic_notifier_call_chain+0x14/0x16
[<c1359289>] panic+0x73/0xbc
[<c1005c17>] oops_end+0x7a/0x88
[<c102088f>] no_context+0x115/0x11f
[<c102098a>] __bad_area_nosemaphore+0xf1/0xf9
[<c1020af0>] ? do_page_fault+0x0/0x2eb
[<c10209a4>] bad_area_nosemaphore+0x12/0x15
[<c1020c32>] d0_page_fault+0x142/0x2eb
[<c10080fd>] ?sched_clock+0x9/0xd
[<c104bfb3>] ?sched_clock_local+0x17/0x11e
[<c1020af0>] ?do_page_fault_0x0/0x2eb
[<c135b9b6>] error_code+0x66/0x6c
[<c104007b>] ? ignore_signals+0x21/0x27
[<c1020af0>] ?do_page_fault+0x0/0x2eb
[<f91a3e0d>] ?rtMpNotificationLinuxOnCurrentCPU+0xa/0x9d [vboxdrv]
[<f91a3a51>] rtmpLinuxWrapper+0x22/0x27 [vboxdrv]
[<c10572e7>] generic_smp_call_function_single_interrupt+0xa0/0xba
[<c1017e29>] smp_call_function_single_interrupt+0xa0/0xba
[<c135b546>] call_function_single_interuupt+0x2a/0x30
[<c104007b>] ? ignore_signals+0x21/0x27
[<f86fa1ea>] ? acpi_idle_enter_bm+0x24d/0x289 [processor]
[<c12b7475>] cpuidle_idle_call+0x73/0xce
[<c10023a3>] cpu_idle+0x4e/0x67
[<c1357280>] start_secondary+0x1a8/0x1ad

I'd been looking for the solution to the issue, and finally I found this was it:


The fix itself was very trivial:

--- src/VBox/Runtime/r0drv/linux/mpnotification-r0drv-linux.c	(revision 73209)
+++ src/VBox/Runtime/r0drv/linux/mpnotification-r0drv-linux.c	(revision 73210)
@@ -77,7 +77,7 @@
  * @param pvUser2           The notification event.
  * @remarks This can be invoked in interrupt context.
  */
-static void rtMpNotificationLinuxOnCurrentCpu(RTCPUID idCpu, void *pvUser1, void *pvUser2)
+static DECLCALLBACK(void) rtMpNotificationLinuxOnCurrentCpu(RTCPUID idCpu, void *pvUser1, void *pvUser2)
 {
     unsigned long ulNativeEvent = *(unsigned long *)pvUser2;
     NOREF(pvUser1);

Now the fix has been included on VirtualBox-4.1.0-2vl7 (VineSeed).

Same fix for Vine Linux 6 (more precisely, packages for VinePlus/6) will be uploaded as 4.1.0-2vl6 as well shortly.









Pages

Powered by Movable Type 4.23-en

About this Entry

This page contains a single entry by Shaolin published on August 9, 2011 1:26 PM.

Installing Vine Linux 6.0 beta2 on ZOTAC IONITX-P-E was the previous entry in this blog.

Installing Vine Linux on MacBook Air (Middle 2011) is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.