[<prev] [next>] [day] [month] [year] [list]
Message-Id: <20170727160205.a20b1af3d5e88d493993dbf2@kernel.org>
Date: Thu, 27 Jul 2017 16:02:05 +0900
From: Masami Hiramatsu <mhiramat@...nel.org>
To: Denys Vlasenko <vda.linux@...glemail.com>
Cc: Ingo Molnar <mingo@...nel.org>, linux-kernel@...r.kernel.org,
x86@...nel.org
Subject: Re: Doubled "opcode != 0x9a" check
On Wed, 26 Jul 2017 21:55:34 +0200
Denys Vlasenko <vda.linux@...glemail.com> wrote:
> commit bd0b90676c30fe640e7ead919b3e38846ac88ab7
> Author: Masami Hiramatsu <mhiramat@...nel.org>
> Date: Wed Mar 29 13:56:56 2017 +0900
>
> kprobes/x86: Fix kprobe-booster not to boost far call instructions
>
> Fix the kprobe-booster not to boost far call instruction,
> because a call may store the address in the single-step
> execution buffer to the stack, which should be modified
> after single stepping.
>
> Currently, this instruction will be filtered as not
> boostable in resume_execution(), so this is not a
> critical issue.
> ... case 0x70:
> return 0; /* can't boost conditional jump */
> + case 0x90:
> + return opcode != 0x9a; /* can't boost call far */
> case 0xc0:
>
>
> Masami. You missed the fact that later, there is this:
Oops, right. Hmm, it should be reverted.
Ingo, could you revert this commit?
Thank you!
>
> default:
> /* segment override prefixes are boostable */
> if (opcode == 0x26 || opcode == 0x36 || opcode == 0x3e)
> goto retry; /* prefixes */
> /* CS override prefix and call are not boostable */
> return (opcode != 0x2e && opcode != 0x9a);
> ^^^^^^^^^^^^^^^^
--
Masami Hiramatsu <mhiramat@...nel.org>
Powered by blists - more mailing lists