[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20201112113939.GU2651@hirez.programming.kicks-ass.net>
Date: Thu, 12 Nov 2020 12:39:39 +0100
From: Peter Zijlstra <peterz@...radead.org>
To: Steven Rostedt <rostedt@...dmis.org>
Cc: linux-kernel@...r.kernel.org, Ingo Molnar <mingo@...nel.org>,
Andrew Morton <akpm@...ux-foundation.org>,
Miroslav Benes <mbenes@...e.cz>,
Thomas Gleixner <tglx@...utronix.de>,
Masami Hiramatsu <mhiramat@...nel.org>,
Josh Poimboeuf <jpoimboe@...hat.com>,
Jiri Kosina <jikos@...nel.org>, live-patching@...r.kernel.org
Subject: Re: [PATCH 3/3 v5] livepatch: Use the default ftrace_ops instead of
REGS when ARGS is available
On Thu, Nov 12, 2020 at 09:21:44AM +0100, Peter Zijlstra wrote:
> Also, do you want something like:
>
> unsigned long ftrace_regs_get_register(struct ftrace_regs *regs, unsigned int offset)
> {
I forgot the full regs case:
if (regs->regs.cs)
return regs_get_register(regs->regs, offset);
> switch (offset / sizeof(long)) {
> case 4: /* RBP */
>
> case 8: /* R9 */
> case 9: /* R8 */
> case 10: /* RAX */
> case 11: /* RCX */
> case 12: /* RDX */
> case 13: /* RSI */
> case 14: /* RDI */
> case 15: /* ORIG_RAX */
> case 16: /* RIP */
> return *(unsigned long *)regs->regs + offset;
>
> default:
> WARN_ON_ONCE(1);
> }
> return 0;
> }
Powered by blists - more mailing lists