Messages in this thread | | | Date | Sat, 30 Nov 2002 11:15:53 +0100 | From | Manfred Spraul <> | Subject | Re: ioremap returns NULL |
| |
>>[...] >> For each card I ioremap() 2 * 16 MB of PCI memory space. >> It succeeds for the 1st card but for the 2nd card I get NULL >> as result. This means I cannot use the 2nd card... > >I think you are screwed. The ioremap grabs from vmalloc area, >which is something like 64MB on i386. The best option is >to rewrite the driver to allocate less, and perhaps use >fewer modules.
The size of the vmalloc area is 128 MB, 96 for highmem kernels. Either: - compile a kernel without 4G support, then you have 128 MB - increase PKMAP_BASE (include/asm-i386/highmem.h) to 0xff800000 (it's 0xfe000000 in 2.5.50) Right now 32 MB virtual memory are reserved for kmap, but only 4 MB are used. Changing PKMAP_BASE gives you 24 MB additional vmalloc space for free. - increase __VMALLOC_RESERVE.
-- Manfred
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |