It appears to be in maximum_alignment(): static unsigned long maximum_alignment(struct elf_phdr *cmds, int nr) { ... for (i = 0; i < nr; i++) { if (cmds[i].p_type == PT_LOAD) { which is: ldr w2, [x0] //, MEM[(unsigned int *)_585] It should traverse all prg headers of the elf until ffff8000157009c0 (x5), but apparently, not even ffff8000156dc028 (x0) is mapped. Bah, that means there are 2677 program headers left to be processed. So apparently program header count is corrupted. And modules don't have program headers. So it's not the module loading that failed -- it's modprobe proper. I missed the stack trace at first. It would be nice to see readelf -a of modprobe.