linux-mips
[Top] [All Lists]

Re: Question about signal syscalls !

To: Franck Bui-Huu <vagabon.xyz@gmail.com>
Subject: Re: Question about signal syscalls !
From: David Daney <ddaney@avtrex.com>
Date: Fri, 02 Feb 2007 12:41:07 -0800
Cc: Ralf Baechle <ralf@linux-mips.org>, linux-mips <linux-mips@linux-mips.org>
In-reply-to: <cda58cb80702021158n42bdb5fbi6cca4f2c8dff6782@mail.gmail.com>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <cda58cb80702010243y4a36026i6945f2a5cd3791d0@mail.gmail.com> <20070201135734.GB12728@linux-mips.org> <cda58cb80702010654w74527a34k4ed229b499b8f9b2@mail.gmail.com> <45C21CFE.9060804@avtrex.com> <cda58cb80702020055t6eb2578fn5d1e4370e9ebda08@mail.gmail.com> <45C3611D.7000702@avtrex.com> <cda58cb80702020836t54ab54bam1b83dd7c1dacb4d8@mail.gmail.com> <45C36D46.5040409@avtrex.com> <cda58cb80702021158n42bdb5fbi6cca4f2c8dff6782@mail.gmail.com>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Thunderbird 1.5.0.9 (X11/20061219)
Franck Bui-Huu wrote:
On 2/2/07, David Daney <ddaney@avtrex.com> wrote:
Franck Bui-Huu wrote:
> David Daney wrote:
>> The entire user context (i.e. the value of *all* registers) is replaced
>> with the values stored in the sigcontext structure on the caller's
>> stack.  If all registers are being restored from the sigcontext, then
>> there is no need to save the current values of the registers, because
>> they will never be used.
>>
>

Again, why do you think that all values of the registers are saved on
sys_sigreturn() ?

I don't think that.  I don't think I ever said that.



> And now I'm starting to think that we don't need to save static regs in
> setup_sigcontext() either...
>
All registers *must* be saved in the sigcontext.  That is part of the
contract the kernel has with user code.


I'm just talking about _static_ registers which are s0-s7...

On return from an asynchronous signal, *all* registers must contain the
same values they had before the process was interrupted.


yes I agree and I've never said the contrary.

I thought you were suggesting not saving s0-s7. If you don't save them, you cannot restore them. And they have to be restored from the sigcontext in the user's address space. This allows user space signal handlers to emulate trapping instructions, and the like.

David Daney


<Prev in Thread] Current Thread [Next in Thread>