pcmcia oops (with ksymoops output this time)
With oops tracing in IRC, we narrowed the problem in 2.4.x down to, serial_cs and ide_cs drivers, and other 16-bit pcmcia drivers possibly, call their release functions from a timer when ejected. The per-subsystem release functions then proceed to do all manner of in-process-context type work, including calling devfs_unregister, whose call path can eventually cause a schedule()
Suggested fix, call schedule_task() in each timer-based release function, to queue a task in process context to do the actual work. This is how 32-bit cardbus gets such things done...
Jeff