Merge tag 'x86-urgent-2020-10-27' of git://git.kernel.org/pub/scm/linux/kernel/git...
authorLinus Torvalds <torvalds@linux-foundation.org>
Tue, 27 Oct 2020 21:39:29 +0000 (14:39 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 27 Oct 2020 21:39:29 +0000 (14:39 -0700)
Pull x86 fixes from Thomas Gleixner:
 "A couple of x86 fixes which missed rc1 due to my stupidity:

   - Drop lazy TLB mode before switching to the temporary address space
     for text patching.

     text_poke() switches to the temporary mm which clears the lazy mode
     and restores the original mm afterwards. Due to clearing lazy mode
     this might restore a already dead mm if exit_mmap() runs in
     parallel on another CPU.

   - Document the x32 syscall design fail vs. syscall numbers 512-547
     properly.

   - Fix the ORC unwinder to handle the inactive task frame correctly.

     This was unearthed due to the slightly different code generation of
     gcc-10.

   - Use an up to date screen_info for the boot params of kexec instead
     of the possibly stale and invalid version which happened to be
     valid when the kexec kernel was loaded"

* tag 'x86-urgent-2020-10-27' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86/alternative: Don't call text_poke() in lazy TLB mode
  x86/syscalls: Document the fact that syscalls 512-547 are a legacy mistake
  x86/unwind/orc: Fix inactive tasks with stack pointer in %sp on GCC 10 compiled kernels
  hyperv_fb: Update screen_info after removing old framebuffer
  x86/kexec: Use up-to-dated screen_info copy to fill boot params

1  2 
arch/x86/entry/syscalls/syscall_64.tbl
arch/x86/kernel/alternative.c
arch/x86/kernel/unwind_orc.c

  437   common  openat2                 sys_openat2
  438   common  pidfd_getfd             sys_pidfd_getfd
  439   common  faccessat2              sys_faccessat2
 +440   common  process_madvise         sys_process_madvise
  
  #
- # x32-specific system call numbers start at 512 to avoid cache impact
- # for native 64-bit operation. The __x32_compat_sys stubs are created
- # on-the-fly for compat_sys_*() compatibility system calls if X86_X32
- # is defined.
+ # Due to a historical design error, certain syscalls are numbered differently
+ # in x32 as compared to native x86_64.  These syscalls have numbers 512-547.
+ # Do not add new syscalls to this range.  Numbers 548 and above are available
+ # for non-x32 use.
  #
  512   x32     rt_sigaction            compat_sys_rt_sigaction
  513   x32     rt_sigreturn            compat_sys_x32_rt_sigreturn
Simple merge
Simple merge