Hello Russell,

It's an honor to mail you. I'm writing this mail to ask you about the
OABI_COMPAT feature in do_signal() function.
After freezing and thawing user processes for Suspend-To-Ram, I found
that some user processes(e.g. daemon processes) make prefetch abort
continuously. And finally, I found that the following code in
do_signal() was the root cause:

        /* arch/arm/kernel/signal.c: near 677 line */

        put_user(regs->ARM_pc, &usp[0]);
        /* swi __NR_restart_syscall */
        put_user(0xef000000 | swival, &usp[1]);
        /* ldr  pc, [sp], #12 */
        put_user(0xe49df00c, &usp[2]);

It seems that this code makes processes execute in stack area to
re-enter kernel area. However, when PC is in stack area, I saw that it
*continuously* make data abort exception. (Process stack area is in
general non executable area)

I'm using OMAP3430 board whose core is Cotex-A8 and with enabling both
CONFIG_AEABI and CONFIG_OABI_COMPAT.

Can I ask your comments or idea about this problem?

Regards,
Kyuwon (규원)
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to