1. 01 Apr, 2014 1 commit
    • Maciej W. Rozycki's avatar
      x86/apic: Reinstate error IRQ Pentium erratum 3AP workaround · 023de4a0
      Maciej W. Rozycki authored
      A change introduced with commit 60283df7
      ("x86/apic: Read Error Status Register correctly") removed a read from the
      APIC ESR register made before writing to same required to retrieve the
      correct error status on Pentium systems affected by the 3AP erratum[1]:
      
      	"3AP. Writes to Error Register Clears Register
      
      	PROBLEM: The APIC Error register is intended to only be read.
      	If there is a write to this register the data in the APIC Error
      	register will be cleared and lost.
      
      	IMPLICATION: There is a possibility of clearing the Error
      	register status since the write to the register is not
      	specifically blocked.
      
      	WORKAROUND: Writes should not occur to the Pentium processor
      	APIC Error register.
      
      	STATUS: For the steppings affected see the Summary Table of
      	Changes at the beginning of this section."
      
      The steppings affected are actually: B1, B3 and B5.
      
      To avoid this information loss this change avoids the write to
      ESR on all Pentium systems where it is actually never needed;
      in Pentium processor documentation ESR was noted read-only and
      the write only required for future architectural
      compatibility[2].
      
      The approach taken is the same as in lapic_setup_esr().
      
      References:
      
      	[1] "Pentium Processor Family Developer's Manual", Intel Corporation,
      	    1997, order number 241428-005, Appendix A "Errata and S-Specs for the
      	    Pentium Processor Family", p. A-92,
      
      	[2] "Pentium Processor Family Developer's Manual, Volume 3: Architecture
      	    and Programming Manual", Intel Corporation, 1995, order number
      	    241430-004, Section 19.3.3. "Error Handling In APIC", p. 19-33.
      Signed-off-by: default avatarMaciej W. Rozycki <macro@linux-mips.org>
      Cc: Richard Weinberger <richard@nod.at>
      Link: http://lkml.kernel.org/r/alpine.LFD.2.11.1404011300010.27402@eddie.linux-mips.orgSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
      023de4a0
  2. 31 Mar, 2014 22 commits
    • Linus Torvalds's avatar
      Merge branch 'x86-asmlinkage-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 176ab02d
      Linus Torvalds authored
      Pull x86 LTO changes from Peter Anvin:
       "More infrastructure work in preparation for link-time optimization
        (LTO).  Most of these changes is to make sure symbols accessed from
        assembly code are properly marked as visible so the linker doesn't
        remove them.
      
        My understanding is that the changes to support LTO are still not
        upstream in binutils, but are on the way there.  This patchset should
        conclude the x86-specific changes, and remaining patches to actually
        enable LTO will be fed through the Kbuild tree (other than keeping up
        with changes to the x86 code base, of course), although not
        necessarily in this merge window"
      
      * 'x86-asmlinkage-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (25 commits)
        Kbuild, lto: Handle basic LTO in modpost
        Kbuild, lto: Disable LTO for asm-offsets.c
        Kbuild, lto: Add a gcc-ld script to let run gcc as ld
        Kbuild, lto: add ld-version and ld-ifversion macros
        Kbuild, lto: Drop .number postfixes in modpost
        Kbuild, lto, workaround: Don't warn for initcall_reference in modpost
        lto: Disable LTO for sys_ni
        lto: Handle LTO common symbols in module loader
        lto, workaround: Add workaround for initcall reordering
        lto: Make asmlinkage __visible
        x86, lto: Disable LTO for the x86 VDSO
        initconst, x86: Fix initconst mistake in ts5500 code
        initconst: Fix initconst mistake in dcdbas
        asmlinkage: Make trace_hardirqs_on/off_caller visible
        asmlinkage, x86: Fix 32bit memcpy for LTO
        asmlinkage Make __stack_chk_failed and memcmp visible
        asmlinkage: Mark rwsem functions that can be called from assembler asmlinkage
        asmlinkage: Make main_extable_sort_needed visible
        asmlinkage, mutex: Mark __visible
        asmlinkage: Make trace_hardirq visible
        ...
      176ab02d
    • Linus Torvalds's avatar
      Merge branch 'x86-kaslr-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · e06df6a7
      Linus Torvalds authored
      Pull x86 kaslr update from Ingo Molnar:
       "This adds kernel module load address randomization"
      
      * 'x86-kaslr-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86, kaslr: fix module lock ordering problem
        x86, kaslr: randomize module base load address
      e06df6a7
    • Linus Torvalds's avatar
      Merge branch 'x86-hyperv-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · c0fc3cba
      Linus Torvalds authored
      Pull x86 hyperv change from Ingo Molnar:
       "Skip the timer_irq_works() check on hyperv systems"
      
      * 'x86-hyperv-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86, hyperv: Bypass the timer_irq_works() check
      c0fc3cba
    • Linus Torvalds's avatar
      Merge branch 'x86-hash-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · d9fcca40
      Linus Torvalds authored
      Pull x86 hashing changes from Ingo Molnar:
       "Small fixes and cleanups to the librarized arch_fast_hash() methods,
        used by the net/openvswitch code"
      
      * 'x86-hash-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86, hash: Simplify switch, add __init annotation
        x86, hash: Swap arguments passed to crc32_u32()
        x86, hash: Fix build failure with older binutils
      d9fcca40
    • Linus Torvalds's avatar
      Merge branch 'x86-efi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 7cc3afdf
      Linus Torvalds authored
      Pull x86 EFI changes from Ingo Molnar:
       "The main changes:
      
        - Add debug code to the dump EFI pagetable - Borislav Petkov
      
        - Make 1:1 runtime mapping robust when booting on machines with lots
          of memory - Borislav Petkov
      
        - Move the EFI facilities bits out of 'x86_efi_facility' and into
          efi.flags which is the standard architecture independent place to
          keep EFI state, by Matt Fleming.
      
        - Add 'EFI mixed mode' support: this allows 64-bit kernels to be
          booted from 32-bit firmware.  This needs a bootloader that supports
          the 'EFI handover protocol'.  By Matt Fleming"
      
      * 'x86-efi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (31 commits)
        x86, efi: Abstract x86 efi_early calls
        x86/efi: Restore 'attr' argument to query_variable_info()
        x86/efi: Rip out phys_efi_get_time()
        x86/efi: Preserve segment registers in mixed mode
        x86/boot: Fix non-EFI build
        x86, tools: Fix up compiler warnings
        x86/efi: Re-disable interrupts after calling firmware services
        x86/boot: Don't overwrite cr4 when enabling PAE
        x86/efi: Wire up CONFIG_EFI_MIXED
        x86/efi: Add mixed runtime services support
        x86/efi: Firmware agnostic handover entry points
        x86/efi: Split the boot stub into 32/64 code paths
        x86/efi: Add early thunk code to go from 64-bit to 32-bit
        x86/efi: Build our own EFI services pointer table
        efi: Add separate 32-bit/64-bit definitions
        x86/efi: Delete dead code when checking for non-native
        x86/mm/pageattr: Always dump the right page table in an oops
        x86, tools: Consolidate #ifdef code
        x86/boot: Cleanup header.S by removing some #ifdefs
        efi: Use NULL instead of 0 for pointer
        ...
      7cc3afdf
    • Linus Torvalds's avatar
      Merge branch 'x86-debug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · ad8946fb
      Linus Torvalds authored
      Pull x86 debug cleanup from Ingo Molnar:
       "A single trivial cleanup"
      
      * 'x86-debug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        i386: Remove unneeded test of 'task' in dump_trace() (again)
      ad8946fb
    • Linus Torvalds's avatar
      Merge branch 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 918d80a1
      Linus Torvalds authored
      Pull x86 cpu handling changes from Ingo Molnar:
       "Bigger changes:
      
         - Intel CPU hardware-enablement: new vector instructions support
           (AVX-512), by Fenghua Yu.
      
         - Support the clflushopt instruction and use it in appropriate
           places.  clflushopt is similar to clflush but with more relaxed
           ordering, by Ross Zwisler.
      
         - MSR accessor cleanups, by Borislav Petkov.
      
         - 'forcepae' boot flag for those who have way too much time to spend
           on way too old Pentium-M systems and want to live way too
           dangerously, by Chris Bainbridge"
      
      * 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86, cpu: Add forcepae parameter for booting PAE kernels on PAE-disabled Pentium M
        Rename TAINT_UNSAFE_SMP to TAINT_CPU_OUT_OF_SPEC
        x86, intel: Make MSR_IA32_MISC_ENABLE bit constants systematic
        x86, Intel: Convert to the new bit access MSR accessors
        x86, AMD: Convert to the new bit access MSR accessors
        x86: Add another set of MSR accessor functions
        x86: Use clflushopt in drm_clflush_virt_range
        x86: Use clflushopt in drm_clflush_page
        x86: Use clflushopt in clflush_cache_range
        x86: Add support for the clflushopt instruction
        x86, AVX-512: Enable AVX-512 States Context Switch
        x86, AVX-512: AVX-512 Feature Detection
      918d80a1
    • Linus Torvalds's avatar
      Merge branch 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 26a5c0df
      Linus Torvalds authored
      Pull x86 cleanups from Ingo Molnar:
       "Various smaller cleanups"
      
      * 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86, pageattr: Correct WBINVD spelling in comment
        x86, crash: Unify ifdef
        x86, boot: Correct max ramdisk size name
      26a5c0df
    • Linus Torvalds's avatar
      Merge branch 'x86-build-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 54cad627
      Linus Torvalds authored
      Pull x86 build change from Ingo Molnar:
       "Explicitly disable x87 FPU instructions, to catch mistaken floating
        point use at build time, instead of crashing or misbehaving during run
        time"
      
      * 'x86-build-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86: Disable generation of traditional x87 instructions
      54cad627
    • Linus Torvalds's avatar
      Merge branch 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 6ed77051
      Linus Torvalds authored
      Pull x86 apic changes from Ingo Molnar:
       "An xAPIC CPU hotplug race fix, plus cleanups and minor fixes"
      
      * 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/apic: Plug racy xAPIC access of CPU hotplug code
        x86/apic: Always define nox2apic and define it as initdata
        x86/apic: Remove unused function prototypes
        x86/apic: Switch wait_for_init_deassert() to a bool flag
        x86/apic: Only use default_wait_for_init_deassert()
      6ed77051
    • Linus Torvalds's avatar
      Merge branch 'x86-acpi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 3a88fe3b
      Linus Torvalds authored
      Pull x86 acpi numa fix from Ingo Molnar:
       "A single NUMA CPU hotplug fix"
      
      * 'x86-acpi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86, acpi: Fix bug in associating hot-added CPUs with corresponding NUMA node
      3a88fe3b
    • Linus Torvalds's avatar
      Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 971eae7c
      Linus Torvalds authored
      Pull scheduler changes from Ingo Molnar:
       "Bigger changes:
      
         - sched/idle restructuring: they are WIP preparation for deeper
           integration between the scheduler and idle state selection, by
           Nicolas Pitre.
      
         - add NUMA scheduling pseudo-interleaving, by Rik van Riel.
      
         - optimize cgroup context switches, by Peter Zijlstra.
      
         - RT scheduling enhancements, by Thomas Gleixner.
      
        The rest is smaller changes, non-urgnt fixes and cleanups"
      
      * 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (68 commits)
        sched: Clean up the task_hot() function
        sched: Remove double calculation in fix_small_imbalance()
        sched: Fix broken setscheduler()
        sparc64, sched: Remove unused sparc64_multi_core
        sched: Remove unused mc_capable() and smt_capable()
        sched/numa: Move task_numa_free() to __put_task_struct()
        sched/fair: Fix endless loop in idle_balance()
        sched/core: Fix endless loop in pick_next_task()
        sched/fair: Push down check for high priority class task into idle_balance()
        sched/rt: Fix picking RT and DL tasks from empty queue
        trace: Replace hardcoding of 19 with MAX_NICE
        sched: Guarantee task priority in pick_next_task()
        sched/idle: Remove stale old file
        sched: Put rq's sched_avg under CONFIG_FAIR_GROUP_SCHED
        cpuidle/arm64: Remove redundant cpuidle_idle_call()
        cpuidle/powernv: Remove redundant cpuidle_idle_call()
        sched, nohz: Exclude isolated cores from load balancing
        sched: Fix select_task_rq_fair() description comments
        workqueue: Replace hardcoding of -20 and 19 with MIN_NICE and MAX_NICE
        sys: Replace hardcoding of -20 and 19 with MIN_NICE and MAX_NICE
        ...
      971eae7c
    • Linus Torvalds's avatar
      Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 8c292f11
      Linus Torvalds authored
      Pull perf changes from Ingo Molnar:
       "Main changes:
      
        Kernel side changes:
      
         - Add SNB/IVB/HSW client uncore memory controller support (Stephane
           Eranian)
      
         - Fix various x86/P4 PMU driver bugs (Don Zickus)
      
        Tooling, user visible changes:
      
         - Add several futex 'perf bench' microbenchmarks (Davidlohr Bueso)
      
         - Speed up thread map generation (Don Zickus)
      
         - Introduce 'perf kvm --list-cmds' command line option for use by
           scripts (Ramkumar Ramachandra)
      
         - Print the evsel name in the annotate stdio output, prep to fix
           support outputting annotation for multiple events, not just for the
           first one (Arnaldo Carvalho de Melo)
      
         - Allow setting preferred callchain method in .perfconfig (Jiri Olsa)
      
         - Show in what binaries/modules 'perf probe's are set (Masami
           Hiramatsu)
      
         - Support distro-style debuginfo for uprobe in 'perf probe' (Masami
           Hiramatsu)
      
        Tooling, internal changes and fixes:
      
         - Use tid in mmap/mmap2 events to find maps (Don Zickus)
      
         - Record the reason for filtering an address_location (Namhyung Kim)
      
         - Apply all filters to an addr_location (Namhyung Kim)
      
         - Merge al->filtered with hist_entry->filtered in report/hists
           (Namhyung Kim)
      
         - Fix memory leak when synthesizing thread records (Namhyung Kim)
      
         - Use ui__has_annotation() in 'report' (Namhyung Kim)
      
         - hists browser refactorings to reuse code accross UIs (Namhyung Kim)
      
         - Add support for the new DWARF unwinder library in elfutils (Jiri
           Olsa)
      
         - Fix build race in the generation of bison files (Jiri Olsa)
      
         - Further streamline the feature detection display, trimming it a bit
           to show just the libraries detected, using VF=1 gets a more verbose
           output, showing the less interesting feature checks as well (Jiri
           Olsa).
      
         - Check compatible symtab type before loading dso (Namhyung Kim)
      
         - Check return value of filename__read_debuglink() (Stephane Eranian)
      
         - Move some hashing and fs related code from tools/perf/util/ to
           tools/lib/ so that it can be used by more tools/ living utilities
           (Borislav Petkov)
      
         - Prepare DWARF unwinding code for using an elfutils alternative
           unwinding library (Jiri Olsa)
      
         - Fix DWARF unwind max_stack processing (Jiri Olsa)
      
         - Add dwarf unwind 'perf test' entry (Jiri Olsa)
      
         - 'perf probe' improvements including memory leak fixes, sharing the
           intlist class with other tools, uprobes/kprobes code sharing and
           use of ref_reloc_sym (Masami Hiramatsu)
      
         - Shorten sample symbol resolving by adding cpumode to struct
           addr_location (Arnaldo Carvalho de Melo)
      
         - Fix synthesizing mmaps for threads (Don Zickus)
      
         - Fix invalid output on event group stdio report (Namhyung Kim)
      
         - Fixup header alignment in 'perf sched latency' output (Ramkumar
           Ramachandra)
      
         - Fix off-by-one error in 'perf timechart record' argv handling
           (Ramkumar Ramachandra)
      
        Tooling, cleanups:
      
         - Remove unused thread__find_map function (Jiri Olsa)
      
         - Remove unused simple_strtoul() function (Ramkumar Ramachandra)
      
        Tooling, documentation updates:
      
         - Update function names in debug messages (Ramkumar Ramachandra)
      
         - Update some code references in design.txt (Ramkumar Ramachandra)
      
         - Clarify load-latency information in the 'perf mem' docs (Andi
           Kleen)
      
         - Clarify x86 register naming in 'perf probe' docs (Andi Kleen)"
      
      * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (96 commits)
        perf tools: Remove unused simple_strtoul() function
        perf tools: Update some code references in design.txt
        perf evsel: Update function names in debug messages
        perf tools: Remove thread__find_map function
        perf annotate: Print the evsel name in the stdio output
        perf report: Use ui__has_annotation()
        perf tools: Fix memory leak when synthesizing thread records
        perf tools: Use tid in mmap/mmap2 events to find maps
        perf report: Merge al->filtered with hist_entry->filtered
        perf symbols: Apply all filters to an addr_location
        perf symbols: Record the reason for filtering an address_location
        perf sched: Fixup header alignment in 'latency' output
        perf timechart: Fix off-by-one error in 'record' argv handling
        perf machine: Factor machine__find_thread to take tid argument
        perf tools: Speed up thread map generation
        perf kvm: introduce --list-cmds for use by scripts
        perf ui hists: Pass evsel to hpp->header/width functions explicitly
        perf symbols: Introduce thread__find_cpumode_addr_location
        perf session: Change header.misc dump from decimal to hex
        perf ui/tui: Reuse generic __hpp__fmt() code
        ...
      8c292f11
    • Linus Torvalds's avatar
      Merge branch 'core-types-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · d31605dc
      Linus Torvalds authored
      Pull hweight type fix from Ingo Molnar:
       "This lone commit makes sure that __const_hweight8() is unsigned, which
        addresses a build warning if code is built with -Wsign-compare.
      
        I hope the type cast in this cleanup is fine - another option would be
        to eliminate the double unary negation and use a construct with more
        obvious integer type characteristics, along the lines of:
      
              ((w) & (1ULL << 1) ? 1U : 0U)
      
        or so"
      
      * 'core-types-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        bitops: Fix signedness of compile-time hweight implementations
      d31605dc
    • Linus Torvalds's avatar
      Merge branch 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · b3fd4ea9
      Linus Torvalds authored
      Pull RCU updates from Ingo Molnar:
       "Main changes:
      
         - Torture-test changes, including refactoring of rcutorture and
           introduction of a vestigial locktorture.
      
         - Real-time latency fixes.
      
         - Documentation updates.
      
         - Miscellaneous fixes"
      
      * 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (77 commits)
        rcu: Provide grace-period piggybacking API
        rcu: Ensure kernel/rcu/rcu.h can be sourced/used stand-alone
        rcu: Fix sparse warning for rcu_expedited from kernel/ksysfs.c
        notifier: Substitute rcu_access_pointer() for rcu_dereference_raw()
        Documentation/memory-barriers.txt: Clarify release/acquire ordering
        rcutorture: Save kvm.sh output to log
        rcutorture: Add a lock_busted to test the test
        rcutorture: Place kvm-test-1-run.sh output into res directory
        rcutorture: Rename TREE_RCU-Kconfig.txt
        locktorture: Add kvm-recheck.sh plug-in for locktorture
        rcutorture: Gracefully handle NULL cleanup hooks
        locktorture: Add vestigial locktorture configuration
        rcutorture: Introduce "rcu" directory level underneath configs
        rcutorture: Rename kvm-test-1-rcu.sh
        rcutorture: Remove RCU dependencies from ver_functions.sh API
        rcutorture: Create CFcommon file for common Kconfig parameters
        rcutorture: Create config files for scripted test-the-test testing
        rcutorture: Add an rcu_busted to test the test
        locktorture: Add a lock-torture kernel module
        rcutorture: Abstract kvm-recheck.sh
        ...
      b3fd4ea9
    • Linus Torvalds's avatar
      Merge branch 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 462bf234
      Linus Torvalds authored
      Pull core locking updates from Ingo Molnar:
       "The biggest change is the MCS spinlock generalization changes from Tim
        Chen, Peter Zijlstra, Jason Low et al.  There's also lockdep
        fixes/enhancements from Oleg Nesterov, in particular a false negative
        fix related to lockdep_set_novalidate_class() usage"
      
      * 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (22 commits)
        locking/mutex: Fix debug checks
        locking/mutexes: Add extra reschedule point
        locking/mutexes: Introduce cancelable MCS lock for adaptive spinning
        locking/mutexes: Unlock the mutex without the wait_lock
        locking/mutexes: Modify the way optimistic spinners are queued
        locking/mutexes: Return false if task need_resched() in mutex_can_spin_on_owner()
        locking: Move mcs_spinlock.h into kernel/locking/
        m68k: Skip futex_atomic_cmpxchg_inatomic() test
        futex: Allow architectures to skip futex_atomic_cmpxchg_inatomic() test
        Revert "sched/wait: Suppress Sparse 'variable shadowing' warning"
        lockdep: Change lockdep_set_novalidate_class() to use _and_name
        lockdep: Change mark_held_locks() to check hlock->check instead of lockdep_no_validate
        lockdep: Don't create the wrong dependency on hlock->check == 0
        lockdep: Make held_lock->check and "int check" argument bool
        locking/mcs: Allow architecture specific asm files to be used for contended case
        locking/mcs: Order the header files in Kbuild of each architecture in alphabetical order
        sched/wait: Suppress Sparse 'variable shadowing' warning
        hung_task/Documentation: Fix hung_task_warnings description
        locking/mcs: Allow architectures to hook in to contended paths
        locking/mcs: Micro-optimize the MCS code, add extra comments
        ...
      462bf234
    • Linus Torvalds's avatar
      Linux 3.14 · 455c6fdb
      Linus Torvalds authored
      455c6fdb
    • Linus Torvalds's avatar
      Merge branch 'for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · fedc1ed0
      Linus Torvalds authored
      Pull vfs fixes from Al Viro:
       "Switch mnt_hash to hlist, turning the races between __lookup_mnt() and
        hash modifications into false negatives from __lookup_mnt() (instead
        of hangs)"
      
      On the false negatives from __lookup_mnt():
       "The *only* thing we care about is not getting stuck in __lookup_mnt().
        If it misses an entry because something in front of it just got moved
        around, etc, we are fine.  We'll notice that mount_lock mismatch and
        that'll be it"
      
      * 'for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        switch mnt_hash to hlist
        don't bother with propagate_mnt() unless the target is shared
        keep shadowed vfsmounts together
        resizable namespace.c hashes
      fedc1ed0
    • Randy Dunlap's avatar
      MAINTAINERS: resume as Documentation maintainer · 01358e56
      Randy Dunlap authored
      I am the new kernel tree Documentation maintainer (except for parts that
      are handled by other people, of course).
      Signed-off-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      Acked-by: default avatarRob Landley <rob@landley.net>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      01358e56
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · 915ac4e2
      Linus Torvalds authored
      Pull input updates from Dmitry Torokhov:
       "Some more updates for the input subsystem.
      
        You will get a fix for race in mousedev that has been causing quite a
        few oopses lately and a small fixup for force feedback support in
        evdev"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
        Input: mousedev - fix race when creating mixed device
        Input: don't modify the id of ioctl-provided ff effect on upload failure
      915ac4e2
    • Eric Paris's avatar
      AUDIT: Allow login in non-init namespaces · aa4af831
      Eric Paris authored
      It its possible to configure your PAM stack to refuse login if audit
      messages (about the login) were unable to be sent.  This is common in
      many distros and thus normal configuration of many containers.  The PAM
      modules determine if audit is enabled/disabled in the kernel based on
      the return value from sending an audit message on the netlink socket.
      If userspace gets back ECONNREFUSED it believes audit is disabled in the
      kernel.  If it gets any other error else it refuses to let the login
      proceed.
      
      Just about ever since the introduction of namespaces the kernel audit
      subsystem has returned EPERM if the task sending a message was not in
      the init user or pid namespace.  So many forms of containers have never
      worked if audit was enabled in the kernel.
      
      BUT if the container was not in net_init then the kernel network code
      would send ECONNREFUSED (instead of the audit code sending EPERM).  Thus
      by pure accident/dumb luck/bug if an admin configured the PAM stack to
      reject all logins that didn't talk to audit, but then ran the login
      untility in the non-init_net namespace, it would work!! Clearly this was
      a bug, but it is a bug some people expected.
      
      With the introduction of network namespace support in 3.14-rc1 the two
      bugs stopped cancelling each other out.  Now, containers in the
      non-init_net namespace refused to let users log in (just like PAM was
      configfured!) Obviously some people were not happy that what used to let
      users log in, now didn't!
      
      This fix is kinda hacky.  We return ECONNREFUSED for all non-init
      relevant namespaces.  That means that not only will the old broken
      non-init_net setups continue to work, now the broken non-init_pid or
      non-init_user setups will 'work'.  They don't really work, since audit
      isn't logging things.  But it's what most users want.
      
      In 3.15 we should have patches to support not only the non-init_net
      (3.14) namespace but also the non-init_pid and non-init_user namespace.
      So all will be right in the world.  This just opens the doors wide open
      on 3.14 and hopefully makes users happy, if not the audit system...
      Reported-by: default avatarAndre Tomt <andre@tomt.net>
      Reported-by: default avatarAdam Richter <adam_richter2004@yahoo.com>
      Signed-off-by: default avatarEric Paris <eparis@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      aa4af831
    • Theodore Ts'o's avatar
      ext4: atomically set inode->i_flags in ext4_set_inode_flags() · 00a1a053
      Theodore Ts'o authored
      Use cmpxchg() to atomically set i_flags instead of clearing out the
      S_IMMUTABLE, S_APPEND, etc. flags and then setting them from the
      EXT4_IMMUTABLE_FL, EXT4_APPEND_FL flags, since this opens up a race
      where an immutable file has the immutable flag cleared for a brief
      window of time.
      Reported-by: default avatarJohn Sullivan <jsrhbz@kanargh.force9.co.uk>
      Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
      Cc: stable@kernel.org
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      00a1a053
  3. 30 Mar, 2014 4 commits
  4. 29 Mar, 2014 5 commits
  5. 28 Mar, 2014 8 commits
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 49d8137a
      Linus Torvalds authored
      Pull networking fixes from David Miller:
      
       1) We've discovered a common error in several networking drivers, they
          put VLAN offload features into ->vlan_features, which would suggest
          that they support offloading 2 or more levels of VLAN encapsulation.
          Not only do these devices not do that, but we don't have the
          infrastructure yet to handle that at all.
      
          Fixes from Vlad Yasevich.
      
       2) Fix tcpdump crash with bridging and vlans, also from Vlad.
      
       3) Some MAINTAINERS updates for random32 and bonding.
      
       4) Fix late reseeds of prandom generator, from Sasha Levin.
      
       5) Bridge doesn't handle stacked vlans properly, fix from Toshiaki
          Makita.
      
       6) Fix deadlock in openvswitch, from Flavio Leitner.
      
       7) get_timewait4_sock() doesn't report delay times correctly, fix from
          Eric Dumazet.
      
       8) Duplicate address detection and addrconf verification need to run in
          contexts where RTNL can be obtained.  Move them to run from a
          workqueue.  From Hannes Frederic Sowa.
      
       9) Fix route refcount leaking in ip tunnels, from Pravin B Shelar.
      
      10) Don't return -EINTR from non-blocking recvmsg() on AF_UNIX sockets,
          from Eric Dumazet.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (28 commits)
        vlan: Warn the user if lowerdev has bad vlan features.
        veth: Turn off vlan rx acceleration in vlan_features
        ifb: Remove vlan acceleration from vlan_features
        qlge: Do not propaged vlan tag offloads to vlans
        bridge: Fix crash with vlan filtering and tcpdump
        net: Account for all vlan headers in skb_mac_gso_segment
        MAINTAINERS: bonding: change email address
        MAINTAINERS: bonding: change email address
        ipv6: move DAD and addrconf_verify processing to workqueue
        tcp: fix get_timewait4_sock() delay computation on 64bit
        openvswitch: fix a possible deadlock and lockdep warning
        bridge: Fix handling stacked vlan tags
        bridge: Fix inabillity to retrieve vlan tags when tx offload is disabled
        vhost: validate vhost_get_vq_desc return value
        vhost: fix total length when packets are too short
        random32: avoid attempt to late reseed if in the middle of seeding
        random32: assign to network folks in MAINTAINERS
        net/mlx4_core: pass pci_device_id.driver_data to __mlx4_init_one during reset
        core, nfqueue, openvswitch: Orphan frags in skb_zerocopy and handle errors
        vlan: Set hard_header_len according to available acceleration
        ...
      49d8137a
    • David S. Miller's avatar
      Merge branch 'vlan_offloads' · 5f2feca2
      David S. Miller authored
      Vlad Yasevich says:
      
      ====================
      Audit all drivers for correct vlan_features.
      
      Some drivers set vlan acceleration features in vlan_features.  This causes
      issues with Q-in-Q/802.1ad configurations.
      
      Audit all the drivers for correct vlan_features.  Fix broken ones.
      Add a warning to vlan code to help catch future offenders.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5f2feca2
    • Vlad Yasevich's avatar
      vlan: Warn the user if lowerdev has bad vlan features. · 2adb956b
      Vlad Yasevich authored
      Some drivers incorrectly assign vlan acceleration features to
      vlan_features thus causing issues for Q-in-Q vlan configurations.
      Warn the user of such cases.
      Signed-off-by: default avatarVlad Yasevich <vyasevic@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2adb956b
    • Vlad Yasevich's avatar
      veth: Turn off vlan rx acceleration in vlan_features · 3f8c707b
      Vlad Yasevich authored
      For completeness, turn off vlan rx acceleration in vlan_features so
      that it doesn't show up on q-in-q setups.
      Signed-off-by: default avatarVlad Yasevich <vyasevic@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      3f8c707b
    • Vlad Yasevich's avatar
      ifb: Remove vlan acceleration from vlan_features · 8dd6e147
      Vlad Yasevich authored
      Do not include vlan acceleration features in vlan_features as that
      precludes correct Q-in-Q operation.
      Signed-off-by: default avatarVlad Yasevich <vyasevic@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      8dd6e147
    • Vlad Yasevich's avatar
      qlge: Do not propaged vlan tag offloads to vlans · f6d1ac4b
      Vlad Yasevich authored
      qlge driver turns off NETIF_F_HW_CTAG_FILTER, but forgets to
      turn off HW_CTAG_TX and HW_CTAG_RX on vlan devices.  With the
      current settings, q-in-q will only generate a single vlan header.
      Remember to mask off CTAG_TX and CTAG_RX features in vlan_features.
      
      CC: Shahed Shaikh <shahed.shaikh@qlogic.com>
      CC: Jitendra Kalsaria <jitendra.kalsaria@qlogic.com>
      CC: Ron Mercer <ron.mercer@qlogic.com>
      Signed-off-by: default avatarVlad Yasevich <vyasevic@redhat.com>
      Acked-by: default avatarJitendra Kalsaria <jitendra.kalsaria@qlogic.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f6d1ac4b
    • Vlad Yasevich's avatar
      bridge: Fix crash with vlan filtering and tcpdump · fc92f745
      Vlad Yasevich authored
      When the vlan filtering is enabled on the bridge, but
      the filter is not configured on the bridge device itself,
      running tcpdump on the bridge device will result in a
      an Oops with NULL pointer dereference.  The reason
      is that br_pass_frame_up() will bypass the vlan
      check because promisc flag is set.  It will then try
      to get the table pointer and process the packet based
      on the table.  Since the table pointer is NULL, we oops.
      Catch this special condition in br_handle_vlan().
      Reported-by: default avatarToshiaki Makita <makita.toshiaki@lab.ntt.co.jp>
      CC: Toshiaki Makita <makita.toshiaki@lab.ntt.co.jp>
      Signed-off-by: default avatarVlad Yasevich <vyasevic@redhat.com>
      Acked-by: default avatarToshiaki Makita <makita.toshiaki@lab.ntt.co.jp>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      fc92f745
    • Vlad Yasevich's avatar
      net: Account for all vlan headers in skb_mac_gso_segment · 53d6471c
      Vlad Yasevich authored
      skb_network_protocol() already accounts for multiple vlan
      headers that may be present in the skb.  However, skb_mac_gso_segment()
      doesn't know anything about it and assumes that skb->mac_len
      is set correctly to skip all mac headers.  That may not
      always be the case.  If we are simply forwarding the packet (via
      bridge or macvtap), all vlan headers may not be accounted for.
      
      A simple solution is to allow skb_network_protocol to return
      the vlan depth it has calculated.  This way skb_mac_gso_segment
      will correctly skip all mac headers.
      Signed-off-by: default avatarVlad Yasevich <vyasevic@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      53d6471c