Re: [PATCH 2/4] x86&x86-64 support for sys_indirect

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: Ulrich Drepper <drepper@...>
Cc: Linux Kernel Mailing List <linux-kernel@...>, Andrew Morton <akpm@...>, Ingo Molnar <mingo@...>, Thomas Gleixner <tglx@...>
Date: Thursday, November 15, 2007 - 1:02 pm

[ Ingo, Thomas - see the whole series on linux-kernel ]

On Thu, 15 Nov 2007, Ulrich Drepper wrote:

The thing is, not all system calls can do this.

Some system calls are magic, and don't just take the arguments in 
registers: they also care about the actual stack pointer and the whole 
pt_regs struct when returning to user mode. 

So this does need more infrastructure: some way of marking which system 
calls cannot be executed indirectly.

The magic system calls are things like:

 - sys_iopl() - this one changes the eflags value restored on iret
 - execve/clone/vfork() - need direct access to pt_regs
 - vm86() - does magic with the stack, cares about pt_regs
 - sigreturn - magic pt_regs accesses again

and there may be others I have forgotten about.

Calling these system calls from C code will just corrupt the kernel stack, 
and is a big big no-no.

		Linus
-
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH 2/4] x86&amp;x86-64 support for sys_indirect, Ulrich Drepper, (Thu Nov 15, 12:41 pm)
Re: [PATCH 2/4] x86&x86-64 support for sys_indirect, Linus Torvalds, (Thu Nov 15, 1:02 pm)