The ethernet device does not come up correctly on a 64 MIPS target with a 64 bit kernel.

I narrowed it down a bit, so I thought I might mention it.

If I add to the kernel the line:
   printk("\nTest ~0UL == %lx\n", (~0UL));

It will print correctly on the real HW:
Test ~0UL == ffffffffffffffff

In qemu-system-mips64 it will only print:
Test ~0UL ==

The ethernet fails due to the failure of the computing of the test kcalloc() found in slab.h.
if (n != 0 && size > ULONG_MAX / n)

Where n == 16, size == 8, and ULONG_MAX == (~0UL). I suspect some low level debugging of which op code translation is at fault would be next...

Jason.


Reply via email to