[parisc-linux] Making the stack executable
08 Aug 2000 14:30:20 -0400
It turns out that my mysterious lockups in the rt_sigreturn path were
due to the fact that our stack pages are not executable.
They are being mapped with PAGE_COPY protection in exec.c, like every
other architecture does, but unlike every other architecture, our
PAGE_COPY did not include execute permissions.
Sorry folks but we do need trampolines.
What is more disturbing is that without _PAGE_EXEC set in PAGE_COPY,
attempting to execute code on the stack just hangs the machine solid!
(without printing out any error messages or register dumps)
The following program should demonstrate this problem:
ldil L%0xebe0c002,%r20 /* bv,n %r0(%r31) */
Is this some kind of issue with our ITLB miss handlers?
I'll check in the change to <asm/pgtable.h> shortly, but I'd like
someone to also look into the problem above (without the change).
Linuxcare. Support for the revolution.