Kevin D. Kissell wrote:
Geert Uytterhoeven wrote:
And yes, I know that MIPS64 builds *should* have data type equivalence
for longs and pointers, but this behavior just smells like a data
typing mismatch problem, at some level.
You mean the test for initrd_start being non-zero? Is your
initramfs really at address zero?
I'm not set up to verify this, but I have a nagging suspicion that a
big-endian 64-bit kernel build could store an initrd_start address with
32 or fewer significant bits (i.e. it starts in the first 4GB) as a
64-bit pointer, but that the code in initramfs.c is testing the value
as a 32-bit scalar type. I don't know about lmo but in kernel.org
2.6.29, it's declared in include/linux/initrd.h as an extern unsigned
long, not a void *.