1. 06 May, 2015 1 commit
  2. 05 May, 2015 3 commits
  3. 20 Apr, 2015 1 commit
  4. 18 Apr, 2015 1 commit
  5. 17 Apr, 2015 3 commits
    • Roy Franz's avatar
      x86/efi: Store upper bits of command line buffer address in ext_cmd_line_ptr · 98b228f5
      Roy Franz authored
      Until now, the EFI stub was only setting the 32 bit cmd_line_ptr in
      the setup_header structure, so on 64 bit platforms this could be truncated.
      This patch adds setting the upper bits of the buffer address in
      ext_cmd_line_ptr.  This case was likely never hit, as the allocation
      for this buffer is done at the lowest available address.  Only
      x86_64 kernels have this problem, as the 1-1 mapping mandated
      by EFI ensures that all memory is 32 bit addressable on 32 bit
      platforms.  The EFI stub does not support mixed mode, so the
      32 bit kernel on 64 bit firmware case does not need to be handled.
      Signed-off-by: default avatarRoy Franz <roy.franz@linaro.org>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarMatt Fleming <matt.fleming@intel.com>
      98b228f5
    • Ross Lagerwall's avatar
      efivarfs: Ensure VariableName is NUL-terminated · c57dcb56
      Ross Lagerwall authored
      Some buggy firmware implementations update VariableNameSize on success
      such that it does not include the final NUL character which results in
      garbage in the efivarfs name entries.  Use kzalloc on the efivar_entry
      (as is done in efivars.c) to ensure that the name is always
      NUL-terminated.
      
      The buggy firmware is:
      BIOS Information
              Vendor: Intel Corp.
              Version: S1200RP.86B.02.02.0005.102320140911
              Release Date: 10/23/2014
              BIOS Revision: 4.6
      System Information
              Manufacturer: Intel Corporation
              Product Name: S1200RP_SE
      Signed-off-by: default avatarRoss Lagerwall <ross.lagerwall@citrix.com>
      Acked-by: default avatarMatthew Garrett <mjg59@coreos.com>
      Cc: Jeremy Kerr <jk@ozlabs.org>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarMatt Fleming <matt.fleming@intel.com>
      c57dcb56
    • Borislav Petkov's avatar
      x86/fpu: Load xsave pointer *after* initialization · 18ecb3bf
      Borislav Petkov authored
      So I was playing with gdb today and did this simple thing:
      
      	gdb /bin/ls
      
      	...
      
      	(gdb) run
      
      Box exploded with this splat:
      
      	BUG: unable to handle kernel NULL pointer dereference at 00000000000001d0
      	IP: [<ffffffff8100fe5a>] xstateregs_get+0x7a/0x120
      	[...]
      
      	Call Trace:
      	 ptrace_regset
      	 ptrace_request
      	 ? wait_task_inactive
      	 ? preempt_count_sub
      	 arch_ptrace
      	 ? ptrace_get_task_struct
      	 SyS_ptrace
      	 system_call_fastpath
      
      ... because we do cache &target->thread.fpu.state->xsave into the
      local variable xsave but that pointer is NULL at that time and
      it gets initialized later, in init_fpu(), see:
      
      	e7f180dc ("x86/fpu: Change xstateregs_get()/set() to use ->xsave.i387 rather than ->fxsave")
      
      The fix is simple: load xsave *after* init_fpu() has run.
      
      Also do the same in xstateregs_set(), as suggested by Oleg Nesterov.
      Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
      Acked-by: default avatarOleg Nesterov <oleg@redhat.com>
      Cc: Andy Lutomirski <luto@amacapital.net>
      Cc: H. Peter Anvin <hpa@zytor.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Rik van Riel <riel@redhat.com>
      Cc: Tavis Ormandy <taviso@google.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Link: http://lkml.kernel.org/r/1429209697-5902-1-git-send-email-bp@alien8.deSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
      18ecb3bf
  6. 16 Apr, 2015 2 commits
    • Oleg Nesterov's avatar
      x86/ptrace: Fix the TIF_FORCED_TF logic in handle_signal() · fd0f86b6
      Oleg Nesterov authored
      When the TIF_SINGLESTEP tracee dequeues a signal,
      handle_signal() clears TIF_FORCED_TF and X86_EFLAGS_TF but
      leaves TIF_SINGLESTEP set.
      
      If the tracer does PTRACE_SINGLESTEP again, enable_single_step()
      sets X86_EFLAGS_TF but not TIF_FORCED_TF.  This means that the
      subsequent PTRACE_CONT doesn't not clear X86_EFLAGS_TF, and the
      tracee gets the wrong SIGTRAP.
      
      Test-case (needs -O2 to avoid prologue insns in signal handler):
      
      	#include <unistd.h>
      	#include <stdio.h>
      	#include <sys/ptrace.h>
      	#include <sys/wait.h>
      	#include <sys/user.h>
      	#include <assert.h>
      	#include <stddef.h>
      
      	void handler(int n)
      	{
      		asm("nop");
      	}
      
      	int child(void)
      	{
      		assert(ptrace(PTRACE_TRACEME, 0,0,0) == 0);
      		signal(SIGALRM, handler);
      		kill(getpid(), SIGALRM);
      		return 0x23;
      	}
      
      	void *getip(int pid)
      	{
      		return (void*)ptrace(PTRACE_PEEKUSER, pid,
      					offsetof(struct user, regs.rip), 0);
      	}
      
      	int main(void)
      	{
      		int pid, status;
      
      		pid = fork();
      		if (!pid)
      			return child();
      
      		assert(wait(&status) == pid);
      		assert(WIFSTOPPED(status) && WSTOPSIG(status) == SIGALRM);
      
      		assert(ptrace(PTRACE_SINGLESTEP, pid, 0, SIGALRM) == 0);
      		assert(wait(&status) == pid);
      		assert(WIFSTOPPED(status) && WSTOPSIG(status) == SIGTRAP);
      		assert((getip(pid) - (void*)handler) == 0);
      
      		assert(ptrace(PTRACE_SINGLESTEP, pid, 0, SIGALRM) == 0);
      		assert(wait(&status) == pid);
      		assert(WIFSTOPPED(status) && WSTOPSIG(status) == SIGTRAP);
      		assert((getip(pid) - (void*)handler) == 1);
      
      		assert(ptrace(PTRACE_CONT, pid, 0,0) == 0);
      		assert(wait(&status) == pid);
      		assert(WIFEXITED(status) && WEXITSTATUS(status) == 0x23);
      
      		return 0;
      	}
      
      The last assert() fails because PTRACE_CONT wrongly triggers
      another single-step and X86_EFLAGS_TF can't be cleared by
      debugger until the tracee does sys_rt_sigreturn().
      
      Change handle_signal() to do user_disable_single_step() if
      stepping, we do not need to preserve TIF_SINGLESTEP because we
      are going to do ptrace_notify(), and it is simply wrong to leak
      this bit.
      
      While at it, change the comment to explain why we also need to
      clear TF unconditionally after setup_rt_frame().
      
      Note: in the longer term we should probably change
      setup_sigcontext() to use get_flags() and then just remove this
      user_disable_single_step().  And, the state of TIF_FORCED_TF can
      be wrong after restore_sigcontext() which can set/clear TF, this
      needs another fix.
      
      This fix fixes the 'single_step_syscall_32' testcase in
      the x86 testsuite:
      
      Before:
      
      	~/linux/tools/testing/selftests/x86> ./single_step_syscall_32
      	[RUN]   Set TF and check nop
      	[OK]    Survived with TF set and 9 traps
      	[RUN]   Set TF and check int80
      	[OK]    Survived with TF set and 9 traps
      	[RUN]   Set TF and check a fast syscall
      	[WARN]  Hit 10000 SIGTRAPs with si_addr 0xf7789cc0, ip 0xf7789cc0
      	Trace/breakpoint trap (core dumped)
      
      After:
      
      	~/linux/linux/tools/testing/selftests/x86> ./single_step_syscall_32
      	[RUN]   Set TF and check nop
      	[OK]    Survived with TF set and 9 traps
      	[RUN]   Set TF and check int80
      	[OK]    Survived with TF set and 9 traps
      	[RUN]   Set TF and check a fast syscall
      	[OK]    Survived with TF set and 39 traps
      	[RUN]   Fast syscall with TF cleared
      	[OK]    Nothing unexpected happened
      Reported-by: default avatarEvan Teran <eteran@alum.rit.edu>
      Reported-by: default avatarPedro Alves <palves@redhat.com>
      Tested-by: default avatarAndres Freund <andres@anarazel.de>
      Signed-off-by: default avatarOleg Nesterov <oleg@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Cc: Andy Lutomirski <luto@amacapital.net>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: Brian Gerst <brgerst@gmail.com>
      Cc: Denys Vlasenko <dvlasenk@redhat.com>
      Cc: H. Peter Anvin <hpa@zytor.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      [ Added x86 self-test info. ]
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      fd0f86b6
    • Andy Lutomirski's avatar
      x86, selftests: Add single_step_syscall test · 0a15584d
      Andy Lutomirski authored
      This is a very simple test that makes system calls with TF set.
      
      This test currently fails when running the 32-bit build on a
      64-bit kernel on an Intel CPU.  This bug will be fixed by the
      next commit.
      Signed-off-by: default avatarAndy Lutomirski <luto@kernel.org>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: Denys Vlasenko <vda.linux@googlemail.com>
      Cc: Oleg Nesterov <oleg@redhat.com>
      Cc: Shuah Khan <shuah.kh@samsung.com>
      Link: http://lkml.kernel.org/r/20e68021155f6ab5c60590dcad81d37c68ea2c4f.1429139075.git.luto@kernel.orgSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
      0a15584d
  7. 13 Apr, 2015 21 commits
    • Linus Torvalds's avatar
      Merge branch 'x86-vdso-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 6a16dda8
      Linus Torvalds authored
      Pull x86 vdso changes from Ingo Molnar:
       "Misc vDSO updates"
      
      * 'x86-vdso-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/vdso: Remove x32 intermediates during 'make clean'
        x86/vdso: Teach 'make clean' to remove generated vdso-image-*.c files
        x86/vdso32/syscall.S: Do not load __USER32_DS to %ss
        x86/vdso: Fix the x86 vdso2c tool includes
      6a16dda8
    • Linus Torvalds's avatar
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · ec1bc8e4
      Linus Torvalds authored
      Pull x86 fix from Ingo Molnar:
       "Leftover from 4.0
      
        Fix a local stack variable corruption with certain kdump usage
        patterns (Dave Young)"
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/mm/numa: Fix kernel stack corruption in numa_init()->numa_clear_kernel_node_hotplug()
      ec1bc8e4
    • Linus Torvalds's avatar
      Merge branch 'x86-ras-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 07f2d8c6
      Linus Torvalds authored
      Pull x86 RAS changes from Ingo Molnar:
       "The main changes in this cycle were:
      
         - Simplify the CMCI storm logic on Intel CPUs after yet another
           report about a race in the code (Borislav Petkov)
      
         - Enable the MCE threshold irq on AMD CPUs by default (Aravind
           Gopalakrishnan)
      
         - Add AMD-specific MCE-severity grading function.  Further error
           recovery actions will be based on its output (Aravind Gopalakrishnan)
      
         - Documentation updates (Borislav Petkov)
      
         - ... assorted fixes and cleanups"
      
      * 'x86-ras-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/mce/severity: Fix warning about indented braces
        x86/mce: Define mce_severity function pointer
        x86/mce: Add an AMD severities-grading function
        x86/mce: Reindent __mcheck_cpu_apply_quirks() properly
        x86/mce: Use safe MSR accesses for AMD quirk
        x86/MCE/AMD: Enable thresholding interrupts by default if supported
        x86/MCE: Make mce_panic() fatal machine check msg in the same pattern
        x86/MCE/intel: Cleanup CMCI storm logic
        Documentation/acpi/einj: Correct and streamline text
        x86/MCE/AMD: Drop bogus const modifier from AMD's bank4_names()
      07f2d8c6
    • Linus Torvalds's avatar
      Merge branch 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · ee799f41
      Linus Torvalds authored
      Pull x86 platform change from Ingo Molnar:
       "An Intel Quark SoC fix"
      
      * 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/intel/quark: Run IMR self-test on IMR capble hw only
      ee799f41
    • Linus Torvalds's avatar
      Merge branch 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 6cf78d4b
      Linus Torvalds authored
      Pull x86 mm changes from Ingo Molnar:
       "The main changes in this cycle were:
      
         - reduce the x86/32 PAE per task PGD allocation overhead from 4K to
           0.032k (Fenghua Yu)
      
         - early_ioremap/memunmap() usage cleanups (Juergen Gross)
      
         - gbpages support cleanups (Luis R Rodriguez)
      
         - improve AMD Bulldozer (family 0x15) ASLR I$ aliasing workaround to
           increase randomization by 3 bits (per bootup) (Hector
           Marco-Gisbert)
      
         - misc fixlets"
      
      * 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/mm: Improve AMD Bulldozer ASLR workaround
        x86/mm/pat: Initialize __cachemode2pte_tbl[] and __pte2cachemode_tbl[] in a bit more readable fashion
        init.h: Clean up the __setup()/early_param() macros
        x86/mm: Simplify probe_page_size_mask()
        x86/mm: Further simplify 1 GB kernel linear mappings handling
        x86/mm: Use early_param_on_off() for direct_gbpages
        init.h: Add early_param_on_off()
        x86/mm: Simplify enabling direct_gbpages
        x86/mm: Use IS_ENABLED() for direct_gbpages
        x86/mm: Unexport set_memory_ro() and set_memory_rw()
        x86/mm, efi: Use early_ioremap() in arch/x86/platform/efi/efi-bgrt.c
        x86/mm: Use early_memunmap() instead of early_iounmap()
        x86/mm/pat: Ensure different messages in STRICT_DEVMEM and PAT cases
        x86/mm: Reduce PAE-mode per task pgd allocation overhead from 4K to 32 bytes
      6cf78d4b
    • Linus Torvalds's avatar
      Merge branch 'x86-microcode-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 0ad5c6b3
      Linus Torvalds authored
      Pull x86 microcode changes from Ingo Molnar:
       "Microcode driver updates: mostly cleanups but also some fixes
        (Borislav Petkov)"
      
      * 'x86-microcode-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/microcode/amd: Drop the pci_ids.h dependency
        x86/microcode/intel: Fix printing of microcode blobs in show_saved_mc()
        x86/microcode/intel: Check scan_microcode()'s retval
        x86/microcode/intel: Sanitize microcode_pointer()
        x86/microcode/intel: Move mc arg last in get_matching_{microcode|sig}
        x86/microcode/intel: Simplify generic_load_microcode_early()
        x86/microcode: Consolidate family,model, ... code
        x86/microcode/intel: Rename update_match_revision()
        x86/microcode/intel: Sanitize _save_mc()
        x86/microcode/intel: Make _save_mc() return the updated saved count
        x86/microcode/intel: Simplify load_ucode_intel_bsp()
        x86/microcode/intel: Get rid of last arg to load_ucode_intel_bsp()
        x86/microcode/intel: Do the mc_saved_src NULL check first
        x86/microcode/intel: Check if microcode was found before applying
        x86/microcode/intel: Fix out of bounds memory access to the extended header
      0ad5c6b3
    • Linus Torvalds's avatar
      Merge branch 'x86-fpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 421ec901
      Linus Torvalds authored
      Pull x86 fpu changes from Ingo Molnar:
       "Various x86 FPU handling cleanups, refactorings and fixes (Borislav
        Petkov, Oleg Nesterov, Rik van Riel)"
      
      * 'x86-fpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (21 commits)
        x86/fpu: Kill eager_fpu_init_bp()
        x86/fpu: Don't allocate fpu->state for swapper/0
        x86/fpu: Rename drop_init_fpu() to fpu_reset_state()
        x86/fpu: Fold __drop_fpu() into its sole user
        x86/fpu: Don't abuse drop_init_fpu() in flush_thread()
        x86/fpu: Use restore_init_xstate() instead of math_state_restore() on kthread exec
        x86/fpu: Introduce restore_init_xstate()
        x86/fpu: Document user_fpu_begin()
        x86/fpu: Factor out memset(xstate, 0) in fpu_finit() paths
        x86/fpu: Change xstateregs_get()/set() to use ->xsave.i387 rather than ->fxsave
        x86/fpu: Don't abuse FPU in kernel threads if use_eager_fpu()
        x86/fpu: Always allow FPU in interrupt if use_eager_fpu()
        x86/fpu: __kernel_fpu_begin() should clear fpu_owner_task even if use_eager_fpu()
        x86/fpu: Also check fpu_lazy_restore() when use_eager_fpu()
        x86/fpu: Use task_disable_lazy_fpu_restore() helper
        x86/fpu: Use an explicit if/else in switch_fpu_prepare()
        x86/fpu: Introduce task_disable_lazy_fpu_restore() helper
        x86/fpu: Move lazy restore functions up a few lines
        x86/fpu: Change math_error() to use unlazy_fpu(), kill (now) unused save_init_fpu()
        x86/fpu: Don't do __thread_fpu_end() if use_eager_fpu()
        ...
      421ec901
    • Linus Torvalds's avatar
      Merge branch 'x86-debug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 64f004a2
      Linus Torvalds authored
      Pull x86 debug changes from Ingo Molnar:
       "Stack printing fixlets"
      
      * 'x86-debug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/kernel: Use kstack_end() in dumpstack_64.c
        x86/kernel: Fix output of show_stack_log_lvl()
      64f004a2
    • Linus Torvalds's avatar
      Merge branch 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · b48488d1
      Linus Torvalds authored
      Pull x86 cacheinfo sysfs changes from Ingo Molnar:
       "This tree converts the x86 cacheinfo sysfs code to use the generic
        code in drivers/base/cacheinfo.c.
      
        It's not intended to change the sysfs ABI:
      
            'This patch neither alters any existing sysfs entries nor their
             formating, however since the generic cacheinfo has switched to
             use the device attributes instead of the traditional raw
             kobjects, a directory named 'power' along with its standard
             attributes are added similar to any other device'"
      
      * 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/cpu/cacheinfo: Fix cache_get_priv_group() for Intel processors
        x86/cacheinfo: Move cacheinfo sysfs code to generic infrastructure
      b48488d1
    • Linus Torvalds's avatar
      Merge branch 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 9f3252f1
      Linus Torvalds authored
      Pull x86 cleanups from Ingo Molnar:
       "Various cleanups"
      
      * 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/iommu: Fix header comments regarding standard and _FINISH macros
        x86/earlyprintk: Put CONFIG_PCI-only functions under the #ifdef
        x86: Fix up obsolete __cpu_set() function usage
      9f3252f1
    • Linus Torvalds's avatar
      Merge branch 'x86-build-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 5945fba8
      Linus Torvalds authored
      Pull x86 build changes from Ingo Molnar:
       "Small cleanups and fixes"
      
      * 'x86-build-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/kexec: Cleanup KEXEC_VERIFY_SIG Kconfig help text
        x86/build/defconfig: Enable USB_EHCI_TT_NEWSCHED=y
        x86/build: Fix mkcapflags.sh bash-ism
        x86/Kconfig: Simplify X86_UP_APIC handling
        x86/Kconfig: Simplify X86_IO_APIC dependencies
        x86/Kconfig: Avoid issuing pointless turned off entries to .config
      5945fba8
    • Linus Torvalds's avatar
      Merge branch 'x86-boot-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 8f74bc5f
      Linus Torvalds authored
      Pull x86 boot changes from Ingo Molnar:
       "A number of cleanups"
      
      * 'x86-boot-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/boot: Standardize strcmp()
        x86/boot/64: Remove pointless early_printk() message
        x86/boot/video: Move the 'video_segment' variable to video.c
      8f74bc5f
    • Linus Torvalds's avatar
      Merge branch 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 60f898ee
      Linus Torvalds authored
      Pull x86 asm changes from Ingo Molnar:
       "There were lots of changes in this development cycle:
      
         - over 100 separate cleanups, restructuring changes, speedups and
           fixes in the x86 system call, irq, trap and other entry code, part
           of a heroic effort to deobfuscate a decade old spaghetti asm code
           and its C code dependencies (Denys Vlasenko, Andy Lutomirski)
      
         - alternatives code fixes and enhancements (Borislav Petkov)
      
         - simplifications and cleanups to the compat code (Brian Gerst)
      
         - signal handling fixes and new x86 testcases (Andy Lutomirski)
      
         - various other fixes and cleanups
      
        By their nature many of these changes are risky - we tried to test
        them well on many different x86 systems (there are no known
        regressions), and they are split up finely to help bisection - but
        there's still a fair bit of residual risk left so caveat emptor"
      
      * 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (148 commits)
        perf/x86/64: Report regs_user->ax too in get_regs_user()
        perf/x86/64: Simplify regs_user->abi setting code in get_regs_user()
        perf/x86/64: Do report user_regs->cx while we are in syscall, in get_regs_user()
        perf/x86/64: Do not guess user_regs->cs, ss, sp in get_regs_user()
        x86/asm/entry/32: Tidy up JNZ instructions after TESTs
        x86/asm/entry/64: Reduce padding in execve stubs
        x86/asm/entry/64: Remove GET_THREAD_INFO() in ret_from_fork
        x86/asm/entry/64: Simplify jumps in ret_from_fork
        x86/asm/entry/64: Remove a redundant jump
        x86/asm/entry/64: Optimize [v]fork/clone stubs
        x86/asm/entry: Zero EXTRA_REGS for stub32_execve() too
        x86/asm/entry/64: Move stub_x32_execvecloser() to stub_execveat()
        x86/asm/entry/64: Use common code for rt_sigreturn() epilogue
        x86/asm/entry/64: Add forgotten CFI annotation
        x86/asm/entry/irq: Simplify interrupt dispatch table (IDT) layout
        x86/asm/entry/64: Move opportunistic sysret code to syscall code path
        x86, selftests: Add sigreturn selftest
        x86/alternatives: Guard NOPs optimization
        x86/asm/entry: Clear EXTRA_REGS for all executable formats
        x86/signal: Remove pax argument from restore_sigcontext
        ...
      60f898ee
    • Linus Torvalds's avatar
      Merge branch 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 977e1ba5
      Linus Torvalds authored
      Pull x86 apic changes from Ingo Molnar:
       "Changes:
      
         - SGI UV APIC driver updates
      
         - dead code removal"
      
      * 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/apic/uv: Update the UV APIC HUB check
        x86/apic/uv: Update the UV APIC driver check
        x86/apic/uv: Update the APIC UV OEM check
        x86/apic: Remove verify_local_APIC()
      977e1ba5
    • Linus Torvalds's avatar
      Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 7fd56474
      Linus Torvalds authored
      Pull timer updates from Ingo Molnar:
       "The main changes in this cycle were:
      
         - clockevents state machine cleanups and enhancements (Viresh Kumar)
      
         - clockevents broadcast notifier horror to state machine conversion
           and related cleanups (Thomas Gleixner, Rafael J Wysocki)
      
         - clocksource and timekeeping core updates (John Stultz)
      
         - clocksource driver updates and fixes (Ben Dooks, Dmitry Osipenko,
           Hans de Goede, Laurent Pinchart, Maxime Ripard, Xunlei Pang)
      
         - y2038 fixes (Xunlei Pang, John Stultz)
      
         - NMI-safe ktime_get_raw_fast() and general refactoring of the clock
           code, in preparation to perf's per event clock ID support (Peter
           Zijlstra)
      
         - generic sched/clock fixes, optimizations and cleanups (Daniel
           Thompson)
      
         - clockevents cpu_down() race fix (Preeti U Murthy)"
      
      * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (94 commits)
        timers/PM: Drop unnecessary braces from tick_freeze()
        timers/PM: Fix up tick_unfreeze()
        timekeeping: Get rid of stale comment
        clockevents: Cleanup dead cpu explicitely
        clockevents: Make tick handover explicit
        clockevents: Remove broadcast oneshot control leftovers
        sched/idle: Use explicit broadcast oneshot control function
        ARM: Tegra: Use explicit broadcast oneshot control function
        ARM: OMAP: Use explicit broadcast oneshot control function
        intel_idle: Use explicit broadcast oneshot control function
        ACPI/idle: Use explicit broadcast control function
        ACPI/PAD: Use explicit broadcast oneshot control function
        x86/amd/idle, clockevents: Use explicit broadcast oneshot control functions
        clockevents: Provide explicit broadcast oneshot control functions
        clockevents: Remove the broadcast control leftovers
        ARM: OMAP: Use explicit broadcast control function
        intel_idle: Use explicit broadcast control function
        cpuidle: Use explicit broadcast control function
        ACPI/processor: Use explicit broadcast control function
        ACPI/PAD: Use explicit broadcast control function
        ...
      7fd56474
    • Linus Torvalds's avatar
      Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 49d2953c
      Linus Torvalds authored
      Pull scheduler changes from Ingo Molnar:
       "Major changes:
      
         - Reworked CPU capacity code, for better SMP load balancing on
           systems with assymetric CPUs. (Vincent Guittot, Morten Rasmussen)
      
         - Reworked RT task SMP balancing to be push based instead of pull
           based, to reduce latencies on large CPU count systems. (Steven
           Rostedt)
      
         - SCHED_DEADLINE support updates and fixes. (Juri Lelli)
      
         - SCHED_DEADLINE task migration support during CPU hotplug. (Wanpeng Li)
      
         - x86 mwait-idle optimizations and fixes. (Mike Galbraith, Len Brown)
      
         - sched/numa improvements. (Rik van Riel)
      
         - various cleanups"
      
      * 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (28 commits)
        sched/core: Drop debugging leftover trace_printk call
        sched/deadline: Support DL task migration during CPU hotplug
        sched/core: Check for available DL bandwidth in cpuset_cpu_inactive()
        sched/deadline: Always enqueue on previous rq when dl_task_timer() fires
        sched/core: Remove unused argument from init_[rt|dl]_rq()
        sched/deadline: Fix rt runtime corruption when dl fails its global constraints
        sched/deadline: Avoid a superfluous check
        sched: Improve load balancing in the presence of idle CPUs
        sched: Optimize freq invariant accounting
        sched: Move CFS tasks to CPUs with higher capacity
        sched: Add SD_PREFER_SIBLING for SMT level
        sched: Remove unused struct sched_group_capacity::capacity_orig
        sched: Replace capacity_factor by usage
        sched: Calculate CPU's usage statistic and put it into struct sg_lb_stats::group_usage
        sched: Add struct rq::cpu_capacity_orig
        sched: Make scale_rt invariant with frequency
        sched: Make sched entity usage tracking scale-invariant
        sched: Remove frequency scaling from cpu_capacity
        sched: Track group sched_entity usage contributions
        sched: Add sched_avg::utilization_avg_contrib
        ...
      49d2953c
    • Linus Torvalds's avatar
      Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · cc76ee75
      Linus Torvalds authored
      Pull core locking changes from Ingo Molnar:
       "Main changes:
      
         - jump label asm preparatory work for PowerPC (Anton Blanchard)
      
         - rwsem optimizations and cleanups (Davidlohr Bueso)
      
         - mutex optimizations and cleanups (Jason Low)
      
         - futex fix (Oleg Nesterov)
      
         - remove broken atomicity checks from {READ,WRITE}_ONCE() (Peter
           Zijlstra)"
      
      * 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        powerpc, jump_label: Include linux/jump_label.h to get HAVE_JUMP_LABEL define
        jump_label: Allow jump labels to be used in assembly
        jump_label: Allow asm/jump_label.h to be included in assembly
        locking/mutex: Further simplify mutex_spin_on_owner()
        locking: Remove atomicy checks from {READ,WRITE}_ONCE
        locking/rtmutex: Rename argument in the rt_mutex_adjust_prio_chain() documentation as well
        locking/rwsem: Fix lock optimistic spinning when owner is not running
        locking: Remove ACCESS_ONCE() usage
        locking/rwsem: Check for active lock before bailing on spinning
        locking/rwsem: Avoid deceiving lock spinners
        locking/rwsem: Set lock ownership ASAP
        locking/rwsem: Document barrier need when waking tasks
        locking/futex: Check PF_KTHREAD rather than !p->mm to filter out kthreads
        locking/mutex: Refactor mutex_spin_on_owner()
        locking/mutex: In mutex_spin_on_owner(), return true when owner changes
      cc76ee75
    • Linus Torvalds's avatar
      Merge branch 'core-efi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 9c65e12a
      Linus Torvalds authored
      Pull EFI update from Ingo Molnar:
       "This tree includes various fixes, cleanups, a new efi=debug boot
        option and EFI boot stub memory allocation optimizations"
      
      * 'core-efi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        efi/libstub: Retrieve FDT size when loaded from UEFI config table
        efi: Clean up the efi_call_phys_[prolog|epilog]() save/restore interaction
        efi: Disable interrupts around EFI calls, not in the epilog/prolog calls
        x86/efi: Add a "debug" option to the efi= cmdline
        firmware: dmi_scan: Use direct access to static vars
        firmware: dmi_scan: Use full dmi version for SMBIOS3
      9c65e12a
    • Linus Torvalds's avatar
      Merge tag 'md/4.0-rc7-fix' of git://neil.brown.name/md · 67dbb3a0
      Linus Torvalds authored
      Pull md fixes from Neil Brown:
       "Two regression fixes for md, one fairly recent and minor (diskstats
        has confusing data) and one older and more serious - RAID0 with
        non-power-of-2 chunksize corrupts data.
      
        I guess (almost) no-one uses non-power-of-2 chunks.
      
        Summary:
      
         - Revert recent change which broke IO accounting.
      
         - Fix bug with RAID0 arrays with non-power-of-2 chunk size"
      
      * tag 'md/4.0-rc7-fix' of git://neil.brown.name/md:
        md/raid0: fix bug with chunksize not a power of 2.
        md: fix md io stats accounting broken
      67dbb3a0
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 90036013
      Linus Torvalds authored
      Pull KVM updates from Paolo Bonzini:
       "First batch of KVM changes for 4.1
      
        The most interesting bit here is irqfd/ioeventfd support for ARM and
        ARM64.
      
        Summary:
      
        ARM/ARM64:
           fixes for live migration, irqfd and ioeventfd support (enabling
           vhost, too), page aging
      
        s390:
           interrupt handling rework, allowing to inject all local interrupts
           via new ioctl and to get/set the full local irq state for migration
           and introspection.  New ioctls to access memory by virtual address,
           and to get/set the guest storage keys.  SIMD support.
      
        MIPS:
           FPU and MIPS SIMD Architecture (MSA) support.  Includes some
           patches from Ralf Baechle's MIPS tree.
      
        x86:
           bugfixes (notably for pvclock, the others are small) and cleanups.
           Another small latency improvement for the TSC deadline timer"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (146 commits)
        KVM: use slowpath for cross page cached accesses
        kvm: mmu: lazy collapse small sptes into large sptes
        KVM: x86: Clear CR2 on VCPU reset
        KVM: x86: DR0-DR3 are not clear on reset
        KVM: x86: BSP in MSR_IA32_APICBASE is writable
        KVM: x86: simplify kvm_apic_map
        KVM: x86: avoid logical_map when it is invalid
        KVM: x86: fix mixed APIC mode broadcast
        KVM: x86: use MDA for interrupt matching
        kvm/ppc/mpic: drop unused IRQ_testbit
        KVM: nVMX: remove unnecessary double caching of MAXPHYADDR
        KVM: nVMX: checks for address bits beyond MAXPHYADDR on VM-entry
        KVM: x86: cache maxphyaddr CPUID leaf in struct kvm_vcpu
        KVM: vmx: pass error code with internal error #2
        x86: vdso: fix pvclock races with task migration
        KVM: remove kvm_read_hva and kvm_read_hva_atomic
        KVM: x86: optimize delivery of TSC deadline timer interrupt
        KVM: x86: extract blocking logic from __vcpu_run
        kvm: x86: fix x86 eflags fixed bit
        KVM: s390: migrate vcpu interrupt state
        ...
      90036013
    • Linus Torvalds's avatar
      Merge tag 'linux-kselftest-4.1-rc1' of... · 4541fec3
      Linus Torvalds authored
      Merge tag 'linux-kselftest-4.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
      
      Pull kselftest updates from Shuah Khan:
       "This is a milestone update in a sense.  Several new tests and install
        and packaging support is added in this update.
      
        This update adds install and packaging tools developed on top of
        back-end shared logic enhancemnets to run and install tests.  In
        addition several timer tests are added.
      
         - New timer tests from John Stultz
      
         - rtc test from Prarit Bhargava
      
         - Enhancements to un and install tests from Michael Ellerman
      
         - Install and packaging tools from Shuah Khan
      
         - Cross-compilation enablement from Tyler Baker
      
         - A couple of bug fixes"
      
      * tag 'linux-kselftest-4.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest: (42 commits)
        ftracetest: Do not use usleep directly
        selftest/mqueue: enable cross compilation
        selftest/ipc: enable cross compilation
        selftest/memfd: include default header install path
        selftest/mount: enable cross compilation
        selftest/memfd: enable cross compilation
        kselftests: timers: Make set-timer-lat fail more gracefully for !CAP_WAKE_ALARM
        selftests: Change memory on-off-test.sh name to be unique
        selftests: change cpu on-off-test.sh name to be unique
        selftests/mount: Make git ignore all binaries in mount test suite
        kselftests: timers: Reduce default runtime on inconsistency-check and set-timer-lat
        ftracetest: Convert exit -1 to exit $FAIL
        ftracetest: Cope properly with stack tracer not being enabled
        tools, update rtctest.c to verify passage of time
        Documentation, split up rtc.txt into documentation and test file
        selftests: Add tool to generate kselftest tar archive
        selftests: Add kselftest install tool
        selftests: Set CC using CROSS_COMPILE once in lib.mk
        selftests: Add install support for the powerpc tests
        selftests/timers: Use shared logic to run and install tests
        ...
      4541fec3
  8. 12 Apr, 2015 3 commits
  9. 11 Apr, 2015 5 commits