On Mon, Aug 22, 2011 at 6:13 PM, Al Viro <v...@zeniv.linux.org.uk> wrote: > > *UGH*. OK, > 1) I'm an idiot; int_ret_from_sys_call does *not* usually step on > rbp (it's callee-saved). So normally ebp is left as is on the way out, > which is why we don't see stuff getting buggered left, right and center.
Check. And the system call restart should actually work fine too, because at syscall entry we save %ebp *both* in the slot for ebp and ecx when we enter the first time. So the second time, we'll re-load the third argument from ebp again, but that's fine - it's still going to be the right value. Yes? No? However, I note that the cstar entrypont has a comment about not saving ebp: * %ebp Arg2 [note: not saved in the stack frame, should not be touched] which sounds odd. Why don't we save it? If we take a signal handler there, don't we want %ebp on the kernel stack in pt_regs, in order to do everything right? Now I'm *really* confused. Linus ------------------------------------------------------------------------------ Get a FREE DOWNLOAD! and learn more about uberSVN rich system, user administration capabilities and model configuration. Take the hassle out of deploying and managing Subversion and the tools developers use with it. http://p.sf.net/sfu/wandisco-d2d-2 _______________________________________________ User-mode-linux-devel mailing list User-mode-linux-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel