1. 03 4月, 2018 13 次提交
    • L
      Merge branch 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 986b37c0
      Linus Torvalds 提交于
      Pull x86 cleanups and msr updates from Ingo Molnar:
       "The main change is a performance/latency improvement to /dev/msr
        access. The rest are misc cleanups"
      
      * 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/msr: Make rdmsrl_safe_on_cpu() scheduling safe as well
        x86/cpuid: Allow cpuid_read() to schedule
        x86/msr: Allow rdmsr_safe_on_cpu() to schedule
        x86/rtc: Stop using deprecated functions
        x86/dumpstack: Unify show_regs()
        x86/fault: Do not print IP in show_fault_oops()
        x86/MSR: Move native_* variants to msr.h
      986b37c0
    • L
      Merge branch 'x86-build-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · e68b4bad
      Linus Torvalds 提交于
      Pull x86 build updates from Ingo Molnar:
       "The biggest change is the forcing of asm-goto support on x86, which
        effectively increases the GCC minimum supported version to gcc-4.5 (on
        x86)"
      
      * 'x86-build-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/build: Don't pass in -D__KERNEL__ multiple times
        x86: Remove FAST_FEATURE_TESTS
        x86: Force asm-goto
        x86/build: Drop superfluous ALIGN from the linker script
      e68b4bad
    • L
      Merge branch 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 5e46caf6
      Linus Torvalds 提交于
      Pull x86 asm fixlets from Ingo Molnar:
       "A clobber list fix and cleanups"
      
      * 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/asm: Trim clear_page.S includes
        x86/asm: Clobber flags in clear_page()
      5e46caf6
    • L
      Merge branch 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 2451d1e5
      Linus Torvalds 提交于
      Pull x86 apic updates from Ingo Molnar:
       "The main x86 APIC/IOAPIC changes in this cycle were:
      
         - Robustify kexec support to more carefully restore IRQ hardware
           state before calling into kexec/kdump kernels. (Baoquan He)
      
         - Clean up the local APIC code a bit (Dou Liyang)
      
         - Remove unused callbacks (David Rientjes)"
      
      * 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/apic: Finish removing unused callbacks
        x86/apic: Drop logical_smp_processor_id() inline
        x86/apic: Modernize the pending interrupt code
        x86/apic: Move pending interrupt check code into it's own function
        x86/apic: Set up through-local-APIC mode on the boot CPU if 'noapic' specified
        x86/apic: Rename variables and functions related to x86_io_apic_ops
        x86/apic: Remove the (now) unused disable_IO_APIC() function
        x86/apic: Fix restoring boot IRQ mode in reboot and kexec/kdump
        x86/apic: Split disable_IO_APIC() into two functions to fix CONFIG_KEXEC_JUMP=y
        x86/apic: Split out restore_boot_irq_mode() from disable_IO_APIC()
        x86/apic: Make setup_local_APIC() static
        x86/apic: Simplify init_bsp_APIC() usage
        x86/x2apic: Mark set_x2apic_phys_mode() as __init
      2451d1e5
    • L
      Merge branch 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 67dbfc14
      Linus Torvalds 提交于
      Pull SMP hotplug updates from Ingo Molnar:
       "Simplify the CPU hot-plug state machine"
      
      * 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        cpu/hotplug: Fix unused function warning
        cpu/hotplug: Merge cpuhp_bp_states and cpuhp_ap_states
      67dbfc14
    • L
      Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 46e0d28b
      Linus Torvalds 提交于
      Pull scheduler updates from Ingo Molnar:
       "The main scheduler changes in this cycle were:
      
         - NUMA balancing improvements (Mel Gorman)
      
         - Further load tracking improvements (Patrick Bellasi)
      
         - Various NOHZ balancing cleanups and optimizations (Peter Zijlstra)
      
         - Improve blocked load handling, in particular we can now reduce and
           eventually stop periodic load updates on 'very idle' CPUs. (Vincent
           Guittot)
      
         - On isolated CPUs offload the final 1Hz scheduler tick as well, plus
           related cleanups and reorganization. (Frederic Weisbecker)
      
         - Core scheduler code cleanups (Ingo Molnar)"
      
      * 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (45 commits)
        sched/core: Update preempt_notifier_key to modern API
        sched/cpufreq: Rate limits for SCHED_DEADLINE
        sched/fair: Update util_est only on util_avg updates
        sched/cpufreq/schedutil: Use util_est for OPP selection
        sched/fair: Use util_est in LB and WU paths
        sched/fair: Add util_est on top of PELT
        sched/core: Remove TASK_ALL
        sched/completions: Use bool in try_wait_for_completion()
        sched/fair: Update blocked load when newly idle
        sched/fair: Move idle_balance()
        sched/nohz: Merge CONFIG_NO_HZ_COMMON blocks
        sched/fair: Move rebalance_domains()
        sched/nohz: Optimize nohz_idle_balance()
        sched/fair: Reduce the periodic update duration
        sched/nohz: Stop NOHZ stats when decayed
        sched/cpufreq: Provide migration hint
        sched/nohz: Clean up nohz enter/exit
        sched/fair: Update blocked load from NEWIDLE
        sched/fair: Add NOHZ stats balancing
        sched/fair: Restructure nohz_balance_kick()
        ...
      46e0d28b
    • L
      Merge branch 'ras-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 86bbbeba
      Linus Torvalds 提交于
      Pull x86 RAS updates from Ingo Molnar:
       "The main changes in this cycle were:
      
         - AMD MCE support/decoding improvements (Yazen Ghannam)
      
         - general MCE header cleanups and reorganization (Borislav Petkov)"
      
      * 'ras-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        Revert "x86/mce/AMD: Collect error info even if valid bits are not set"
        x86/MCE: Cleanup and complete struct mce fields definitions
        x86/mce/AMD: Carve out SMCA get_block_address() code
        x86/mce/AMD: Get address from already initialized block
        x86/mce/AMD, EDAC/mce_amd: Enumerate Reserved SMCA bank type
        x86/mce/AMD: Pass the bank number to smca_get_bank_type()
        x86/mce/AMD: Collect error info even if valid bits are not set
        x86/mce: Issue the 'mcelog --ascii' message only on !AMD
        x86/mce: Convert 'struct mca_config' bools to a bitfield
        x86/mce: Put private structures and definitions into the internal header
      86bbbeba
    • L
      Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 486adcea
      Linus Torvalds 提交于
      Pull perf updates from Ingo Molnar:
       "The main kernel side changes were:
      
         - Modernize the kprobe and uprobe creation/destruction tooling ABIs:
      
           The existing text based APIs (kprobe_events and uprobe_events in
           tracefs), are naive, limited ABIs in that they require user-space
           to clean up after themselves, which is both difficult and fragile
           if the tool is buggy or exits unexpectedly. In other words they are
           not really suited for modern, robust tooling.
      
           So introduce a modern, file descriptor based ABI that does not have
           these limitations: introduce the 'perf_kprobe' and 'perf_uprobe'
           PMUs and extend the perf_event_open() syscall to create events with
           a kprobe/uprobe attached to them. These [k,u]probe are associated
           with this file descriptor, so they are not available in tracefs.
      
           (Song Liu)
      
         - Intel Cannon Lake CPU support (Harry Pan)
      
         - Intel PT cleanups (Alexander Shishkin)
      
         - Improve the performance of pinned/flexible event groups by using RB
           trees (Alexey Budankov)
      
         - Add PERF_EVENT_IOC_MODIFY_ATTRIBUTES which allows the modification
           of hardware breakpoints, which new ABI variant massively speeds up
           existing tooling that uses hardware breakpoints to instrument (and
           debug) memory usage.
      
           (Milind Chabbi, Jiri Olsa)
      
         - Various Intel PEBS handling fixes and improvements, and other Intel
           PMU improvements (Kan Liang)
      
         - Various perf core improvements and optimizations (Peter Zijlstra)
      
         - ... misc cleanups, fixes and updates.
      
        There's over 200 tooling commits, here's an (imperfect) list of
        highlights:
      
         - 'perf annotate' improvements:
      
            * Recognize and handle jumps to other functions as calls, which
              improves the navigation along jumps and back. (Arnaldo Carvalho
              de Melo)
      
            * Add the 'P' hotkey in TUI annotation to dump annotation output
              into a file, to ease e-mail reporting of annotation details.
              (Arnaldo Carvalho de Melo)
      
            * Add an IPC/cycles column to the TUI (Jin Yao)
      
            * Improve s390 assembly annotation (Thomas Richter)
      
            * Refactor the output formatting logic to better separate it into
              interactive and non-interactive features and add the --stdio2
              output variant to demonstrate this. (Arnaldo Carvalho de Melo)
      
         - 'perf script' improvements:
      
            * Add Python 3 support (Jaroslav Škarvada)
      
            * Add --show-round-event (Jiri Olsa)
      
         - 'perf c2c' improvements:
      
            * Add NUMA analysis support (Jiri Olsa)
      
         - 'perf trace' improvements:
      
            * Improve PowerPC support (Ravi Bangoria)
      
         - 'perf inject' improvements:
      
            * Integrate ARM CoreSight traces (Robert Walker)
      
         - 'perf stat' improvements:
      
            * Add the --interval-count option (yuzhoujian)
      
            * Add the --timeout option (yuzhoujian)
      
         - 'perf sched' improvements (Changbin Du)
      
         - Vendor events improvements :
      
            * Add IBM s390 vendor events (Thomas Richter)
      
            * Add and improve arm64 vendor events (John Garry, Ganapatrao
              Kulkarni)
      
            * Update POWER9 vendor events (Sukadev Bhattiprolu)
      
         - Intel PT tooling improvements (Adrian Hunter)
      
         - PMU handling improvements (Agustin Vega-Frias)
      
         - Record machine topology in perf.data (Jiri Olsa)
      
         - Various overwrite related cleanups (Kan Liang)
      
         - Add arm64 dwarf post unwind support (Kim Phillips, Jean Pihet)
      
         - ... and lots of other changes, cleanups and fixes, see the shortlog
           and Git history for details"
      
      * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (262 commits)
        perf/x86/intel: Enable C-state residency events for Cannon Lake
        perf/x86/intel: Add Cannon Lake support for RAPL profiling
        perf/x86/pt, coresight: Clean up address filter structure
        perf vendor events s390: Add JSON files for IBM z14
        perf vendor events s390: Add JSON files for IBM z13
        perf vendor events s390: Add JSON files for IBM zEC12 zBC12
        perf vendor events s390: Add JSON files for IBM z196
        perf vendor events s390: Add JSON files for IBM z10EC z10BC
        perf mmap: Be consistent when checking for an unmaped ring buffer
        perf mmap: Fix accessing unmapped mmap in perf_mmap__read_done()
        perf build: Fix check-headers.sh opts assignment
        perf/x86: Update rdpmc_always_available static key to the modern API
        perf annotate: Use absolute addresses to calculate jump target offsets
        perf annotate: Defer searching for comma in raw line till it is needed
        perf annotate: Support jumping from one function to another
        perf annotate: Add "_local" to jump/offset validation routines
        perf python: Reference Py_None before returning it
        perf annotate: Mark jumps to outher functions with the call arrow
        perf annotate: Pass function descriptor to its instruction parsing routines
        perf annotate: No need to calculate notes->start twice
        ...
      486adcea
    • L
      Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 701f3b31
      Linus Torvalds 提交于
      Pull locking updates from Ingo Molnar:
       "The main changes in the locking subsystem in this cycle were:
      
         - Add the Linux Kernel Memory Consistency Model (LKMM) subsystem,
           which is an an array of tools in tools/memory-model/ that formally
           describe the Linux memory coherency model (a.k.a.
           Documentation/memory-barriers.txt), and also produce 'litmus tests'
           in form of kernel code which can be directly executed and tested.
      
           Here's a high level background article about an earlier version of
           this work on LWN.net:
      
              https://lwn.net/Articles/718628/
      
           The design principles:
      
            "There is reason to believe that Documentation/memory-barriers.txt
             could use some help, and a major purpose of this patch is to
             provide that help in the form of a design-time tool that can
             produce all valid executions of a small fragment of concurrent
             Linux-kernel code, which is called a "litmus test". This tool's
             functionality is roughly similar to a full state-space search.
             Please note that this is a design-time tool, not useful for
             regression testing. However, we hope that the underlying
             Linux-kernel memory model will be incorporated into other tools
             capable of analyzing large bodies of code for regression-testing
             purposes."
      
           [...]
      
            "A second tool is klitmus7, which converts litmus tests to
             loadable kernel modules for direct testing. As with herd7, the
             klitmus7 code is freely available from
      
               http://diy.inria.fr/sources/index.html
      
             (and via "git" at https://github.com/herd/herdtools7)"
      
           [...]
      
           Credits go to:
      
            "This patch was the result of a most excellent collaboration
             founded by Jade Alglave and also including Alan Stern, Andrea
             Parri, and Luc Maranget."
      
           ... and to the gents listed in the MAINTAINERS entry:
      
              LINUX KERNEL MEMORY CONSISTENCY MODEL (LKMM)
              M:      Alan Stern <stern@rowland.harvard.edu>
              M:      Andrea Parri <parri.andrea@gmail.com>
              M:      Will Deacon <will.deacon@arm.com>
              M:      Peter Zijlstra <peterz@infradead.org>
              M:      Boqun Feng <boqun.feng@gmail.com>
              M:      Nicholas Piggin <npiggin@gmail.com>
              M:      David Howells <dhowells@redhat.com>
              M:      Jade Alglave <j.alglave@ucl.ac.uk>
              M:      Luc Maranget <luc.maranget@inria.fr>
              M:      "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
      
           The LKMM project already found several bugs in Linux locking
           primitives and improved the understanding and the documentation of
           the Linux memory model all around.
      
         - Add KASAN instrumentation to atomic APIs (Dmitry Vyukov)
      
         - Add RWSEM API debugging and reorganize the lock debugging Kconfig
           (Waiman Long)
      
         - ... misc cleanups and other smaller changes"
      
      * 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (31 commits)
        locking/Kconfig: Restructure the lock debugging menu
        locking/Kconfig: Add LOCK_DEBUGGING_SUPPORT to make it more readable
        locking/rwsem: Add DEBUG_RWSEMS to look for lock/unlock mismatches
        lockdep: Make the lock debug output more useful
        locking/rtmutex: Handle non enqueued waiters gracefully in remove_waiter()
        locking/atomic, asm-generic, x86: Add comments for atomic instrumentation
        locking/atomic, asm-generic: Add KASAN instrumentation to atomic operations
        locking/atomic/x86: Switch atomic.h to use atomic-instrumented.h
        locking/atomic, asm-generic: Add asm-generic/atomic-instrumented.h
        locking/xchg/alpha: Remove superfluous memory barriers from the _local() variants
        tools/memory-model: Finish the removal of rb-dep, smp_read_barrier_depends(), and lockless_dereference()
        tools/memory-model: Add documentation of new litmus test
        tools/memory-model: Remove mention of docker/gentoo image
        locking/memory-barriers: De-emphasize smp_read_barrier_depends() some more
        locking/lockdep: Show unadorned pointers
        mutex: Drop linkage.h from mutex.h
        tools/memory-model: Remove rb-dep, smp_read_barrier_depends, and lockless_dereference
        tools/memory-model: Convert underscores to hyphens
        tools/memory-model: Add a S lock-based external-view litmus test
        tools/memory-model: Add required herd7 version to README file
        ...
      701f3b31
    • L
      Merge branch 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 8747a291
      Linus Torvalds 提交于
      Pull RCU updates from Ingo Molnar:
       "The main RCU subsystem changes in this cycle were:
      
        - Miscellaneous fixes, perhaps most notably removing obsolete code
          whose only purpose in life was to gather information for the
          now-removed RCU debugfs facility. Other notable changes include
          removing NO_HZ_FULL_ALL in favor of the nohz_full kernel boot
          parameter, minor optimizations for expedited grace periods, some
          added tracing, creating an RCU-specific workqueue using Tejun's new
          WQ_MEM_RECLAIM flag, and several cleanups to code and comments.
      
        - SRCU cleanups and optimizations.
      
        - Torture-test updates, perhaps most notably the adding of ARMv8
          support, but also including numerous cleanups and usability fixes"
      
      * 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (37 commits)
        rcu: Create RCU-specific workqueues with rescuers
        torture: Provide more sensible nreader/nwriter defaults for rcuperf
        torture: Grace periods do not piggyback off of themselves
        torture: Adjust rcuperf trace processing to allow for workqueues
        torture: Default jitter off when running rcuperf
        torture: Specify qemu memory size with --memory argument
        rcutorture: Add basic ARM64 support to run scripts
        rcutorture: Update kvm.sh header comment
        rcutorture: Record which grace-period primitives are tested
        rcutorture: Re-enable testing of dynamic expediting
        rcutorture: Avoid fake-writer use of undefined primitives
        rcutorture: Abstract function and module names
        rcutorture: Replace multi-instance kzalloc() with kcalloc()
        rcu: Remove SRCU throttling
        srcu: Remove dead code in srcu_gp_end()
        srcu: Reduce scans of srcu_data in counter wrap check
        srcu: Prevent sdp->srcu_gp_seq_needed_exp counter wrap
        srcu: Abstract function name
        rcu: Make expedited RCU CPU selection avoid unnecessary stores
        rcu: Trace expedited GP delays due to transitioning CPUs
        ...
      8747a291
    • L
      Merge branch 'core-headers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · cc67ccec
      Linus Torvalds 提交于
      Pull header file cleanup from Ingo Molnar:
       "Reduce <linux/interrupt.h> dependencies: a single change that drops
        two #includes from this frequently used kernel header"
      
      * 'core-headers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        headers: Drop two #included headers from <linux/interrupt.h>
      cc67ccec
    • L
      Merge branch 'core-debugobjects-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 61d1757f
      Linus Torvalds 提交于
      Pull debugobjects updates from Ingo Molnar:
       "Misc improvements:
      
         - add better instrumentation/debugging
      
         - optimize the freeing logic improve performance"
      
      * 'core-debugobjects-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        debugobjects: Avoid another unused variable warning
        debugobjects: Fix debug_objects_freed accounting
        debugobjects: Use global free list in __debug_check_no_obj_freed()
        debugobjects: Use global free list in free_object()
        debugobjects: Add global free list and the counter
        debugobjects: Export max loops counter
      61d1757f
    • L
      Merge branch 'core-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 54dce3c3
      Linus Torvalds 提交于
      Pull misc core updates from Ingo Molnar:
       "Two changes:
      
        - add membarriers to Documentation/features/
      
        - fix a minor nit in panic printk formatting"
      
      * 'core-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        panic: Add closing panic marker parenthesis
        Documentation/features, membarriers: Document membarrier-sync-core architecture support
        Documentation/features: Allow comments in arch features files
      54dce3c3
  2. 02 4月, 2018 2 次提交
    • L
      Merge tag 'drm-for-v4.17' of git://people.freedesktop.org/~airlied/linux · 320b164a
      Linus Torvalds 提交于
      Pull drm updates from Dave Airlie:
       "Cannonlake and Vega12 support are probably the two major things. This
        pull lacks nouveau, Ben had some unforseen leave and a few other
        blockers so we'll see how things look or maybe leave it for this merge
        window.
      
        core:
         - Device links to handle sound/gpu pm dependency
         - Color encoding/range properties
         - Plane clipping into plane check helper
         - Backlight helpers
         - DP TP4 + HBR3 helper support
      
        amdgpu:
         - Vega12 support
         - Enable DC by default on all supported GPUs
         - Powerplay restructuring and cleanup
         - DC bandwidth calc updates
         - DC backlight on pre-DCE11
         - TTM backing store dropping support
         - SR-IOV fixes
         - Adding "wattman" like functionality
         - DC crc support
         - Improved DC dual-link handling
      
        amdkfd:
         - GPUVM support for dGPU
         - KFD events for dGPU
         - Enable PCIe atomics for dGPUs
         - HSA process eviction support
         - Live-lock fixes for process eviction
         - VM page table allocation fix for large-bar systems
      
        panel:
         - Raydium RM68200
         - AUO G104SN02 V2
         - KEO TX31D200VM0BAA
         - ARM Versatile panels
      
        i915:
         - Cannonlake support enabled
         - AUX-F port support added
         - Icelake base enabling until internal milestone of forcewake support
         - Query uAPI interface (used for GPU topology information currently)
         - Compressed framebuffer support for sprites
         - kmem cache shrinking when GPU is idle
         - Avoid boosting GPU when waited item is being processed already
         - Avoid retraining LSPCON link unnecessarily
         - Decrease request signaling latency
         - Deprecation of I915_SET_COLORKEY_NONE
         - Kerneldoc and compiler warning cleanup for upcoming CI enforcements
         - Full range ycbcr toggling
         - HDCP support
      
        i915/gvt:
         - Big refactor for shadow ppgtt
         - KBL context save/restore via LRI cmd (Weinan)
         - Properly unmap dma for guest page (Changbin)
      
        vmwgfx:
         - Lots of various improvements
      
        etnaviv:
         - Use the drm gpu scheduler
         - prep work for GC7000L support
      
        vc4:
         - fix alpha blending
         - Expose perf counters to userspace
      
        pl111:
         - Bandwidth checking/limiting
         - Versatile panel support
      
        sun4i:
         - A83T HDMI support
         - A80 support
         - YUV plane support
         - H3/H5 HDMI support
      
        omapdrm:
         - HPD support for DVI connector
         - remove lots of static variables
      
        msm:
         - DSI updates from 10nm / SDM845
         - fix for race condition with a3xx/a4xx fence completion irq
         - some refactoring/prep work for eventual a6xx support (ie. when we
           have a userspace)
         - a5xx debugfs enhancements
         - some mdp5 fixes/cleanups to prepare for eventually merging
           writeback
         - support (ie. when we have a userspace)
      
        tegra:
         - mmap() fixes for fbdev devices
         - Overlay plane for hw cursor fix
         - dma-buf cache maintenance support
      
        mali-dp:
         - YUV->RGB conversion support
      
        rockchip:
         - rk3399/chromebook fixes and improvements
      
        rcar-du:
         - LVDS support move to drm bridge
         - DT bindings for R8A77995
         - Driver/DT support for R8A77970
      
        tilcdc:
         - DRM panel support"
      
      * tag 'drm-for-v4.17' of git://people.freedesktop.org/~airlied/linux: (1646 commits)
        drm/i915: Fix hibernation with ACPI S0 target state
        drm/i915/execlists: Use a locked clear_bit() for synchronisation with interrupt
        drm/i915: Specify which engines to reset following semaphore/event lockups
        drm/i915/dp: Write to SET_POWER dpcd to enable MST hub.
        drm/amdkfd: Use ordered workqueue to restore processes
        drm/amdgpu: Fix acquiring VM on large-BAR systems
        drm/amd/pp: clean header file hwmgr.h
        drm/amd/pp: use mlck_table.count for array loop index limit
        drm: Fix uabi regression by allowing garbage mode->type from userspace
        drm/amdgpu: Add an ATPX quirk for hybrid laptop
        drm/amdgpu: fix spelling mistake: "asssert" -> "assert"
        drm/amd/pp: Add new asic support in pp_psm.c
        drm/amd/pp: Clean up powerplay code on Vega12
        drm/amd/pp: Add smu irq handlers for legacy asics
        drm/amd/pp: Fix set wrong temperature range on smu7
        drm/amdgpu: Don't change preferred domian when fallback GTT v5
        drm/vmwgfx: Bump version patchlevel and date
        drm/vmwgfx: use monotonic event timestamps
        drm/vmwgfx: Unpin the screen object backup buffer when not used
        drm/vmwgfx: Stricter count of legacy surface device resources
        ...
      320b164a
    • L
      Linux 4.16 · 0adb3285
      Linus Torvalds 提交于
      0adb3285
  3. 01 4月, 2018 3 次提交
  4. 31 3月, 2018 21 次提交
    • H
      perf/x86/intel: Enable C-state residency events for Cannon Lake · 1159e094
      Harry Pan 提交于
      Cannon Lake supports C1/C3/C6/C7, PC2/PC3/PC6/PC7/PC8/PC9/PC10
      state residency counters, this patch enables those counters.
      
      ( The MSR information is based on Intel Software Developers' Manual,
        Vol. 4, Order No. 335592. )
      Tested-by: NPuthikorn Voravootivat <puthik@chromium.org>
      Signed-off-by: NHarry Pan <harry.pan@intel.com>
      Reviewed-by: NBenson Leung <bleung@chromium.org>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Kan.liang@intel.com
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Stephane Eranian <eranian@google.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Vince Weaver <vincent.weaver@maine.edu>
      Cc: gs0622@gmail.com
      Link: http://lkml.kernel.org/r/20180309121549.630-3-harry.pan@intel.comSigned-off-by: NIngo Molnar <mingo@kernel.org>
      1159e094
    • H
      perf/x86/intel: Add Cannon Lake support for RAPL profiling · 490d03e8
      Harry Pan 提交于
      This patch enables RAPL counters (energy consumption counters)
      support for Cannon Lake processors.
      
      ( ESU and power domains refer to Intel Software Developers' Manual,
        Vol. 4, Order No. 335592. )
      
      Usage example:
      
        $ perf list
        $ perf stat -a -e power/energy-cores/,power/energy-pkg/ sleep 10
      Tested-by: NPuthikorn Voravootivat <puthik@chromium.org>
      Signed-off-by: NHarry Pan <harry.pan@intel.com>
      Reviewed-by: NBenson Leung <bleung@chromium.org>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Stephane Eranian <eranian@google.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Vince Weaver <vincent.weaver@maine.edu>
      Cc: colin.king@canonical.com
      Cc: gs0622@gmail.com
      Cc: kan.liang@linux.intel.com
      Link: http://lkml.kernel.org/r/20180309121549.630-2-harry.pan@intel.comSigned-off-by: NIngo Molnar <mingo@kernel.org>
      490d03e8
    • C
      x86/build: Don't pass in -D__KERNEL__ multiple times · d6289f36
      Cao jin 提交于
      Some .<target>.cmd files under arch/x86 are showing two instances of
      -D__KERNEL__, like arch/x86/boot/ and arch/x86/realmode/rm/.
      
      __KERNEL__ is already defined in KBUILD_CPPFLAGS in the top Makefile,
      so it can be dropped safely.
      Signed-off-by: NCao jin <caoj.fnst@cn.fujitsu.com>
      Cc: H. Peter Anvin <hpa@zytor.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
      Cc: Michal Marek <michal.lkml@markovi.net>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: linux-kbuild@vger.kernel.org
      Link: http://lkml.kernel.org/r/20180316084944.3997-1-caoj.fnst@cn.fujitsu.comSigned-off-by: NIngo Molnar <mingo@kernel.org>
      d6289f36
    • W
      locking/Kconfig: Restructure the lock debugging menu · 19193bca
      Waiman Long 提交于
      Two config options in the lock debugging menu that are probably the most
      frequently used, as far as I am concerned, is the PROVE_LOCKING and
      LOCK_STAT. From a UI perspective, they should be front and center. So
      these two options are now moved to the top of the lock debugging menu.
      
      The DEBUG_WW_MUTEX_SLOWPATH option is also added to the PROVE_LOCKING
      umbrella.
      Signed-off-by: NWaiman Long <longman@redhat.com>
      Acked-by: NDavidlohr Bueso <dave@stgolabs.net>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Link: http://lkml.kernel.org/r/1522445280-7767-4-git-send-email-longman@redhat.comSigned-off-by: NIngo Molnar <mingo@kernel.org>
      19193bca
    • W
      locking/Kconfig: Add LOCK_DEBUGGING_SUPPORT to make it more readable · f07cbebb
      Waiman Long 提交于
      There are a couples of lock debugging Kconfig options that depends on
      the following support options:
      
       - TRACE_IRQFLAGS_SUPPORT
       - STACKTRACE_SUPPORT
       - LOCKDEP_SUPPORT
      
      That makes those lock debugging options harder to read and understand.
      So a new LOCK_DEBUGGING_SUPPORT option is added that is equivalent to
      the above three options together. That makes the Kconfig.debug file
      more readable.
      Signed-off-by: NWaiman Long <longman@redhat.com>
      Acked-by: NDavidlohr Bueso <dave@stgolabs.net>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Link: http://lkml.kernel.org/r/1522445280-7767-3-git-send-email-longman@redhat.comSigned-off-by: NIngo Molnar <mingo@kernel.org>
      f07cbebb
    • W
      locking/rwsem: Add DEBUG_RWSEMS to look for lock/unlock mismatches · 5149cbac
      Waiman Long 提交于
      For a rwsem, locking can either be exclusive or shared. The corresponding
      exclusive or shared unlock must be used. Otherwise, the protected data
      structures may get corrupted or the lock may be in an inconsistent state.
      
      In order to detect such anomaly, a new configuration option DEBUG_RWSEMS
      is added which can be enabled to look for such mismatches and print
      warnings that that happens.
      Signed-off-by: NWaiman Long <longman@redhat.com>
      Acked-by: NDavidlohr Bueso <dave@stgolabs.net>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Link: http://lkml.kernel.org/r/1522445280-7767-2-git-send-email-longman@redhat.comSigned-off-by: NIngo Molnar <mingo@kernel.org>
      5149cbac
    • I
      169310f7
    • L
      Merge tag 'kbuild-fixes-v4.16-3' of... · b5dbc287
      Linus Torvalds 提交于
      Merge tag 'kbuild-fixes-v4.16-3' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild
      
      Pull Kbuild fixes from Masahiro Yamada:
      
       - fix missed rebuild of TRIM_UNUSED_KSYMS
      
       - fix rpm-pkg for GNU tar >= 1.29
      
       - include scripts/dtc/include-prefixes/* to kernel header deb-pkg
      
       - add -no-integrated-as option ealier to fix building with Clang
      
       - fix netfilter Makefile for parallel building
      
      * tag 'kbuild-fixes-v4.16-3' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
        netfilter: nf_nat_snmp_basic: add correct dependency to Makefile
        kbuild: rpm-pkg: Support GNU tar >= 1.29
        builddeb: Fix header package regarding dtc source links
        kbuild: set no-integrated-as before incl. arch Makefile
        kbuild: make scripts/adjust_autoksyms.sh robust against timestamp races
      b5dbc287
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · a44406ec
      Linus Torvalds 提交于
      Pull networking fixes from David Miller:
      
       1) Fix RCU locking in xfrm_local_error(), from Taehee Yoo.
      
       2) Fix return value assignments and thus error checking in
          iwl_mvm_start_ap_ibss(), from Johannes Berg.
      
       3) Don't count header length twice in vti4, from Stefano Brivio.
      
       4) Fix deadlock in rt6_age_examine_exception, from Eric Dumazet.
      
       5) Fix out-of-bounds access in nf_sk_lookup_slow{v4,v6}() from Subash
          Abhinov.
      
       6) Check nladdr size in netlink_connect(), from Alexander Potapenko.
      
       7) VF representor SQ numbers are 32 not 16 bits, in mlx5 driver, from
          Or Gerlitz.
      
       8) Out of bounds read in skb_network_protocol(), from Eric Dumazet.
      
       9) r8169 driver sets driver data pointer after register_netdev() which
          is too late. Fix from Heiner Kallweit.
      
      10) Fix memory leak in mlx4 driver, from Moshe Shemesh.
      
      11) The multi-VLAN decap fix added a regression when dealing with device
          that lack a MAC header, such as tun. Fix from Toshiaki Makita.
      
      12) Fix integer overflow in dynamic interrupt coalescing code. From Tal
          Gilboa.
      
      13) Use after free in vrf code, from David Ahern.
      
      14) IPV6 route leak between VRFs fix, also from David Ahern.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (81 commits)
        net: mvneta: fix enable of all initialized RXQs
        net/ipv6: Fix route leaking between VRFs
        vrf: Fix use after free and double free in vrf_finish_output
        ipv6: sr: fix seg6 encap performances with TSO enabled
        net/dim: Fix int overflow
        vlan: Fix vlan insertion for packets without ethernet header
        net: Fix untag for vlan packets without ethernet header
        atm: iphase: fix spelling mistake: "Receiverd" -> "Received"
        vhost: validate log when IOTLB is enabled
        qede: Do not drop rx-checksum invalidated packets.
        hv_netvsc: enable multicast if necessary
        ip_tunnel: Resolve ipsec merge conflict properly.
        lan78xx: Crash in lan78xx_writ_reg (Workqueue: events lan78xx_deferred_multicast_write)
        qede: Fix barrier usage after tx doorbell write.
        vhost: correctly remove wait queue during poll failure
        net/mlx4_core: Fix memory leak while delete slave's resources
        net/mlx4_en: Fix mixed PFC and Global pause user control requests
        net/smc: use announced length in sock_recvmsg()
        llc: properly handle dev_queue_xmit() return value
        strparser: Fix sign of err codes
        ...
      a44406ec
    • Y
      net: mvneta: fix enable of all initialized RXQs · e81b5e01
      Yelena Krivosheev 提交于
      In mvneta_port_up() we enable relevant RX and TX port queues by write
      queues bit map to an appropriate register.
      
      q_map must be ZERO in the beginning of this process.
      Signed-off-by: NYelena Krivosheev <yelena@marvell.com>
      Signed-off-by: NGregory CLEMENT <gregory.clement@bootlin.com>
      Acked-by: NThomas Petazzoni <thomas.petazzoni@bootlin.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      e81b5e01
    • D
      net/ipv6: Fix route leaking between VRFs · b6cdbc85
      David Ahern 提交于
      Donald reported that IPv6 route leaking between VRFs is not working.
      The root cause is the strict argument in the call to rt6_lookup when
      validating the nexthop spec.
      
      ip6_route_check_nh validates the gateway and device (if given) of a
      route spec. It in turn could call rt6_lookup (e.g., lookup in a given
      table did not succeed so it falls back to a full lookup) and if so
      sets the strict argument to 1. That means if the egress device is given,
      the route lookup needs to return a result with the same device. This
      strict requirement does not work with VRFs (IPv4 or IPv6) because the
      oif in the flow struct is overridden with the index of the VRF device
      to trigger a match on the l3mdev rule and force the lookup to its table.
      
      The right long term solution is to add an l3mdev index to the flow
      struct such that the oif is not overridden. That solution will not
      backport well, so this patch aims for a simpler solution to relax the
      strict argument if the route spec device is an l3mdev slave. As done
      in other places, use the FLOWI_FLAG_SKIP_NH_OIF to know that the
      RT6_LOOKUP_F_IFACE flag needs to be removed.
      
      Fixes: ca254490 ("net: Add VRF support to IPv6 stack")
      Reported-by: NDonald Sharp <sharpd@cumulusnetworks.com>
      Signed-off-by: NDavid Ahern <dsahern@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      b6cdbc85
    • D
      vrf: Fix use after free and double free in vrf_finish_output · 82dd0d2a
      David Ahern 提交于
      Miguel reported an skb use after free / double free in vrf_finish_output
      when neigh_output returns an error. The vrf driver should return after
      the call to neigh_output as it takes over the skb on error path as well.
      
      Patch is a simplified version of Miguel's patch which was written for 4.9,
      and updated to top of tree.
      
      Fixes: 8f58336d ("net: Add ethernet header for pass through VRF device")
      Signed-off-by: NMiguel Fadon Perlines <mfadon@teldat.com>
      Signed-off-by: NDavid Ahern <dsahern@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      82dd0d2a
    • D
      ipv6: sr: fix seg6 encap performances with TSO enabled · 5807b22c
      David Lebrun 提交于
      Enabling TSO can lead to abysmal performances when using seg6 in
      encap mode, such as with the ixgbe driver. This patch adds a call to
      iptunnel_handle_offloads() to remove the encapsulation bit if needed.
      
      Before:
      root@comp4-seg6bpf:~# iperf3 -c fc00::55
      Connecting to host fc00::55, port 5201
      [  4] local fc45::4 port 36592 connected to fc00::55 port 5201
      [ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
      [  4]   0.00-1.00   sec   196 KBytes  1.60 Mbits/sec   47   6.66 KBytes
      [  4]   1.00-2.00   sec   304 KBytes  2.49 Mbits/sec  100   5.33 KBytes
      [  4]   2.00-3.00   sec   284 KBytes  2.32 Mbits/sec   92   5.33 KBytes
      
      After:
      root@comp4-seg6bpf:~# iperf3 -c fc00::55
      Connecting to host fc00::55, port 5201
      [  4] local fc45::4 port 43062 connected to fc00::55 port 5201
      [ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
      [  4]   0.00-1.00   sec  1.03 GBytes  8.89 Gbits/sec    0    743 KBytes
      [  4]   1.00-2.00   sec  1.03 GBytes  8.87 Gbits/sec    0    743 KBytes
      [  4]   2.00-3.00   sec  1.03 GBytes  8.87 Gbits/sec    0    743 KBytes
      Reported-by: NTom Herbert <tom@quantonium.net>
      Fixes: 6c8702c6 ("ipv6: sr: add support for SRH encapsulation and injection with lwtunnels")
      Signed-off-by: NDavid Lebrun <dlebrun@google.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      5807b22c
    • L
      Merge tag 'ceph-for-4.16-rc8' of git://github.com/ceph/ceph-client · 9dd23268
      Linus Torvalds 提交于
      Pull ceph fix from Ilya Dryomov:
       "A fix for a dio-enabled loop on ceph deadlock from Zheng, marked for
        stable"
      
      * tag 'ceph-for-4.16-rc8' of git://github.com/ceph/ceph-client:
        ceph: only dirty ITER_IOVEC pages for direct read
      9dd23268
    • L
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 72573481
      Linus Torvalds 提交于
      Pull KVM fixes from Radim Krčmář:
       "PPC:
         - Fix a bug causing occasional machine check exceptions on POWER8
           hosts (introduced in 4.16-rc1)
      
        x86:
         - Fix a guest crashing regression with nested VMX and restricted
           guest (introduced in 4.16-rc1)
      
         - Fix dependency check for pv tlb flush (the wrong dependency that
           effectively disabled the feature was added in 4.16-rc4, the
           original feature in 4.16-rc1, so it got decent testing)"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
        KVM: x86: Fix pv tlb flush dependencies
        KVM: nVMX: sync vmcs02 segment regs prior to vmx_set_cr0
        KVM: PPC: Book3S HV: Fix duplication of host SLB entries
      72573481
    • L
      Merge branch 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · bd886137
      Linus Torvalds 提交于
      Pull i2c fix from Wolfram Sang:
       "A simple but worthwhile I2C driver fix for 4.16"
      
      * 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
        i2c: i2c-stm32f7: fix no check on returned setup
      bd886137
    • L
      Merge tag 'sound-4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · ef82f598
      Linus Torvalds 提交于
      Pull sound fixes from Takashi Iwai:
       "Very small fixes (all one-liners) at this time.
      
        One fix is for a PCM core stuff to correct the mmap behavior on
        non-x86. It doesn't show on most machines but mostly only for exotic
        non-interleaved formats"
      
      * tag 'sound-4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: pcm: potential uninitialized return values
        ALSA: pcm: Use dma_bytes as size parameter in dma_mmap_coherent()
        ALSA: usb-audio: Add native DSD support for TEAC UD-301
      ef82f598
    • T
      net/dim: Fix int overflow · f97c3dc3
      Tal Gilboa 提交于
      When calculating difference between samples, the values
      are multiplied by 100. Large values may cause int overflow
      when multiplied (usually on first iteration).
      Fixed by forcing 100 to be of type unsigned long.
      
      Fixes: 4c4dbb4a ("net/mlx5e: Move dynamic interrupt coalescing code to include/linux")
      Signed-off-by: NTal Gilboa <talgi@mellanox.com>
      Reviewed-by: NAndy Gospodarek <gospo@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f97c3dc3
    • D
      Merge branch 'vlan-fix' · 52a9692a
      David S. Miller 提交于
      Toshiaki Makita says:
      
      ====================
      Fix vlan tag handling for vlan packets without ethernet headers
      
      Eric Dumazet reported syzbot found a new bug which leads to underflow of
      size argument of memmove(), causing crash[1]. This can be triggered by tun
      devices.
      
      The underflow happened because skb_vlan_untag() did not expect vlan packets
      without ethernet headers, and tun can produce such packets.
      I also checked vlan_insert_inner_tag() and found a similar bug.
      
      This series fixes these problems.
      
      [1] https://marc.info/?l=linux-netdev&m=152221753920510&w=2
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      52a9692a
    • T
      vlan: Fix vlan insertion for packets without ethernet header · c769accd
      Toshiaki Makita 提交于
      In some situation vlan packets do not have ethernet headers. One example
      is packets from tun devices. Users can specify vlan protocol in tun_pi
      field instead of IP protocol. When we have a vlan device with reorder_hdr
      disabled on top of the tun device, such packets from tun devices are
      untagged in skb_vlan_untag() and vlan headers will be inserted back in
      vlan_insert_inner_tag().
      
      vlan_insert_inner_tag() however did not expect packets without ethernet
      headers, so in such a case size argument for memmove() underflowed.
      
      We don't need to copy headers for packets which do not have preceding
      headers of vlan headers, so skip memmove() in that case.
      Also don't write vlan protocol in skb->data when it does not have enough
      room for it.
      
      Fixes: cbe7128c ("vlan: Fix out of order vlan headers with reorder header off")
      Signed-off-by: NToshiaki Makita <makita.toshiaki@lab.ntt.co.jp>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      c769accd
    • T
      net: Fix untag for vlan packets without ethernet header · ae474573
      Toshiaki Makita 提交于
      In some situation vlan packets do not have ethernet headers. One example
      is packets from tun devices. Users can specify vlan protocol in tun_pi
      field instead of IP protocol, and skb_vlan_untag() attempts to untag such
      packets.
      
      skb_vlan_untag() (more precisely, skb_reorder_vlan_header() called by it)
      however did not expect packets without ethernet headers, so in such a case
      size argument for memmove() underflowed and triggered crash.
      
      ====
      BUG: unable to handle kernel paging request at ffff8801cccb8000
      IP: __memmove+0x24/0x1a0 arch/x86/lib/memmove_64.S:43
      PGD 9cee067 P4D 9cee067 PUD 1d9401063 PMD 1cccb7063 PTE 2810100028101
      Oops: 000b [#1] SMP KASAN
      Dumping ftrace buffer:
         (ftrace buffer empty)
      Modules linked in:
      CPU: 1 PID: 17663 Comm: syz-executor2 Not tainted 4.16.0-rc7+ #368
      Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
      RIP: 0010:__memmove+0x24/0x1a0 arch/x86/lib/memmove_64.S:43
      RSP: 0018:ffff8801cc046e28 EFLAGS: 00010287
      RAX: ffff8801ccc244c4 RBX: fffffffffffffffe RCX: fffffffffff6c4c2
      RDX: fffffffffffffffe RSI: ffff8801cccb7ffc RDI: ffff8801cccb8000
      RBP: ffff8801cc046e48 R08: ffff8801ccc244be R09: ffffed0039984899
      R10: 0000000000000001 R11: ffffed0039984898 R12: ffff8801ccc244c4
      R13: ffff8801ccc244c0 R14: ffff8801d96b7c06 R15: ffff8801d96b7b40
      FS:  00007febd562d700(0000) GS:ffff8801db300000(0000) knlGS:0000000000000000
      CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      CR2: ffff8801cccb8000 CR3: 00000001ccb2f006 CR4: 00000000001606e0
      DR0: 0000000020000000 DR1: 0000000020000000 DR2: 0000000000000000
      DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000600
      Call Trace:
       memmove include/linux/string.h:360 [inline]
       skb_reorder_vlan_header net/core/skbuff.c:5031 [inline]
       skb_vlan_untag+0x470/0xc40 net/core/skbuff.c:5061
       __netif_receive_skb_core+0x119c/0x3460 net/core/dev.c:4460
       __netif_receive_skb+0x2c/0x1b0 net/core/dev.c:4627
       netif_receive_skb_internal+0x10b/0x670 net/core/dev.c:4701
       netif_receive_skb+0xae/0x390 net/core/dev.c:4725
       tun_rx_batched.isra.50+0x5ee/0x870 drivers/net/tun.c:1555
       tun_get_user+0x299e/0x3c20 drivers/net/tun.c:1962
       tun_chr_write_iter+0xb9/0x160 drivers/net/tun.c:1990
       call_write_iter include/linux/fs.h:1782 [inline]
       new_sync_write fs/read_write.c:469 [inline]
       __vfs_write+0x684/0x970 fs/read_write.c:482
       vfs_write+0x189/0x510 fs/read_write.c:544
       SYSC_write fs/read_write.c:589 [inline]
       SyS_write+0xef/0x220 fs/read_write.c:581
       do_syscall_64+0x281/0x940 arch/x86/entry/common.c:287
       entry_SYSCALL_64_after_hwframe+0x42/0xb7
      RIP: 0033:0x454879
      RSP: 002b:00007febd562cc68 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
      RAX: ffffffffffffffda RBX: 00007febd562d6d4 RCX: 0000000000454879
      RDX: 0000000000000157 RSI: 0000000020000180 RDI: 0000000000000014
      RBP: 000000000072bea0 R08: 0000000000000000 R09: 0000000000000000
      R10: 0000000000000000 R11: 0000000000000246 R12: 00000000ffffffff
      R13: 00000000000006b0 R14: 00000000006fc120 R15: 0000000000000000
      Code: 90 90 90 90 90 90 90 48 89 f8 48 83 fa 20 0f 82 03 01 00 00 48 39 fe 7d 0f 49 89 f0 49 01 d0 49 39 f8 0f 8f 9f 00 00 00 48 89 d1 <f3> a4 c3 48 81 fa a8 02 00 00 72 05 40 38 fe 74 3b 48 83 ea 20
      RIP: __memmove+0x24/0x1a0 arch/x86/lib/memmove_64.S:43 RSP: ffff8801cc046e28
      CR2: ffff8801cccb8000
      ====
      
      We don't need to copy headers for packets which do not have preceding
      headers of vlan headers, so skip memmove() in that case.
      
      Fixes: 4bbb3e0e ("net: Fix vlan untag for bridge and vlan_dev with reorder_hdr off")
      Reported-by: NEric Dumazet <eric.dumazet@gmail.com>
      Signed-off-by: NToshiaki Makita <makita.toshiaki@lab.ntt.co.jp>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ae474573
  5. 30 3月, 2018 1 次提交