]> Git Repo - linux.git/commitdiff
Merge tag 'objtool-core-2020-06-01' of git://git.kernel.org/pub/scm/linux/kernel...
authorLinus Torvalds <[email protected]>
Mon, 1 Jun 2020 20:13:00 +0000 (13:13 -0700)
committerLinus Torvalds <[email protected]>
Mon, 1 Jun 2020 20:13:00 +0000 (13:13 -0700)
Pull objtool updates from Ingo Molnar:
 "There are a lot of objtool changes in this cycle, all across the map:

   - Speed up objtool significantly, especially when there are large
     number of sections

   - Improve objtool's understanding of special instructions such as
     IRET, to reduce the number of annotations required

   - Implement 'noinstr' validation

   - Do baby steps for non-x86 objtool use

   - Simplify/fix retpoline decoding

   - Add vmlinux validation

   - Improve documentation

   - Fix various bugs and apply smaller cleanups"

* tag 'objtool-core-2020-06-01' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (54 commits)
  objtool: Enable compilation of objtool for all architectures
  objtool: Move struct objtool_file into arch-independent header
  objtool: Exit successfully when requesting help
  objtool: Add check_kcov_mode() to the uaccess safelist
  samples/ftrace: Fix asm function ELF annotations
  objtool: optimize add_dead_ends for split sections
  objtool: use gelf_getsymshndx to handle >64k sections
  objtool: Allow no-op CFI ops in alternatives
  x86/retpoline: Fix retpoline unwind
  x86: Change {JMP,CALL}_NOSPEC argument
  x86: Simplify retpoline declaration
  x86/speculation: Change FILL_RETURN_BUFFER to work with objtool
  objtool: Add support for intra-function calls
  objtool: Move the IRET hack into the arch decoder
  objtool: Remove INSN_STACK
  objtool: Make handle_insn_ops() unconditional
  objtool: Rework allocating stack_ops on decode
  objtool: UNWIND_HINT_RET_OFFSET should not check registers
  objtool: is_fentry_call() crashes if call has no destination
  x86,smap: Fix smap_{save,restore}() alternatives
  ...

1  2 
arch/x86/include/asm/processor.h
lib/Kconfig.debug

index c4e8fd709cf67d4ebcd7141dcb4537d5f7e2713c,3eeaaeb756380b85e89b8ac0e33282ec07ed3fe5..29ee0c088009d026d0059f2a983283eb332e5ec5
@@@ -113,10 -113,9 +113,10 @@@ struct cpuinfo_x86 
        /* in KB - valid for CPUS which support this call: */
        unsigned int            x86_cache_size;
        int                     x86_cache_alignment;    /* In bytes */
 -      /* Cache QoS architectural values: */
 +      /* Cache QoS architectural values, valid only on the BSP: */
        int                     x86_cache_max_rmid;     /* max index */
        int                     x86_cache_occ_scale;    /* scale to bytes */
 +      int                     x86_cache_mbm_width_offset;
        int                     x86_power;
        unsigned long           loops_per_jiffy;
        /* cpuid returned max cores value: */
@@@ -728,7 -727,6 +728,6 @@@ static inline void sync_core(void
        unsigned int tmp;
  
        asm volatile (
-               UNWIND_HINT_SAVE
                "mov %%ss, %0\n\t"
                "pushq %q0\n\t"
                "pushq %%rsp\n\t"
                "pushq %q0\n\t"
                "pushq $1f\n\t"
                "iretq\n\t"
-               UNWIND_HINT_RESTORE
                "1:"
                : "=&r" (tmp), ASM_CALL_CONSTRAINT : : "cc", "memory");
  #endif
diff --combined lib/Kconfig.debug
index f3322a62067464afc561fe432c912b7c846f25e7,977b5a1902970a17b20ef22f72b5bde73b66fc67..613ee4f6e28b8807b869509671254393095c6f76
@@@ -369,6 -369,11 +369,11 @@@ config STACK_VALIDATIO
          For more information, see
          tools/objtool/Documentation/stack-validation.txt.
  
+ config VMLINUX_VALIDATION
+       bool
+       depends on STACK_VALIDATION && DEBUG_ENTRY && !PARAVIRT
+       default y
  config DEBUG_FORCE_WEAK_PER_CPU
        bool "Force weak per-cpu definitions"
        depends on DEBUG_KERNEL
@@@ -2092,18 -2097,6 +2097,18 @@@ config LIST_KUNIT_TES
  
          If unsure, say N.
  
 +config LINEAR_RANGES_TEST
 +      tristate "KUnit test for linear_ranges"
 +      depends on KUNIT
 +      select LINEAR_RANGES
 +      help
 +        This builds the linear_ranges unit test, which runs on boot.
 +        Tests the linear_ranges logic correctness.
 +        For more information on KUnit and unit tests in general please refer
 +        to the KUnit documentation in Documentation/dev-tools/kunit/.
 +
 +        If unsure, say N.
 +
  config TEST_UDELAY
        tristate "udelay test driver"
        help
This page took 0.102671 seconds and 4 git commands to generate.