All,

    I'm looking at what happens when the/a floating point kernel
library signals FPE.   Looks to me like you get a ret_from_sys_call()
call that first checks to see if there is a signal pending.   If there is
one, then it does a reschedule.   I think that this causes the/a signal
handler to be called in the user's context.

    Trouble is, I started off looking at 2.4.1 and things have
changed somewhat in 2.4.5.   The mechanisms look the same (I
think).  Are they?

    What I really need to know is - where does the signal return
to when it completes?   From my reading of the code, it looks very
like the signal handler alters the  PC (to point at the registered signal
handler code) but leaves the lr set to the instruction as per the fault
(usually the next instruction).   This implies that the signal handler
does not return through the kernel - instead it returns to the
program itself.

    I know that signal handlers can be recursive (tried it) so not going
back through the kernel makes sense to me...

Dave
----------------------------------------------------------------------
David A Rusling   Consulting Engineer
    ARM Limited
    Liberty House,
    Moorbridge Road,
    Maidenhead, SL6 8LT

    Tel: UK-(0)1628-427754
    Fax: UK-(0)1628-780551
    e-mail: [EMAIL PROTECTED]
----------------------------------------------------------------------



_______________________________________________
http://lists.arm.linux.org.uk/mailman/listinfo/linux-arm
Please visit the above address for information on this list.

Reply via email to