Hi Abu... I check the output together with your C source code again. According to this: if(poarray==NULL) { printf("\nError in allocating\n"); exit(1); } and this: if(p2 == NULL) { printf("OOM PROBLEM"); } I should see those messages on the output log, but I find none. So IMHO the failure of memory allocation didn't happen when you called malloc()....however... I see some message like these: YoKu: PXA AC97 Driver loaded (5-Nov-05) insmod: page allocation failure. order:5, mode:0xd0 Right after that, I found this: DMA free:944kB min:512kB low:640kB high:768kB active:6444kB inactive:1116kB present:16384kB pages_scanned:0 all_unreclaimable? no lowmem_reserve[]: 0 0 0 Normal free:0kB min:0kB low:0kB high:0kB active:0kB inactive:0kB present:0kB pages_scanned:0 all_unreclaimable? no lowmem_reserve[]: 0 0 0 HighMem free:0kB min:128kB low:160kB high:192kB active:0kB inactive:0kB present:0kB pages_scanned:0 all_unreclaimable? no lowmem_reserve[]: 0 0 0 DMA: 106*4kB 11*8kB 5*16kB 3*32kB 2*64kB 1*128kB 0*256kB 0*512kB 0*1024kB = 944kB So, I am thinking, could it be caused by such a kernel module asking for bigger memory chunks than currently available? Or it simply asks memory block other than DMA zone? I am sorry if I can't help too much, it is up to you to use my advice to pinpoint the real problem. regards, Mulyadi -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/