1. 06 5月, 2015 1 次提交
    • H
      x86/asm: Use -mskip-rax-setup if supported · d9ee948d
      H.J. Lu 提交于
      GCC 5 added a compiler option, -mskip-rax-setup, for x86-64. It skips
      setting up the RAX register when SSE is disabled and there are no
      variable arguments passed in vector registers. (According to the x86_64
      ABI, %al is used as a hidden register containing the number of vector
      registers used).
      
      Since the kernel doesn't pass vector registers to functions with
      variable arguments, this option can be used to optimize the x86-64
      kernel.
      
      This GCC feature was suggested by Rasmus Villemoes <linux@rasmusvillemoes.dk>.
      This is the corresponding kernel change using it.
      
      For kernel v3.17:
      
            text   data    bss    dec       filename
        11455921 2204048 5853184 19513153   vmlinux #with -mskip-rax-setup
        11480079 2204048 5853184 19537311   vmlinux
      
      For Kernel v4.0+ - custom config:
      
            text   data    bss    dec       filename
        10231778 3479800 16617472 30329050  vmlinux-gcc5+-mskip-rax-setup
        10268797 3547448 16621568 30437813  vmlinux
      Signed-off-by: NH.J. Lu <hjl.tools@gmail.com>
      Signed-off-by: NBorislav Petkov <bp@suse.de>
      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: Rasmus Villemoes <linux@rasmusvillemoes.dk>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Signed-off-by: NIngo Molnar <mingo@kernel.org>
      d9ee948d
  2. 22 4月, 2015 5 次提交
    • D
      x86/asm/entry/32: Update -ENOSYS handling to match the 64-bit logic · 3f5159a9
      Denys Vlasenko 提交于
      Recently Andy changed the 64-bit syscall logic so that
      pt_regs->ax is initially set to -ENOSYS, and on syscall exit,
      it is updated with the actual return value. This simplified
      the logic there.
      
      This patch does the same for 32-bit syscall entry points.
      
      The check for %rax being too big is moved to be just before
      the call instruction which dispatches execution through the
      syscall table.
      
      There is no way to accidentally skip this check now by jumping
      to a label after it. This allows us to remove redundant checks
      after ptrace et al.
      
      If %rax is too big, we just skip over the (call, write %rax to
      pt_regs->ax) instruction pair. pt_regs->ax remains set to -ENOSYS,
      and it gets returned to userspace.
      
      Similar to 64-bit code, this eliminates the "ia32_badsys" code path.
      
      Run-tested.
      Signed-off-by: NDenys Vlasenko <dvlasenk@redhat.com>
      Cc: Alexei Starovoitov <ast@plumgrid.com>
      Cc: Andy Lutomirski <luto@amacapital.net>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: H. Peter Anvin <hpa@zytor.com>
      Cc: Kees Cook <keescook@chromium.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Oleg Nesterov <oleg@redhat.com>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: Will Drewry <wad@chromium.org>
      Link: http://lkml.kernel.org/r/1429632194-13445-2-git-send-email-dvlasenk@redhat.com
      [ Changelog massage. ]
      Signed-off-by: NIngo Molnar <mingo@kernel.org>
      3f5159a9
    • D
      x86/asm/entry/64: Merge 32-bit execve stubs with x32 ones, as they are identical · ac7f5dfb
      Denys Vlasenko 提交于
      Run-tested.
      Suggested-by: NBrian Gerst <brgerst@gmail.com>
      Signed-off-by: NDenys Vlasenko <dvlasenk@redhat.com>
      Cc: Alexei Starovoitov <ast@plumgrid.com>
      Cc: Andy Lutomirski <luto@amacapital.net>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: H. Peter Anvin <hpa@zytor.com>
      Cc: Kees Cook <keescook@chromium.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Oleg Nesterov <oleg@redhat.com>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Will Drewry <wad@chromium.org>
      Link: http://lkml.kernel.org/r/1429632194-13445-1-git-send-email-dvlasenk@redhat.comSigned-off-by: NIngo Molnar <mingo@kernel.org>
      ac7f5dfb
    • D
      x86/asm/entry/64: Implement better check for canonical addresses · 17be0aec
      Denys Vlasenko 提交于
      This change makes the check exact (no more false positives
      on "negative" addresses).
      
      Andy explains:
      
       "Canonical addresses either start with 17 zeros or 17 ones.
      
        In the old code, we checked that the top (64-47) = 17 bits were all
        zero.  We did this by shifting right by 47 bits and making sure that
        nothing was left.
      
        In the new code, we're shifting left by (64 - 48) = 16 bits and then
        signed shifting right by the same amount, this propagating the 17th
        highest bit to all positions to its left.  If we get the same value we
        started with, then we're good to go."
      
      While it isn't really important to be fully correct here -
      almost all addresses we'll ever see will be userspace ones,
      but OTOH it looks to be cheap enough: the new code uses
      two more ALU ops but preserves %rcx, allowing to not
      reload it from pt_regs->cx again.
      
      On disassembly level, the changes are:
      
        cmp %rcx,0x80(%rsp) -> mov 0x80(%rsp),%r11; cmp %rcx,%r11
        shr $0x2f,%rcx      -> shl $0x10,%rcx; sar $0x10,%rcx; cmp %rcx,%r11
        mov 0x58(%rsp),%rcx -> (eliminated)
      Signed-off-by: NDenys Vlasenko <dvlasenk@redhat.com>
      Acked-by: NAndy Lutomirski <luto@kernel.org>
      Cc: Alexei Starovoitov <ast@plumgrid.com>
      Cc: Andy Lutomirski <luto@amacapital.net>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: Brian Gerst <brgerst@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: H. Peter Anvin <hpa@zytor.com>
      Cc: Kees Cook <keescook@chromium.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Oleg Nesterov <oleg@redhat.com>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Will Drewry <wad@chromium.org>
      Link: http://lkml.kernel.org/r/1429633649-20169-1-git-send-email-dvlasenk@redhat.com
      [ Changelog massage. ]
      Signed-off-by: NIngo Molnar <mingo@kernel.org>
      17be0aec
    • H
      x86/asm: Always inline atomics · 3462bd2a
      Hagen Paul Pfeifer 提交于
      During some code analysis I realized that atomic_add(), atomic_sub()
      and friends are not necessarily inlined AND that each function
      is defined multiple times:
      
      	atomic_inc:          544 duplicates
      	atomic_dec:          215 duplicates
      	atomic_dec_and_test: 107 duplicates
      	atomic64_inc:         38 duplicates
      	[...]
      
      Each definition is exact equally, e.g.:
      
      	ffffffff813171b8 <atomic_add>:
      	55         push   %rbp
      	48 89 e5   mov    %rsp,%rbp
      	f0 01 3e   lock add %edi,(%rsi)
      	5d         pop    %rbp
      	c3         retq
      
      In turn each definition has one or more callsites (sure):
      
      	ffffffff81317c78: e8 3b f5 ff ff  callq  ffffffff813171b8 <atomic_add> [...]
      	ffffffff8131a062: e8 51 d1 ff ff  callq  ffffffff813171b8 <atomic_add> [...]
      	ffffffff8131a190: e8 23 d0 ff ff  callq  ffffffff813171b8 <atomic_add> [...]
      
      The other way around would be to remove the static linkage - but
      I prefer an enforced inlining here.
      
      	Before:
      	  text     data	  bss      dec       hex     filename
      	  81467393 19874720 20168704 121510817 73e1ba1 vmlinux.orig
      
      	After:
      	  text     data     bss      dec       hex     filename
      	  81461323 19874720 20168704 121504747 73e03eb vmlinux.inlined
      
      Yes, the inlining here makes the kernel even smaller! ;)
      
      Linus further observed:
      
      	"I have this memory of having seen that before - the size
      	 heuristics for gcc getting confused by inlining.
      	 [...]
      
      	 It might be a good idea to mark things that are basically just
      	 wrappers around a single (or a couple of) asm instruction to be
      	 always_inline."
      Signed-off-by: NHagen Paul Pfeifer <hagen@jauu.net>
      Acked-by: NLinus Torvalds <torvalds@linux-foundation.org>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: H. Peter Anvin <hpa@zytor.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Link: http://lkml.kernel.org/r/1429565231-4609-1-git-send-email-hagen@jauu.netSigned-off-by: NIngo Molnar <mingo@kernel.org>
      3462bd2a
    • A
      x86, paravirt, xen: Remove the 64-bit ->irq_enable_sysexit() pvop · aac82d31
      Andy Lutomirski 提交于
      We don't use irq_enable_sysexit on 64-bit kernels any more.
      Remove all the paravirt and Xen machinery to support it on
      64-bit kernels.
      Tested-by: NBoris Ostrovsky <boris.ostrovsky@oracle.com>
      Signed-off-by: NAndy Lutomirski <luto@kernel.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: Denys Vlasenko <vda.linux@googlemail.com>
      Cc: H. Peter Anvin <hpa@zytor.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Link: http://lkml.kernel.org/r/8a03355698fe5b94194e9e7360f19f91c1b2cf1f.1428100853.git.luto@kernel.orgSigned-off-by: NIngo Molnar <mingo@kernel.org>
      aac82d31
  3. 16 4月, 2015 1 次提交
  4. 15 4月, 2015 4 次提交
  5. 14 4月, 2015 20 次提交
    • L
      Merge branch 'x86-vdso-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 6a16dda8
      Linus Torvalds 提交于
      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
    • L
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · ec1bc8e4
      Linus Torvalds 提交于
      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
    • L
      Merge branch 'x86-ras-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 07f2d8c6
      Linus Torvalds 提交于
      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
    • L
      Merge branch 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · ee799f41
      Linus Torvalds 提交于
      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
    • L
      Merge branch 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 6cf78d4b
      Linus Torvalds 提交于
      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
    • L
      Merge branch 'x86-microcode-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 0ad5c6b3
      Linus Torvalds 提交于
      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
    • L
      Merge branch 'x86-fpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 421ec901
      Linus Torvalds 提交于
      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
    • L
      Merge branch 'x86-debug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 64f004a2
      Linus Torvalds 提交于
      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
    • L
      Merge branch 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · b48488d1
      Linus Torvalds 提交于
      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
    • L
      Merge branch 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 9f3252f1
      Linus Torvalds 提交于
      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
    • L
      Merge branch 'x86-build-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 5945fba8
      Linus Torvalds 提交于
      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
    • L
      Merge branch 'x86-boot-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 8f74bc5f
      Linus Torvalds 提交于
      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
    • L
      Merge branch 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 60f898ee
      Linus Torvalds 提交于
      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
    • L
      Merge branch 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 977e1ba5
      Linus Torvalds 提交于
      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
    • L
      Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 7fd56474
      Linus Torvalds 提交于
      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
    • L
      Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 49d2953c
      Linus Torvalds 提交于
      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
    • L
      Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · cc76ee75
      Linus Torvalds 提交于
      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
    • L
      Merge branch 'core-efi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 9c65e12a
      Linus Torvalds 提交于
      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
    • L
      Merge tag 'md/4.0-rc7-fix' of git://neil.brown.name/md · 67dbb3a0
      Linus Torvalds 提交于
      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
    • L
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 90036013
      Linus Torvalds 提交于
      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
  6. 13 4月, 2015 4 次提交
    • L
      Merge tag 'linux-kselftest-4.1-rc1' of... · 4541fec3
      Linus Torvalds 提交于
      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
    • L
      Linux 4.0 · 39a88044
      Linus Torvalds 提交于
      39a88044
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 6a23b45f
      Linus Torvalds 提交于
      Pull vfs and fs fixes from Al Viro:
       "Several AIO and OCFS2 fixes"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        ocfs2: _really_ sync the right range
        ocfs2_file_write_iter: keep return value and current position update in sync
        [regression] ocfs2: do *not* increment ->ki_pos twice
        ioctx_alloc(): fix vma (and file) leak on failure
        fix mremap() vs. ioctx_kill() race
      6a23b45f
    • L
      Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux-soc-thermal · 54d8ccc3
      Linus Torvalds 提交于
      Pull last minute thermal-SoC management fixes from Eduardo Valentin:
       "Specifics:
      
         - Minor fixes on ST and RCAR thermal drivers.
         - Avoid flooding kernel log when driver returns -EAGAIN.
      
        Note: I am sending this pull on Rui's behalf while he fixes issues in
        his Linux box"
      
      * 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux-soc-thermal:
        drivers: thermal: st: remove several sparse warnings
        thermal: constify of_device_id array
        thermal: Do not log an error if thermal_zone_get_temp returns -EAGAIN
        thermal: rcar: Fix typo in r8a73a4 SoC name
      54d8ccc3
  7. 12 4月, 2015 5 次提交