• Linus Torvalds's avatar
    Merge tag 'x86-urgent-2020-05-10' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · c14cab26
    Linus Torvalds authored
    Pull x86 fixes from Thomas Gleixner:
     "A set of fixes for x86:
    
       - Ensure that direct mapping alias is always flushed when changing
         page attributes. The optimization for small ranges failed to do so
         when the virtual address was in the vmalloc or module space.
    
       - Unbreak the trace event registration for syscalls without arguments
         caused by the refactoring of the SYSCALL_DEFINE0() macro.
    
       - Move the printk in the TSC deadline timer code to a place where it
         is guaranteed to only be called once during boot and cannot be
         rearmed by clearing warn_once after boot. If it's invoked post boot
         then lockdep rightfully complains about a potential deadlock as the
         calling context is different.
    
       - A series of fixes for objtool and the ORC unwinder addressing
         variety of small issues:
    
           - Stack offset tracking for indirect CFAs in objtool ignored
             subsequent pushs and pops
    
           - Repair the unwind hints in the register clearing entry ASM code
    
           - Make the unwinding in the low level exit to usermode code stop
             after switching to the trampoline stack. The unwind hint is no
             longer valid and the ORC unwinder emits a warning as it can't
             find the registers anymore.
    
           - Fix unwind hints in switch_to_asm() and rewind_stack_do_exit()
             which caused objtool to generate bogus ORC data.
    
           - Prevent unwinder warnings when dumping the stack of a
             non-current task as there is no way to be sure about the
             validity because the dumped stack can be a moving target.
    
           - Make the ORC unwinder behave the same way as the frame pointer
             unwinder when dumping an inactive tasks stack and do not skip
             the first frame.
    
           - Prevent ORC unwinding before ORC data has been initialized
    
           - Immediately terminate unwinding when a unknown ORC entry type
             is found.
    
           - Prevent premature stop of the unwinder caused by IRET frames.
    
           - Fix another infinite loop in objtool caused by a negative
             offset which was not catched.
    
           - Address a few build warnings in the ORC unwinder and add
             missing static/ro_after_init annotations"
    
    * tag 'x86-urgent-2020-05-10' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
      x86/unwind/orc: Move ORC sorting variables under !CONFIG_MODULES
      x86/apic: Move TSC deadline timer debug printk
      ftrace/x86: Fix trace event registration for syscalls without arguments
      x86/mm/cpa: Flush direct map alias during cpa
      objtool: Fix infinite loop in for_offset_range()
      x86/unwind/orc: Fix premature unwind stoppage due to IRET frames
      x86/unwind/orc: Fix error path for bad ORC entry type
      x86/unwind/orc: Prevent unwinding before ORC initialization
      x86/unwind/orc: Don't skip the first frame for inactive tasks
      x86/unwind: Prevent false warnings for non-current tasks
      x86/unwind/orc: Convert global variables to static
      x86/entry/64: Fix unwind hints in rewind_stack_do_exit()
      x86/entry/64: Fix unwind hints in __switch_to_asm()
      x86/entry/64: Fix unwind hints in kernel exit path
      x86/entry/64: Fix unwind hints in register clearing code
      objtool: Fix stack offset tracking for indirect CFAs
    c14cab26
check.c 60.8 KB