1. 17 Apr, 2015 1 commit
    • 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
  2. 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
  3. 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
  4. 12 Apr, 2015 3 commits
  5. 11 Apr, 2015 13 commits