I've been porting the MIPS kernel to our system-on-chip hardware
(4KEc-based) and have encountered a problem with a pre-emptible patch. The
original kernel was the 2.4.19 from the CVS server, onto which I applied
Robert Love's preemptible patch (preempt-kernel-rml-2.4.19-2.patch), plus
the addition of a #include to softirq.h, and a missing definition for
release_irqlock() in hardirq.h.
I've found that when CONFIG_PREEMPT is set, it no longer loads the
(non-compressed) initrd correctly - about 1.8MB through loading (2MB total)
I get a Data Bus Error. A typical call trace shown by the oops is shown
below, and looks a little 'confused' to me, so I'm thinking there may be
some stack corruption going on?
Address Function
801174fc tasklet_hi_action
801af0a4 printChipInfo
801af0a4 printChipInfo
8013bf50 sys_write
801089c4 stack_done
80108b28 reschedule
801133d0 _call_console_drivers
80113ad8 release_console_sem
80113848 printk
801506b8 sys_ioctl
801af0f8 printChipInfo
8014ccd4 sys_mkdir
801af0a4 printChipInfo
80100470 init
80100470 init
80100840 prepare_namespace
80100470 init
8010049c init
8010352c kernel_thread
80100420 _stext
8010351c kernel_thread
I wondered if anyone had any thoughts about what might be causing this, or
had seen this occuring before - were there perhaps some changes made just
after this point in time (now in the 2.5.x kernel)?
Thanks.
|