m68k 54418 fails to execute user space

Michael Schmitz schmitzmic at gmail.com
Tue Jun 25 18:56:11 PDT 2024


Jean-Michel,

On 24/06/24 20:56, Jean-Michel Hautbois wrote:
>
> When I printk the do_page_fault first debug, I get for the first call 
> to ls:
> bash-5.2# ls
> [   14.700000] do page fault:
> [   14.700000] regs->sr=0x0, regs->pc=0x70069ee6, address=0x70069ee6, 
> 0, (ptrval)

Page not present, read fault. Please disable obfuscation of kernel 
pointer addresses by printk. Maybe also disable address space 
randomization while debugging this.

> This call works almost fine (I still have the assert failed: 
> folio->private != NULL issue).
>
> And when I call it a second time, I get:
> bash-5.2# ls
> [   19.820000] do page fault:
> [   19.820000] regs->sr=0x0, regs->pc=0x6011d65a, address=0x700e2004, 
> 2, (ptrval)

Page not present, write fault.

It would be helpful if you could get a dump of /proc/1/maps before the 
execve() syscall in your helloworld init replacement. That might confirm 
all these addresses are legit (assuming mappings survive across 
execve(), that is), and what they correspond to.

>
> The address corresponds to the defined zone ELF_ET_DYN_BASE as I set 
> it to 0x70000000.
>
> regs->pc is not the same as the address. It might be unrelevant, but 
> any help is appreciated to understand the process behind :-).
>
> I keep digging, and I am in the asm part which fears me a bit !

I don't see that you'd need to look at any asm code here.

Cheers,

     Michael

>
> Thanks !
> JM



More information about the linux-mtd mailing list