Dear uClinux Developers/Users,

I developed a linux character device driver in order to access an external memory chip sitting on the flexbus. The data transfers are done via the Multichannel DMA Controller. From time to time (it's not really deterministic) my board hangs up. Via BDM interface I can still access the target and it show's me the following backtrace:

---snip---

#0 0x03035856 in cache_alloc_refill (cachep=0x31cf2c0, flags=208) at list.h:172
#1  0x03035d38 in __kmalloc (size=52228800, flags=208) at mm/slab.c:3085

---snap---

First, I don't understand the size in the kmalloc() call. The size gets definitely not provided by any of my own code. Second, what does the cache_alloc_refill() call mean? I have the feeling that it might have something to do with memory fragmentation as I am allocating quite a lot of DMA buffers dynamically. However, the buffers are always multiples of one specific size so I guess this shouldn't be a problem.

I am working with uClinux-dist-20070130 (linux-2.6.19-uc0) on a custom board featuring an MCF5484 Coldfire processor.


Thanks for any comments on this,

Markus


_______________________________________________
uClinux-dev mailing list
[email protected]
http://mailman.uclinux.org/mailman/listinfo/uclinux-dev
This message was resent by [email protected]
To unsubscribe see:
http://mailman.uclinux.org/mailman/options/uclinux-dev

Reply via email to