Re: [PATCH 4/5 v3] ftrace/x86_32: Clean up ftrace_regs_caller
From: Linus Torvalds
Date: Thu Mar 16 2017 - 14:21:15 EST
On Thu, Mar 16, 2017 at 11:09 AM, Steven Rostedt <rostedt@xxxxxxxxxxx> wrote:
> +
> + /* Since we don't care about cs, move flags there to simplify return */
> + movl 14*4(%esp), %eax
> + movl %eax, 13*4(%esp)
> +
> + /* Move return ip back to its original location */
> + movl 12*4(%esp), %eax
> + movl %eax, 14*4(%esp)
Could this perhaps be removed entirely?
The return code could instead do:
... restore all the normal registers ..
# Now restore flags that is under the return address and our
fake __KERNEL_CS
pushl 8(%esp)
popfl
# and then return, skipping __KERNEL_CS and %flasg
ret $8
which is smaller and simpler than (again) playing games with stack entries.
Linus