I traced the code to the function __alloc_page() in the file mm/page_alloc.c, and found the system called "wakeup_kswapd()". But at that time, the kswapd process pointer is a NULL pointer and the wakeup-related codes don't check the pointer is NULL or not, so the system was stopped because of dereferencing the null pointer.
I'm working on a MIPS SEAD-2 board using Linux kernel 2.4.3 MIPS
distrinution.
Anybody has some ideas about the problem? Or are there other
convenient methods to allocate DMA'able memory?
Thanks,
-- Shuanglin Wang Atmel Multimedia & Communications 3800 Gateway Centre, Suite 311 Morrisville, NC 27560