OSDN Git Service

Merge 4.4.113 into android-4.4
authorGreg Kroah-Hartman <gregkh@google.com>
Tue, 23 Jan 2018 19:01:24 +0000 (20:01 +0100)
committerGreg Kroah-Hartman <gregkh@google.com>
Tue, 23 Jan 2018 19:01:24 +0000 (20:01 +0100)
Changes in 4.4.113
gcov: disable for COMPILE_TEST
x86/cpu/AMD: Make LFENCE a serializing instruction
x86/cpu/AMD: Use LFENCE_RDTSC in preference to MFENCE_RDTSC
x86/mm/32: Move setup_clear_cpu_cap(X86_FEATURE_PCID) earlier
x86/asm: Use register variable to get stack pointer value
x86/kbuild: enable modversions for symbols exported from asm
x86/asm: Make asm/alternative.h safe from assembly
EXPORT_SYMBOL() for asm
kconfig.h: use __is_defined() to check if MODULE is defined
x86/retpoline: Add initial retpoline support
x86/spectre: Add boot time option to select Spectre v2 mitigation
x86/retpoline/crypto: Convert crypto assembler indirect jumps
x86/retpoline/entry: Convert entry assembler indirect jumps
x86/retpoline/ftrace: Convert ftrace assembler indirect jumps
x86/retpoline/hyperv: Convert assembler indirect jumps
x86/retpoline/xen: Convert Xen hypercall indirect jumps
x86/retpoline/checksum32: Convert assembler indirect jumps
x86/retpoline/irq32: Convert assembler indirect jumps
x86/retpoline: Fill return stack buffer on vmexit
x86/retpoline: Remove compile time warning
scsi: sg: disable SET_FORCE_LOW_DMA
futex: Prevent overflow by strengthen input validation
ALSA: pcm: Remove yet superfluous WARN_ON()
ALSA: hda - Apply headphone noise quirk for another Dell XPS 13 variant
ALSA: hda - Apply the existing quirk to iMac 14,1
af_key: fix buffer overread in verify_address_len()
af_key: fix buffer overread in parse_exthdrs()
scsi: hpsa: fix volume offline state
sched/deadline: Zero out positive runtime after throttling constrained tasks
x86/retpoline: Add LFENCE to the retpoline/RSB filling RSB macros
module: Add retpoline tag to VERMAGIC
pipe: avoid round_pipe_size() nr_pages overflow on 32-bit
x86/apic/vector: Fix off by one in error path
Input: 88pm860x-ts - fix child-node lookup
Input: twl6040-vibra - fix DT node memory management
Input: twl6040-vibra - fix child-node lookup
Input: twl4030-vibra - fix sibling-node lookup
tracing: Fix converting enum's from the map in trace_event_eval_update()
phy: work around 'phys' references to usb-nop-xceiv devices
ARM: dts: kirkwood: fix pin-muxing of MPP7 on OpenBlocks A7
can: peak: fix potential bug in packet fragmentation
libata: apply MAX_SEC_1024 to all LITEON EP1 series devices
dm btree: fix serious bug in btree_split_beneath()
dm thin metadata: THIN_MAX_CONCURRENT_LOCKS should be 6
arm64: KVM: Fix SMCCC handling of unimplemented SMC/HVC calls
x86/cpu, x86/pti: Do not enable PTI on AMD processors
kbuild: modversions for EXPORT_SYMBOL() for asm
x86/mce: Make machine check speculation protected
retpoline: Introduce start/end markers of indirect thunk
kprobes/x86: Blacklist indirect thunk functions for kprobes
kprobes/x86: Disable optimizing on the function jumps to indirect thunk
x86/pti: Document fix wrong index
x86/retpoline: Optimize inline assembler for vmexit_fill_RSB
MIPS: AR7: ensure the port type's FCR value is used
Linux 4.4.113

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
1  2 
Documentation/kernel-parameters.txt
Makefile
arch/x86/Kconfig
arch/x86/Makefile
arch/x86/entry/entry_64.S
arch/x86/include/asm/asm.h
arch/x86/include/asm/thread_info.h
arch/x86/kernel/vmlinux.lds.S
arch/x86/lib/Makefile
kernel/sched/deadline.c
scripts/Makefile.build

Simple merge
diff --cc Makefile
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -166,61 -166,6 +166,50 @@@ static inline struct thread_info *curre
        return (struct thread_info *)(current_top_of_stack() - THREAD_SIZE);
  }
  
- static inline unsigned long current_stack_pointer(void)
- {
-       unsigned long sp;
- #ifdef CONFIG_X86_64
-       asm("mov %%rsp,%0" : "=g" (sp));
- #else
-       asm("mov %%esp,%0" : "=g" (sp));
- #endif
-       return sp;
- }
 +/*
 + * Walks up the stack frames to make sure that the specified object is
 + * entirely contained by a single stack frame.
 + *
 + * Returns:
 + *             1 if within a frame
 + *            -1 if placed across a frame boundary (or outside stack)
 + *             0 unable to determine (no frame pointers, etc)
 + */
 +static inline int arch_within_stack_frames(const void * const stack,
 +                                         const void * const stackend,
 +                                         const void *obj, unsigned long len)
 +{
 +#if defined(CONFIG_FRAME_POINTER)
 +      const void *frame = NULL;
 +      const void *oldframe;
 +
 +      oldframe = __builtin_frame_address(1);
 +      if (oldframe)
 +              frame = __builtin_frame_address(2);
 +      /*
 +       * low ----------------------------------------------> high
 +       * [saved bp][saved ip][args][local vars][saved bp][saved ip]
 +       *                     ^----------------^
 +       *               allow copies only within here
 +       */
 +      while (stack <= frame && frame < stackend) {
 +              /*
 +               * If obj + len extends past the last frame, this
 +               * check won't pass and the next frame will be 0,
 +               * causing us to bail out and correctly report
 +               * the copy as invalid.
 +               */
 +              if (obj + len <= frame)
 +                      return obj >= oldframe + 2 * sizeof(void *) ? 1 : -1;
 +              oldframe = frame;
 +              frame = *(const void * const *)frame;
 +      }
 +      return -1;
 +#else
 +      return 0;
 +#endif
 +}
 +
  #else /* !__ASSEMBLY__ */
  
  #ifdef CONFIG_X86_64
@@@ -101,9 -102,15 +101,16 @@@ SECTION
                KPROBES_TEXT
                ENTRY_TEXT
                IRQENTRY_TEXT
 +              SOFTIRQENTRY_TEXT
                *(.fixup)
                *(.gnu.warning)
+ #ifdef CONFIG_RETPOLINE
+               __indirect_thunk_start = .;
+               *(.text.__x86.indirect_thunk)
+               __indirect_thunk_end = .;
+ #endif
                /* End of text section */
                _etext = .;
        } :text = 0x9090
@@@ -24,8 -21,9 +24,9 @@@ lib-y += usercopy_$(BITS).o usercopy.o 
  lib-y += memcpy_$(BITS).o
  lib-$(CONFIG_RWSEM_XCHGADD_ALGORITHM) += rwsem.o
  lib-$(CONFIG_INSTRUCTION_DECODER) += insn.o inat.o
+ lib-$(CONFIG_RETPOLINE) += retpoline.o
  
 -obj-y += msr.o msr-reg.o msr-reg-export.o
 +obj-y += msr.o msr-reg.o msr-reg-export.o hweight.o
  
  ifeq ($(CONFIG_X86_32),y)
          obj-y += atomic64_32.o
Simple merge
Simple merge