]> git.ipfire.org Git - thirdparty/linux.git/commit
x86/alternative: Relax text_poke_bp() constraint
authorPeter Zijlstra <peterz@infradead.org>
Sat, 4 Dec 2021 13:43:43 +0000 (14:43 +0100)
committerBorislav Petkov <bp@suse.de>
Thu, 9 Dec 2021 10:04:50 +0000 (11:04 +0100)
commit26c44b776dba4ac692a0bf5a3836feb8a63fea6b
treeb8a2014f125f8adc56d5c9b01b6e9fd1837daab3
parent1cc1e4c8aab4213bd4e6353dec2620476a233d6d
x86/alternative: Relax text_poke_bp() constraint

Currently, text_poke_bp() is very strict to only allow patching a
single instruction; however with straight-line-speculation it will be
required to patch: ret; int3, which is two instructions.

As such, relax the constraints a little to allow int3 padding for all
instructions that do not imply the execution of the next instruction,
ie: RET, JMP.d8 and JMP.d32.

While there, rename the text_poke_loc::rel32 field to ::disp.

Note: this fills up the text_poke_loc structure which is now a round
  16 bytes big.

  [ bp: Put comments ontop instead of on the side. ]

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Borislav Petkov <bp@suse.de>
Link: https://lore.kernel.org/r/20211204134908.082342723@infradead.org
arch/x86/kernel/alternative.c