diff options
| author | Linus Torvalds <[email protected]> | 2023-07-14 20:19:25 -0700 | 
|---|---|---|
| committer | Linus Torvalds <[email protected]> | 2023-07-14 20:19:25 -0700 | 
| commit | b6e6cc1f78c772e952495b7416c9ac9029f9390c (patch) | |
| tree | f43d33a19e988dcec55b8ce4597e165deb1459d7 /drivers/gpu/drm/drm_client.c | |
| parent | be522ac7cdcc1b7dd19fa348205363041ab65a98 (diff) | |
| parent | 535d0ae39185a266536a1e97ff9a8956d7fbb9df (diff) | |
Merge tag 'x86_urgent_for_6.5_rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 CFI fixes from Peter Zijlstra:
 "Fix kCFI/FineIBT weaknesses
  The primary bug Alyssa noticed was that with FineIBT enabled function
  prologues have a spurious ENDBR instruction:
    __cfi_foo:
	endbr64
	subl	$hash, %r10d
	jz	1f
	ud2
	nop
    1:
    foo:
	endbr64 <--- *sadface*
  This means that any indirect call that fails to target the __cfi
  symbol and instead targets (the regular old) foo+0, will succeed due
  to that second ENDBR.
  Fixing this led to the discovery of a single indirect call that was
  still doing this: ret_from_fork(). Since that's an assembly stub the
  compiler would not generate the proper kCFI indirect call magic and it
  would not get patched.
  Brian came up with the most comprehensive fix -- convert the thing to
  C with only a very thin asm wrapper. This ensures the kernel thread
  boostrap is a proper kCFI call.
  While discussing all this, Kees noted that kCFI hashes could/should be
  poisoned to seal all functions whose address is never taken, further
  limiting the valid kCFI targets -- much like we already do for IBT.
  So what was a 'simple' observation and fix cascaded into a bunch of
  inter-related CFI infrastructure fixes"
* tag 'x86_urgent_for_6.5_rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86/cfi: Only define poison_cfi() if CONFIG_X86_KERNEL_IBT=y
  x86/fineibt: Poison ENDBR at +0
  x86: Rewrite ret_from_fork() in C
  x86/32: Remove schedule_tail_wrapper()
  x86/cfi: Extend ENDBR sealing to kCFI
  x86/alternative: Rename apply_ibt_endbr()
  x86/cfi: Extend {JMP,CAKK}_NOSPEC comment
Diffstat (limited to 'drivers/gpu/drm/drm_client.c')
0 files changed, 0 insertions, 0 deletions