> Now comes the amazing (to me) part: I split the above statement up into:
>
> temp = mk_pte_phys(__pa(vaddr), PAGE_KERNEL);
> *pte = temp;
this is almost impossible (except some really weird compiler bug) - unless
the mem_map address is invalid. This could happen if your kernel image is
*just* too large. Do things improve if you disable eg. ext2fs support (i
know, but should be enough to boot). Or if that part is not mapped
correctly (which does happen sometimes as well).
and are you sure it crashes there? [are you putting delays between your
printouts?]
> where temp is declared "volatile pte_t". I inserted test-prints between the
> above two lines. Accoding to that, the _first_ line , i.e. the evaluation of the
> mk_pte_phys() macro is causing the crash!
it accesses mem_map variable, which is near to the end of the kernel
image, so it could indeed something of that sort. An uncompressed kernel
image (including the data area) must not be bigger than 4MB (IIRC).
Ingo
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/