This problem is as far as I have been able to test only persistent to the 2.6.9-r1 kernel. I tested kernel 2.6.7-r13 and it didn't crash.I had to switch to ivman since supermount is not maintained in the 2.6.9er series (this is actually a good idea since supermount was not cleanly enough designed and didn't work too well) but while experimenting with ivman I discovored a possible bug that seems to be in the kernel because it didn't show with the 2.6.7er kernel. The result of unplugging the usbstick while dbus is up and running is an Oops with a kerneldump and kernelpanic. By the way, it doesn't make a difference wheter the kernel is preemptible or not. I have tried both with the same result. Reproducible: Always Steps to Reproduce: 1.dbus hald and ivman must be in the default runlevel and all must have been started on boot 2. Kernel must be the gentoo 2.6.9-r1er kernel 3. You gotta have a usbstick (I got a yakumo 124 usbstick identifying himself as uba under udev) that you unplug while the system is allready started. It doesn't make a difference wheter you are in a virtual console or working with X. Actual Results: Oops; kerneldump; kernelpanic; Here is the coredump: (I could not copy and paste since, well ... the system was screwed up so I wrote it down on paper and will type it here. I hope there are no typos etc. however!) Oops: 0000 [#1] Modules linked in: rfcomm l2cap snd_intel8x0 snd_ac97 snd_mpu401_uart snd_rawmidi snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device snd_pcm_oss snd_pcm snd_timer snd_page_alloc snd_mixer_oss snd soundcore hci_usb bluetooth sd_mod ohci_hcd usb_storage scsi_mod i2c_isa w83627hf i2c_sensor i2c_core psmouse nvidia CPU: 0 EIP: 0060:[<c02b8567>] Tainted:P VLI EFLAGS: 00010006 (2.6.9-gentoo-r1) EIP: is at usb_unlink_urb+0x27/0x60 eax:61697265 ebx:00000286 ecx:ec72c400 edx:ec72c504 esi:ec72c560 edi:c0463fcc ebp:c0463fcc esp:c0463fa8 ds:007b es:007b ss:0068 Process swapper(pid:0,threadinfo=c0463000 task=c039ba80) stack: c0463fcc c0238862 c028f28b ec72c504 c028f270 c0121370 ec72c400 0000000a c0428800 ed7d9f24 eecb9ec8 c047c224 00000001 c047a6a8 0000000a c0428800 c011d73d c047a6a8 c042ff70 00000046 00000000 c0108d03 Call Trace: [<c0238862>] [<c028f28b>] [<c028f270>] [<c0121370>] [<c011d73d>] [<c0108d03>] ================================ [<c0108675>] [<c01064d8>] [<c0103b13>] [<c0103b7c>] [<c0430791>] [<c04303b0>] Code: 00 00 00 00 83 ec 08 b8 ea ff ff ff 8b 54 24 0c 85 d2 74 23 f6 42 28 10 74 31 8b 42 1c 85 c0 74 11 8b 80 c0 00 00 00 85 c0 74 07 <8b> 40 24 85 c0 75 09 b8 ed ff ff ff 83 c4 08 c3 c7 44 24 04 98 <0> Kernel panic - now syncing: Fatal exception in interrupt Expected Results: The /dev/uba entries in /dev should have dissapeard and probably a usb-disconnect event should be triggered off.In other words, nothing special!
This is fixed in newer kernels from upstream. For now, just use the usb-storage driver, not ub.