diff options
author | 2024-01-30 11:59:40 +0100 | |
---|---|---|
committer | 2024-04-09 18:15:03 +0200 | |
commit | c3a3cb5c3d893d7ca75c773ddd107832f13e7b57 (patch) | |
tree | 88400bf09b2c9349b7259eb0b3b5ee0a4bc6b02e | |
parent | x86/alternatives: Get rid of __optimize_nops() (diff) | |
download | wireguard-linux-c3a3cb5c3d893d7ca75c773ddd107832f13e7b57.tar.xz wireguard-linux-c3a3cb5c3d893d7ca75c773ddd107832f13e7b57.zip |
x86/alternatives: Optimize optimize_nops()
Return early if NOPs have already been optimized.
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Link: https://lore.kernel.org/r/20240130105941.19707-4-bp@alien8.de
Diffstat (limited to '')
-rw-r--r-- | arch/x86/kernel/alternative.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/x86/kernel/alternative.c b/arch/x86/kernel/alternative.c index 4b3378c71518..67dd7c371d28 100644 --- a/arch/x86/kernel/alternative.c +++ b/arch/x86/kernel/alternative.c @@ -233,6 +233,10 @@ static void noinline optimize_nops(const u8 * const instr, u8 *buf, size_t len) if (insn_is_nop(&insn)) { int nop = i; + /* Has the NOP already been optimized? */ + if (i + insn.length == len) + return; + next = skip_nops(buf, next, len); add_nop(buf + nop, next - nop); |