1. 05 Sep, 2017 1 commit
    • Linus Torvalds's avatar
      Merge branch 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 24e700e2
      Linus Torvalds authored
      Pull x86 apic updates from Thomas Gleixner:
       "This update provides:
      
         - Cleanup of the IDT management including the removal of the extra
           tracing IDT. A first step to cleanup the vector management code.
      
         - The removal of the paravirt op adjust_exception_frame. This is a
           XEN specific issue, but merged through this branch to avoid nasty
           merge collisions
      
         - Prevent dmesg spam about the TSC DEADLINE bug, when the CPU has
           disabled the TSC DEADLINE timer in CPUID.
      
         - Adjust a debug message in the ioapic code to print out the
           information correctly"
      
      * 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (51 commits)
        x86/idt: Fix the X86_TRAP_BP gate
        x86/xen: Get rid of paravirt op adjust_exception_frame
        x86/eisa: Add missing include
        x86/idt: Remove superfluous ALIGNment
        x86/apic: Silence "FW_BUG TSC_DEADLINE disabled due to Errata" on CPUs without the feature
        x86/idt: Remove the tracing IDT leftovers
        x86/idt: Hide set_intr_gate()
        x86/idt: Simplify alloc_intr_gate()
        x86/idt: Deinline setup functions
        x86/idt: Remove unused functions/inlines
        x86/idt: Move interrupt gate initialization to IDT code
        x86/idt: Move APIC gate initialization to tables
        x86/idt: Move regular trap init to tables
        x86/idt: Move IST stack based traps to table init
        x86/idt: Move debug stack init to table based
        x86/idt: Switch early trap init to IDT tables
        x86/idt: Prepare for table based init
        x86/idt: Move early IDT setup out of 32-bit asm
        x86/idt: Move early IDT handler setup to IDT code
        x86/idt: Consolidate IDT invalidation
        ...
      24e700e2
  2. 04 Sep, 2017 24 commits
    • Linus Torvalds's avatar
      Merge branch 'x86-cache-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · f5709176
      Linus Torvalds authored
      Pull x86 cache quality monitoring update from Thomas Gleixner:
       "This update provides a complete rewrite of the Cache Quality
        Monitoring (CQM) facility.
      
        The existing CQM support was duct taped into perf with a lot of issues
        and the attempts to fix those turned out to be incomplete and
        horrible.
      
        After lengthy discussions it was decided to integrate the CQM support
        into the Resource Director Technology (RDT) facility, which is the
        obvious choise as in hardware CQM is part of RDT. This allowed to add
        Memory Bandwidth Monitoring support on top.
      
        As a result the mechanisms for allocating cache/memory bandwidth and
        the corresponding monitoring mechanisms are integrated into a single
        management facility with a consistent user interface"
      
      * 'x86-cache-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (37 commits)
        x86/intel_rdt: Turn off most RDT features on Skylake
        x86/intel_rdt: Add command line options for resource director technology
        x86/intel_rdt: Move special case code for Haswell to a quirk function
        x86/intel_rdt: Remove redundant ternary operator on return
        x86/intel_rdt/cqm: Improve limbo list processing
        x86/intel_rdt/mbm: Fix MBM overflow handler during CPU hotplug
        x86/intel_rdt: Modify the intel_pqr_state for better performance
        x86/intel_rdt/cqm: Clear the default RMID during hotcpu
        x86/intel_rdt: Show bitmask of shareable resource with other executing units
        x86/intel_rdt/mbm: Handle counter overflow
        x86/intel_rdt/mbm: Add mbm counter initialization
        x86/intel_rdt/mbm: Basic counting of MBM events (total and local)
        x86/intel_rdt/cqm: Add CPU hotplug support
        x86/intel_rdt/cqm: Add sched_in support
        x86/intel_rdt: Introduce rdt_enable_key for scheduling
        x86/intel_rdt/cqm: Add mount,umount support
        x86/intel_rdt/cqm: Add rmdir support
        x86/intel_rdt: Separate the ctrl bits from rmdir
        x86/intel_rdt/cqm: Add mon_data
        x86/intel_rdt: Prepare for RDT monitor data support
        ...
      f5709176
    • Linus Torvalds's avatar
      Merge branch 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · d725c7ac
      Linus Torvalds authored
      Pull CPU hotplug fix from Thomas Gleixner:
       "A single fix to handle the removal of the first dynamic CPU hotplug
        state correctly"
      
      * 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        smp/hotplug: Handle removal correctly in cpuhp_store_callbacks()
      d725c7ac
    • Linus Torvalds's avatar
      Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 93cc1228
      Linus Torvalds authored
      Pull irq updates from Thomas Gleixner:
       "The interrupt subsystem delivers this time:
      
         - Refactoring of the GIC-V3 driver to prepare for the GIC-V4 support
      
         - Initial GIC-V4 support
      
         - Consolidation of the FSL MSI support
      
         - Utilize the effective affinity interface in various ARM irqchip
           drivers
      
         - Yet another interrupt chip driver (UniPhier AIDET)
      
         - Bulk conversion of the irq chip driver to use %pOF
      
         - The usual small fixes and improvements all over the place"
      
      * 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (77 commits)
        irqchip/ls-scfg-msi: Add MSI affinity support
        irqchip/ls-scfg-msi: Add LS1043a v1.1 MSI support
        irqchip/ls-scfg-msi: Add LS1046a MSI support
        arm64: dts: ls1046a: Add MSI dts node
        arm64: dts: ls1043a: Share all MSIs
        arm: dts: ls1021a: Share all MSIs
        arm64: dts: ls1043a: Fix typo of MSI compatible string
        arm: dts: ls1021a: Fix typo of MSI compatible string
        irqchip/ls-scfg-msi: Fix typo of MSI compatible strings
        irqchip/irq-bcm7120-l2: Use correct I/O accessors for irq_fwd_mask
        irqchip/mmp: Make mmp_intc_conf const
        irqchip/gic: Make irq_chip const
        irqchip/gic-v3: Advertise GICv4 support to KVM
        irqchip/gic-v4: Enable low-level GICv4 operations
        irqchip/gic-v4: Add some basic documentation
        irqchip/gic-v4: Add VLPI configuration interface
        irqchip/gic-v4: Add VPE command interface
        irqchip/gic-v4: Add per-VM VPE domain creation
        irqchip/gic-v3-its: Set implementation defined bit to enable VLPIs
        irqchip/gic-v3-its: Allow doorbell interrupts to be injected/cleared
        ...
      93cc1228
    • Linus Torvalds's avatar
      Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · dd90cccf
      Linus Torvalds authored
      Pull timer fixes from Thomas Gleixner:
       "A rather small update for the time(r) subsystem:
      
         - A new clocksource driver IMX-TPM
      
         - Minor fixes to the alarmtimer facility
      
         - Device tree cleanups for Renesas drivers
      
         - A new kselftest and fixes for the timer related tests
      
         - Conversion of the clocksource drivers to use %pOF
      
         - Use the proper helpers to access rlimits in the posix-cpu-timer
           code"
      
      * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        alarmtimer: Ensure RTC module is not unloaded
        clocksource: Convert to using %pOF instead of full_name
        clocksource/drivers/bcm2835: Remove message for a memory allocation failure
        devicetree: bindings: Remove deprecated properties
        devicetree: bindings: Remove unused 32-bit CMT bindings
        devicetree: bindings: Deprecate property, update example
        devicetree: bindings: r8a73a4 and R-Car Gen2 CMT bindings
        devicetree: bindings: R-Car Gen2 CMT0 and CMT1 bindings
        devicetree: bindings: Remove sh7372 CMT binding
        clocksource/drivers/imx-tpm: Add imx tpm timer support
        dt-bindings: timer: Add nxp tpm timer binding doc
        posix-cpu-timers: Use dedicated helper to access rlimit values
        alarmtimer: Fix unavailable wake-up source in sysfs
        timekeeping: Use proper timekeeper for debug code
        kselftests: timers: set-timer-lat: Add one-shot timer test cases
        kselftests: timers: set-timer-lat: Tweak reporting when timer fires early
        kselftests: timers: freq-step: Fix build warning
        kselftests: timers: freq-step: Define ADJ_SETOFFSET if device has older kernel headers
      dd90cccf
    • Linus Torvalds's avatar
      Merge branch 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · b1b6f83a
      Linus Torvalds authored
      Pull x86 mm changes from Ingo Molnar:
       "PCID support, 5-level paging support, Secure Memory Encryption support
      
        The main changes in this cycle are support for three new, complex
        hardware features of x86 CPUs:
      
         - Add 5-level paging support, which is a new hardware feature on
           upcoming Intel CPUs allowing up to 128 PB of virtual address space
           and 4 PB of physical RAM space - a 512-fold increase over the old
           limits. (Supercomputers of the future forecasting hurricanes on an
           ever warming planet can certainly make good use of more RAM.)
      
           Many of the necessary changes went upstream in previous cycles,
           v4.14 is the first kernel that can enable 5-level paging.
      
           This feature is activated via CONFIG_X86_5LEVEL=y - disabled by
           default.
      
           (By Kirill A. Shutemov)
      
         - Add 'encrypted memory' support, which is a new hardware feature on
           upcoming AMD CPUs ('Secure Memory Encryption', SME) allowing system
           RAM to be encrypted and decrypted (mostly) transparently by the
           CPU, with a little help from the kernel to transition to/from
           encrypted RAM. Such RAM should be more secure against various
           attacks like RAM access via the memory bus and should make the
           radio signature of memory bus traffic harder to intercept (and
           decrypt) as well.
      
           This feature is activated via CONFIG_AMD_MEM_ENCRYPT=y - disabled
           by default.
      
           (By Tom Lendacky)
      
         - Enable PCID optimized TLB flushing on newer Intel CPUs: PCID is a
           hardware feature that attaches an address space tag to TLB entries
           and thus allows to skip TLB flushing in many cases, even if we
           switch mm's.
      
           (By Andy Lutomirski)
      
        All three of these features were in the works for a long time, and
        it's coincidence of the three independent development paths that they
        are all enabled in v4.14 at once"
      
      * 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (65 commits)
        x86/mm: Enable RCU based page table freeing (CONFIG_HAVE_RCU_TABLE_FREE=y)
        x86/mm: Use pr_cont() in dump_pagetable()
        x86/mm: Fix SME encryption stack ptr handling
        kvm/x86: Avoid clearing the C-bit in rsvd_bits()
        x86/CPU: Align CR3 defines
        x86/mm, mm/hwpoison: Clear PRESENT bit for kernel 1:1 mappings of poison pages
        acpi, x86/mm: Remove encryption mask from ACPI page protection type
        x86/mm, kexec: Fix memory corruption with SME on successive kexecs
        x86/mm/pkeys: Fix typo in Documentation/x86/protection-keys.txt
        x86/mm/dump_pagetables: Speed up page tables dump for CONFIG_KASAN=y
        x86/mm: Implement PCID based optimization: try to preserve old TLB entries using PCID
        x86: Enable 5-level paging support via CONFIG_X86_5LEVEL=y
        x86/mm: Allow userspace have mappings above 47-bit
        x86/mm: Prepare to expose larger address space to userspace
        x86/mpx: Do not allow MPX if we have mappings above 47-bit
        x86/mm: Rename tasksize_32bit/64bit to task_size_32bit/64bit()
        x86/xen: Redefine XEN_ELFNOTE_INIT_P2M using PUD_SIZE * PTRS_PER_PUD
        x86/mm/dump_pagetables: Fix printout of p4d level
        x86/mm/dump_pagetables: Generalize address normalization
        x86/boot: Fix memremap() related build failure
        ...
      b1b6f83a
    • Linus Torvalds's avatar
      Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 5f82e71a
      Linus Torvalds authored
      Pull locking updates from Ingo Molnar:
      
       - Add 'cross-release' support to lockdep, which allows APIs like
         completions, where it's not the 'owner' who releases the lock, to be
         tracked. It's all activated automatically under
         CONFIG_PROVE_LOCKING=y.
      
       - Clean up (restructure) the x86 atomics op implementation to be more
         readable, in preparation of KASAN annotations. (Dmitry Vyukov)
      
       - Fix static keys (Paolo Bonzini)
      
       - Add killable versions of down_read() et al (Kirill Tkhai)
      
       - Rework and fix jump_label locking (Marc Zyngier, Paolo Bonzini)
      
       - Rework (and fix) tlb_flush_pending() barriers (Peter Zijlstra)
      
       - Remove smp_mb__before_spinlock() and convert its usages, introduce
         smp_mb__after_spinlock() (Peter Zijlstra)
      
      * 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (56 commits)
        locking/lockdep/selftests: Fix mixed read-write ABBA tests
        sched/completion: Avoid unnecessary stack allocation for COMPLETION_INITIALIZER_ONSTACK()
        acpi/nfit: Fix COMPLETION_INITIALIZER_ONSTACK() abuse
        locking/pvqspinlock: Relax cmpxchg's to improve performance on some architectures
        smp: Avoid using two cache lines for struct call_single_data
        locking/lockdep: Untangle xhlock history save/restore from task independence
        locking/refcounts, x86/asm: Disable CONFIG_ARCH_HAS_REFCOUNT for the time being
        futex: Remove duplicated code and fix undefined behaviour
        Documentation/locking/atomic: Finish the document...
        locking/lockdep: Fix workqueue crossrelease annotation
        workqueue/lockdep: 'Fix' flush_work() annotation
        locking/lockdep/selftests: Add mixed read-write ABBA tests
        mm, locking/barriers: Clarify tlb_flush_pending() barriers
        locking/lockdep: Make CONFIG_LOCKDEP_CROSSRELEASE and CONFIG_LOCKDEP_COMPLETIONS truly non-interactive
        locking/lockdep: Explicitly initialize wq_barrier::done::map
        locking/lockdep: Rename CONFIG_LOCKDEP_COMPLETE to CONFIG_LOCKDEP_COMPLETIONS
        locking/lockdep: Reword title of LOCKDEP_CROSSRELEASE config
        locking/lockdep: Make CONFIG_LOCKDEP_CROSSRELEASE part of CONFIG_PROVE_LOCKING
        locking/refcounts, x86/asm: Implement fast refcount overflow protection
        locking/lockdep: Fix the rollback and overwrite detection logic in crossrelease
        ...
      5f82e71a
    • Linus Torvalds's avatar
      Merge branch 'x86-syscall-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 6c51e67b
      Linus Torvalds authored
      Pull syscall updates from Ingo Molnar:
       "Improve the security of set_fs(): we now check the address limit on a
        number of key platforms (x86, arm, arm64) before returning to
        user-space - without adding overhead to the typical system call fast
        path"
      
      * 'x86-syscall-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        arm64/syscalls: Check address limit on user-mode return
        arm/syscalls: Check address limit on user-mode return
        x86/syscalls: Check address limit on user-mode return
      6c51e67b
    • Linus Torvalds's avatar
      Merge branch 'x86-spinlocks-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · e0a195b5
      Linus Torvalds authored
      Pull x86 spinlock update from Ingo Molnar:
       "Convert an NMI lock to raw"
      
      [ Clarification: it's not that the lock itself is NMI-safe, it's about
        NMI registration called from RT contexts  - Linus ]
      
      * 'x86-spinlocks-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/nmi: Use raw lock
      e0a195b5
    • Linus Torvalds's avatar
      Merge branch 'x86-microcode-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 0098410d
      Linus Torvalds authored
      Pull x86 microcode loading updates from Ingo Molnar:
       "Update documentation, improve robustness and fix a memory leak"
      
      * 'x86-microcode-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/microcode/intel: Improve microcode patches saving flow
        x86/microcode: Document the three loading methods
        x86/microcode/AMD: Free unneeded patch before exit from update_cache()
      0098410d
    • Linus Torvalds's avatar
      Merge branch 'x86-debug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · f29139bf
      Linus Torvalds authored
      Pull x86 debug updates from Ingo Molnar:
       "Various fixes to the NUMA emulation code"
      
      * 'x86-debug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/numa_emulation: Recalculate numa_nodes_parsed from emulated nodes
        x86/numa_emulation: Assign physnode_mask directly from numa_nodes_parsed
        x86/numa_emulation: Refine the calculation of max_emu_nid and dfl_phys_nid
      f29139bf
    • Linus Torvalds's avatar
      Merge branch 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · a1400cdb
      Linus Torvalds authored
      Pull x86 cpuid updates from Ingo Molnar:
       "AMD F17h related updates"
      
      * 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/cpu/amd: Hide unused legacy_fixup_core_id() function
        x86/cpu/amd: Derive L3 shared_cpu_map from cpu_llc_shared_mask
        x86/cpu/amd: Limit cpu_core_id fixup to families older than F17h
      a1400cdb
    • Linus Torvalds's avatar
      Merge branch 'x86-build-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · d5e54c4e
      Linus Torvalds authored
      Pull x86 build updates from Ingo Molnar:
       "More Clang support related fixes"
      
      * 'x86-build-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/build: Use cc-option to validate stack alignment parameter
        x86/build: Fix stack alignment for CLang
        x86/build: Drop unused mflags-y
      d5e54c4e
    • Linus Torvalds's avatar
      Merge branch 'x86-boot-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 45153920
      Linus Torvalds authored
      Pull x86 boot updates from Ingo Molnar:
       "The main changes are KASL related fixes and cleanups: in particular we
        now exclude certain physical memory ranges as KASLR randomization
        targets that have proven to be unreliable (early-)RAM on some firmware
        versions"
      
      * 'x86-boot-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/boot/KASLR: Work around firmware bugs by excluding EFI_BOOT_SERVICES_* and EFI_LOADER_* from KASLR's choice
        x86/boot/KASLR: Prefer mirrored memory regions for the kernel physical address
        efi: Introduce efi_early_memdesc_ptr to get pointer to memmap descriptor
        x86/boot/KASLR: Rename process_e820_entry() into process_mem_region()
        x86/boot/KASLR: Switch to pass struct mem_vector to process_e820_entry()
        x86/boot/KASLR: Wrap e820 entries walking code into new function process_e820_entries()
      45153920
    • Linus Torvalds's avatar
      Merge branch 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · b0c79f49
      Linus Torvalds authored
      Pull x86 asm updates from Ingo Molnar:
      
       - Introduce the ORC unwinder, which can be enabled via
         CONFIG_ORC_UNWINDER=y.
      
         The ORC unwinder is a lightweight, Linux kernel specific debuginfo
         implementation, which aims to be DWARF done right for unwinding.
         Objtool is used to generate the ORC unwinder tables during build, so
         the data format is flexible and kernel internal: there's no
         dependency on debuginfo created by an external toolchain.
      
         The ORC unwinder is almost two orders of magnitude faster than the
         (out of tree) DWARF unwinder - which is important for perf call graph
         profiling. It is also significantly simpler and is coded defensively:
         there has not been a single ORC related kernel crash so far, even
         with early versions. (knock on wood!)
      
         But the main advantage is that enabling the ORC unwinder allows
         CONFIG_FRAME_POINTERS to be turned off - which speeds up the kernel
         measurably:
      
         With frame pointers disabled, GCC does not have to add frame pointer
         instrumentation code to every function in the kernel. The kernel's
         .text size decreases by about 3.2%, resulting in better cache
         utilization and fewer instructions executed, resulting in a broad
         kernel-wide speedup. Average speedup of system calls should be
         roughly in the 1-3% range - measurements by Mel Gorman [1] have shown
         a speedup of 5-10% for some function execution intense workloads.
      
         The main cost of the unwinder is that the unwinder data has to be
         stored in RAM: the memory cost is 2-4MB of RAM, depending on kernel
         config - which is a modest cost on modern x86 systems.
      
         Given how young the ORC unwinder code is it's not enabled by default
         - but given the performance advantages the plan is to eventually make
         it the default unwinder on x86.
      
         See Documentation/x86/orc-unwinder.txt for more details.
      
       - Remove lguest support: its intended role was that of a temporary
         proof of concept for virtualization, plus its removal will enable the
         reduction (removal) of the paravirt API as well, so Rusty agreed to
         its removal. (Juergen Gross)
      
       - Clean up and fix FSGS related functionality (Andy Lutomirski)
      
       - Clean up IO access APIs (Andy Shevchenko)
      
       - Enhance the symbol namespace (Jiri Slaby)
      
      * 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (47 commits)
        objtool: Handle GCC stack pointer adjustment bug
        x86/entry/64: Use ENTRY() instead of ALIGN+GLOBAL for stub32_clone()
        x86/fpu/math-emu: Add ENDPROC to functions
        x86/boot/64: Extract efi_pe_entry() from startup_64()
        x86/boot/32: Extract efi_pe_entry() from startup_32()
        x86/lguest: Remove lguest support
        x86/paravirt/xen: Remove xen_patch()
        objtool: Fix objtool fallthrough detection with function padding
        x86/xen/64: Fix the reported SS and CS in SYSCALL
        objtool: Track DRAP separately from callee-saved registers
        objtool: Fix validate_branch() return codes
        x86: Clarify/fix no-op barriers for text_poke_bp()
        x86/switch_to/64: Rewrite FS/GS switching yet again to fix AMD CPUs
        selftests/x86/fsgsbase: Test selectors 1, 2, and 3
        x86/fsgsbase/64: Report FSBASE and GSBASE correctly in core dumps
        x86/fsgsbase/64: Fully initialize FS and GS state in start_thread_common
        x86/asm: Fix UNWIND_HINT_REGS macro for older binutils
        x86/asm/32: Fix regs_get_register() on segment registers
        x86/xen/64: Rearrange the SYSCALL entries
        x86/asm/32: Remove a bunch of '& 0xffff' from pt_regs segment reads
        ...
      b0c79f49
    • Linus Torvalds's avatar
      Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · f213a6c8
      Linus Torvalds authored
      Pull scheduler updates from Ingo Molnar:
       "The main changes in this cycle were:
      
         - fix affine wakeups (Peter Zijlstra)
      
         - improve CPU onlining (and general bootup) scalability on systems
           with ridiculous number (thousands) of CPUs (Peter Zijlstra)
      
         - sched/numa updates (Rik van Riel)
      
         - sched/deadline updates (Byungchul Park)
      
         - sched/cpufreq enhancements and related cleanups (Viresh Kumar)
      
         - sched/debug enhancements (Xie XiuQi)
      
         - various fixes"
      
      * 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (27 commits)
        sched/debug: Optimize sched_domain sysctl generation
        sched/topology: Avoid pointless rebuild
        sched/topology, cpuset: Avoid spurious/wrong domain rebuilds
        sched/topology: Improve comments
        sched/topology: Fix memory leak in __sdt_alloc()
        sched/completion: Document that reinit_completion() must be called after complete_all()
        sched/autogroup: Fix error reporting printk text in autogroup_create()
        sched/fair: Fix wake_affine() for !NUMA_BALANCING
        sched/debug: Intruduce task_state_to_char() helper function
        sched/debug: Show task state in /proc/sched_debug
        sched/debug: Use task_pid_nr_ns in /proc/$pid/sched
        sched/core: Remove unnecessary initialization init_idle_bootup_task()
        sched/deadline: Change return value of cpudl_find()
        sched/deadline: Make find_later_rq() choose a closer CPU in topology
        sched/numa: Scale scan period with tasks in group and shared/private
        sched/numa: Slow down scan rate if shared faults dominate
        sched/pelt: Fix false running accounting
        sched: Mark pick_next_task_dl() and build_sched_domain() as static
        sched/cpupri: Don't re-initialize 'struct cpupri'
        sched/deadline: Don't re-initialize 'struct cpudl'
        ...
      f213a6c8
    • Linus Torvalds's avatar
      Merge branch 'ras-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 621bee34
      Linus Torvalds authored
      Pull RAS fix from Ingo Molnar:
       "A single change fixing SMCA bank initialization on systems that don't
        have CPU0 enabled"
      
      * 'ras-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/mce/AMD: Allow any CPU to initialize the smca_banks array
      621bee34
    • Linus Torvalds's avatar
      Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 9657752c
      Linus Torvalds authored
      Pull perf updates from Ingo Molnar:
       "Kernel side changes:
      
         - Add branch type profiling/tracing support. (Jin Yao)
      
         - Add the PERF_SAMPLE_PHYS_ADDR ABI to allow the tracing/profiling of
           physical memory addresses, where the PMU supports it. (Kan Liang)
      
         - Export some PMU capability details in the new
           /sys/bus/event_source/devices/cpu/caps/ sysfs directory. (Andi
           Kleen)
      
         - Aux data fixes and updates (Will Deacon)
      
         - kprobes fixes and updates (Masami Hiramatsu)
      
         - AMD uncore PMU driver fixes and updates (Janakarajan Natarajan)
      
        On the tooling side, here's a (limited!) list of highlights - there
        were many other changes that I could not list, see the shortlog and
        git history for details:
      
        UI improvements:
      
         - Implement a visual marker for fused x86 instructions in the
           annotate TUI browser, available now in 'perf report', more work
           needed to have it available as well in 'perf top' (Jin Yao)
      
           Further explanation from one of Jin's patches:
      
                   │   ┌──cmpl   $0x0,argp_program_version_hook
             81.93 │   ├──je     20
                   │   │  lock   cmpxchg %esi,0x38a9a4(%rip)
                   │   │↓ jne    29
                   │   │↓ jmp    43
             11.47 │20:└─→cmpxch %esi,0x38a999(%rip)
      
           That means the cmpl+je is a fused instruction pair and they should
           be considered together.
      
         - Record the branch type and then show statistics and info about in
           callchain entries (Jin Yao)
      
           Example from one of Jin's patches:
      
              # perf record -g -j any,save_type
              # perf report --branch-history --stdio --no-children
      
              38.50%  div.c:45                [.] main                    div
                      |
                      ---main div.c:42 (RET CROSS_2M cycles:2)
                         compute_flag div.c:28 (cycles:2)
                         compute_flag div.c:27 (RET CROSS_2M cycles:1)
                         rand rand.c:28 (cycles:1)
                         rand rand.c:28 (RET CROSS_2M cycles:1)
                         __random random.c:298 (cycles:1)
                         __random random.c:297 (COND_BWD CROSS_2M cycles:1)
                         __random random.c:295 (cycles:1)
                         __random random.c:295 (COND_BWD CROSS_2M cycles:1)
                         __random random.c:295 (cycles:1)
                         __random random.c:295 (RET CROSS_2M cycles:9)
      
        namespaces support:
      
         - Add initial support for namespaces, using setns to access files in
           namespaces, grabbing their build-ids, etc. (Krister Johansen)
      
        perf trace enhancements:
      
         - Beautify pkey_{alloc,free,mprotect} arguments in 'perf trace'
           (Arnaldo Carvalho de Melo)
      
         - Add initial 'clone' syscall args beautifier in 'perf trace'
           (Arnaldo Carvalho de Melo)
      
         - Ignore 'fd' and 'offset' args for MAP_ANONYMOUS in 'perf trace'
           (Arnaldo Carvalho de Melo)
      
         - Beautifiers for the 'cmd' arg of several ioctl types, including:
           sound, DRM, KVM, vhost virtio and perf_events. (Arnaldo Carvalho de
           Melo)
      
         - Add PERF_SAMPLE_CALLCHAIN and PERF_RECORD_MMAP[2] to 'perf data'
           CTF conversion, allowing CTF trace visualization tools to show
           callchains and to resolve symbols (Geneviève Bastien)
      
         - Beautify the fcntl syscall, which is an interesting one in the
           sense that infrastructure had to be put in place to change the
           formatters of some arguments according to the value in a previous
           one, i.e. cmd dictates how arg and the syscall return will be
           formatted. (Arnaldo Carvalho de Melo
      
        perf stat enhancements:
      
         - Use group read for event groups in 'perf stat', reducing overhead
           when groups are defined in the event specification, i.e. when using
           {} to enclose a list of events, asking them to be read at the same
           time, e.g.: "perf stat -e '{cycles,instructions}'" (Jiri Olsa)
      
        pipe mode improvements:
      
         - Process tracing data in 'perf annotate' pipe mode (David
           Carrillo-Cisneros)
      
         - Add header record types to pipe-mode, now this command:
      
              $ perf record -o - -e cycles sleep 1 | perf report --stdio --header
      
           Will show the same as in non-pipe mode, i.e. involving a perf.data
           file (David Carrillo-Cisneros)
      
        Vendor specific hardware event support updates/enhancements:
      
         - Update POWER9 vendor events tables (Sukadev Bhattiprolu)
      
         - Add POWER9 PMU events Sukadev (Bhattiprolu)
      
         - Support additional POWER8+ PVR in PMU mapfile (Shriya)
      
         - Add Skylake server uncore JSON vendor events (Andi Kleen)
      
         - Support exporting Intel PT data to sqlite3 with python perf
           scripts, this is in addition to the postgresql support that was
           already there (Adrian Hunter)"
      
      * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (253 commits)
        perf symbols: Fix plt entry calculation for ARM and AARCH64
        perf probe: Fix kprobe blacklist checking condition
        perf/x86: Fix caps/ for !Intel
        perf/core, x86: Add PERF_SAMPLE_PHYS_ADDR
        perf/core, pt, bts: Get rid of itrace_started
        perf trace beauty: Beautify pkey_{alloc,free,mprotect} arguments
        tools headers: Sync cpu features kernel ABI headers with tooling headers
        perf tools: Pass full path of FEATURES_DUMP
        perf tools: Robustify detection of clang binary
        tools lib: Allow external definition of CC, AR and LD
        perf tools: Allow external definition of flex and bison binary names
        tools build tests: Don't hardcode gcc name
        perf report: Group stat values on global event id
        perf values: Zero value buffers
        perf values: Fix allocation check
        perf values: Fix thread index bug
        perf report: Add dump_read function
        perf record: Set read_format for inherit_stat
        perf c2c: Fix remote HITM detection for Skylake
        perf tools: Fix static build with newer toolchains
        ...
      9657752c
    • Linus Torvalds's avatar
      Merge branch 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 0081a0ce
      Linus Torvalds authored
      Pull RCU updates from Ingo Molnad:
       "The main RCU related changes in this cycle were:
      
         - Removal of spin_unlock_wait()
         - SRCU updates
         - RCU torture-test updates
         - RCU Documentation updates
         - Extend the sys_membarrier() ABI with the MEMBARRIER_CMD_PRIVATE_EXPEDITED variant
         - Miscellaneous RCU fixes
         - CPU-hotplug fixes"
      
      * 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (63 commits)
        arch: Remove spin_unlock_wait() arch-specific definitions
        locking: Remove spin_unlock_wait() generic definitions
        drivers/ata: Replace spin_unlock_wait() with lock/unlock pair
        ipc: Replace spin_unlock_wait() with lock/unlock pair
        exit: Replace spin_unlock_wait() with lock/unlock pair
        completion: Replace spin_unlock_wait() with lock/unlock pair
        doc: Set down RCU's scheduling-clock-interrupt needs
        doc: No longer allowed to use rcu_dereference on non-pointers
        doc: Add RCU files to docbook-generation files
        doc: Update memory-barriers.txt for read-to-write dependencies
        doc: Update RCU documentation
        membarrier: Provide expedited private command
        rcu: Remove exports from rcu_idle_exit() and rcu_idle_enter()
        rcu: Add warning to rcu_idle_enter() for irqs enabled
        rcu: Make rcu_idle_enter() rely on callers disabling irqs
        rcu: Add assertions verifying blocked-tasks list
        rcu/tracing: Set disable_rcu_irq_enter on rcu_eqs_exit()
        rcu: Add TPS() protection for _rcu_barrier_trace strings
        rcu: Use idle versions of swait to make idle-hack clear
        swait: Add idle variants which don't contribute to load average
        ...
      0081a0ce
    • Linus Torvalds's avatar
      Merge branch 'core-debugobjects-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · fea15437
      Linus Torvalds authored
      Pull debugobjects fix from Ingo Molnar:
       "A single commit making debugobjects interact better with kmemleak"
      
      * 'core-debugobjects-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        debugobjects: Make kmemleak ignore debug objects
      fea15437
    • Ingo Molnar's avatar
      Merge branch 'linus' into locking/core, to fix up conflicts · edc2988c
      Ingo Molnar authored
       Conflicts:
      	mm/page_alloc.c
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      edc2988c
    • Linus Torvalds's avatar
      Merge branch 'docs-next' of git://git.lwn.net/linux · 81a84ad3
      Linus Torvalds authored
      Pull documentation updates from Jonathan Corbet:
       "After a fair amount of churn in the last couple of cycles, docs are
        taking it easier this time around. Lots of fixes and some new
        documentation, but nothing all that radical. Perhaps the most
        interesting change for many is the scripts/sphinx-pre-install tool
        from Mauro; it will tell you exactly which packages you need to
        install to get a working docs toolchain on your system.
      
        There are two little patches reaching outside of Documentation/; both
        just tweak kerneldoc comments to eliminate warnings and fix some
        dangling doc pointers"
      
      * 'docs-next' of git://git.lwn.net/linux: (52 commits)
        Documentation/sphinx: fix kernel-doc decode for non-utf-8 locale
        genalloc: Fix an incorrect kerneldoc comment
        doc: Add documentation for the genalloc subsystem
        assoc_array: fix path to assoc_array documentation
        kernel-doc parser mishandles declarations split into lines
        docs: ReSTify table of contents in core.rst
        docs: process: drop git snapshots from applying-patches.rst
        Documentation:input: fix typo
        swap: Remove obsolete sentence
        sphinx.rst: Allow Sphinx version 1.6 at the docs
        docs-rst: fix verbatim font size on tables
        Documentation: stable-kernel-rules: fix broken git urls
        rtmutex: update rt-mutex
        rtmutex: update rt-mutex-design
        docs: fix minimal sphinx version in conf.py
        docs: fix nested numbering in the TOC
        NVMEM documentation fix: A minor typo
        docs-rst: pdf: use same vertical margin on all Sphinx versions
        doc: Makefile: if sphinx is not found, run a check script
        docs: Fix paths in security/keys
        ...
      81a84ad3
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-linus-v4.14' of... · fe91f281
      Linus Torvalds authored
      Merge tag 'hwmon-for-linus-v4.14' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
      
      Pull hwmon updates from Guenter Roeck:
      
       - new drivers:
         - Lantiq CPU temperature sensor
         - IBM CFF power supply
         - TPS53679 PMBus driver
      
       - new support:
         - LM5066I (lm25066 PMBus driver)
         - Intel VID protocol VR13 (PMBus drivers)
         - CAT34TS02C, GT30TS00, GT34TS02, and CAT34TS04 (jc42 driver)
      
       - cleanup and minor improvements in several drivers
      
      * tag 'hwmon-for-linus-v4.14' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: (36 commits)
        hwmon: (ltq-cputemp) add cpu temp sensor driver
        hwmon: (ltq-cputemp) add devicetree bindings documentation
        hwmon: (pmbus) Add support for Texas Instruments tps53679 device
        hwmon: (asc7621) make several arrays static const
        hwmon: (pmbus/lm25066) Add support for TI LM5066I
        hwmon: (pmbus/lm25066) Offset coefficient depends on CL
        hwmon: (pmbus) Add support for Intel VID protocol VR13
        Documentation: hwmon: Document the IBM CFF power supply
        hwmon: (pmbus) Add IBM Common Form Factor (CFF) power supply driver
        dt-bindings: hwmon: Document the IBM CCF power supply version 1
        hwmon: (ftsteutates) constify i2c_device_id
        hwmon: da9052: Add support for TSI channel
        mfd: da9052: Make touchscreen registration optional
        hwmon: da9052: Replace S_IRUGO with 0444
        mfd: da9052: Add register details for TSI
        hwmon: (aspeed-pwm) add THERMAL dependency
        hwmon: (pmbus) Add debugfs for status registers
        hwmon: (aspeed-pwm-tacho) cooling device support.
        Documentation: dt-bindings: aspeed-pwm-tacho cooling device.
        hwmon: (pmbus): Add generic alarm bit for iin and pin
        ...
      fe91f281
    • Linus Torvalds's avatar
      Merge tag 'for-linus-ioctl' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma · aa9d4648
      Linus Torvalds authored
      Pull rdma updates from Doug Ledford:
       "This is a big pull request.
      
        Of note is that I'm sending you the new ioctl API for the rdma
        subsystem. We put it up on linux-api@, but didn't get much response.
        The API is complex, but it solves two different problems in one go:
      
         1) The bi-directional nature of the RDMA file write calls, which
            created the security hole we had to handle (and for which the fix
            is now causing problems for systems in production, we were a bit
            over zealous in the fix and the ability to open a device, then
            fork, then create new queue pairs on the device and use them is
            broken).
      
         2) The bloat caused by different vendors implementing extensions to
            the base verbs API. Each vendor's hardware is slightly different,
            and the hardware might be suitable for one extension but not
            another.
      
            By the time we add generic extensions for all the different ways
            that the different hardware can offload things, the API becomes
            bloated. Things like our completion structs have started to exceed
            a cache line in size because of all the elements needed to support
            this. That in turn shows up heavily in the performance graphs with
            a noticable drop in performance on 100Gigabit links as our
            completion structs go from occupying one cache line to 1+.
      
            This API makes things like the completion structs modular in a
            very similar way to netlink so that your structs can only include
            the items needed for the offloads/features you are actually using
            on a given queue pair. In that way we support everything, but only
            use what we need, and our structs stay smaller.
      
        The ioctl API is better explained by the posting on linux-api@ than I
        can explain it here, so I'll just leave it at that.
      
        The rest of the pull request is typical stuff.
      
        Updates for 4.14 kernel merge window
      
         - Lots of hfi1 driver updates (mixed with a few qib and core updates
           as well)
      
         - rxe updates
      
         - various mlx updates
      
         - Set default roce type to RoCEv2
      
         - Several larger fixes for bnxt_re that were too big for -rc
      
         - Several larger fixes for qedr that, likewise, were too big for -rc
      
         - Misc core changes
      
         - Make the hns_roce driver compilable on arches other than aarch64 so
           we can more easily debug build issues related to it
      
         - Add rdma-netlink infrastructure updates
      
         - Add automatic IRQ affinity infrastructure
      
         - Add 32bit lid support
      
         - Lots of misc fixes across the subsystem from random people
      
         - Autoloading of RDMA netlink modules
      
         - PCI pool cleanups from Romain Perier
      
         - mlx5 driver feature additions and fixes
      
         - Hardware tag matchine feature
      
         - Fix sleeping in atomic when resolving roce ah
      
         - Add experimental ioctl interface as posted to linux-api@"
      
      * tag 'for-linus-ioctl' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma: (328 commits)
        IB/core: Expose ioctl interface through experimental Kconfig
        IB/core: Assign root to all drivers
        IB/core: Add completion queue (cq) object actions
        IB/core: Add legacy driver's user-data
        IB/core: Export ioctl enum types to user-space
        IB/core: Explicitly destroy an object while keeping uobject
        IB/core: Add macros for declaring methods and attributes
        IB/core: Add uverbs merge trees functionality
        IB/core: Add DEVICE object and root tree structure
        IB/core: Declare an object instead of declaring only type attributes
        IB/core: Add new ioctl interface
        RDMA/vmw_pvrdma: Fix a signedness
        RDMA/vmw_pvrdma: Report network header type in WC
        IB/core: Add might_sleep() annotation to ib_init_ah_from_wc()
        IB/cm: Fix sleeping in atomic when RoCE is used
        IB/core: Add support to finalize objects in one transaction
        IB/core: Add a generic way to execute an operation on a uobject
        Documentation: Hardware tag matching
        IB/mlx5: Support IB_SRQT_TM
        net/mlx5: Add XRQ support
        ...
      aa9d4648
    • Linus Torvalds's avatar
      Merge tag 'drm-for-v4.14' of git://people.freedesktop.org/~airlied/linux · 906dde0f
      Linus Torvalds authored
      Pull drm updates from Dave Airlie:
       "This is the main drm pull request for 4.14 merge window.
      
        I'm sending this early, as my continuing journey into fatherhood is
        occurring really soon now, I'm going to be mostly useless for the next
        couple of weeks, though I may be able to read email, I doubt I'll be
        doing much patch applications or git sending. If anything urgent pops
        up I've asked Daniel/Jani/Alex/Sean to try and direct stuff towards
        you.
      
        Outside drm changes:
      
        Some rcar-du updates that touch the V4L tree, all acks should be in
        place. It adds one export to the radix tree code for new i915 use
        case. There are some minor AGP cleanups (don't see that too often).
        Changes to the vbox driver in staging to avoid breaking compilation.
      
        Summary:
      
        core:
         - Atomic helper fixes
         - Atomic UAPI fixes
         - Add YCBCR 4:2:0 support
         - Drop set_busid hook
         - Refactor fb_helper locking
         - Remove a bunch of internal APIs
         - Add a bunch of better default handlers
         - Format modifier/blob plane property added
         - More internal header refactoring
         - Make more internal API names consistent
         - Enhanced syncobj APIs (wait/signal/reset/create signalled)
      
        bridge:
         - Add Synopsys Designware MIPI DSI host bridge driver
      
        tiny:
         - Add Pervasive Displays RePaper displays
         - Add support for LEGO MINDSTORMS EV3 LCD
      
        i915:
         - Lots of GEN10/CNL  support patches
         - drm syncobj support
         - Skylake+ watermark refactoring
         - GVT vGPU 48-bit ppgtt support
         - GVT performance improvements
         - NOA change ioctl
         - CCS (color compression) scanout support
         - GPU reset improvements
      
        amdgpu:
         - Initial hugepage support
         - BO migration logic rework
         - Vega10 improvements
         - Powerplay fixes
         - Stop reprogramming the MC
         - Fixes for ACP audio on stoney
         - SR-IOV fixes/improvements
         - Command submission overhead improvements
      
        amdkfd:
         - Non-dGPU upstreaming patches
         - Scratch VA ioctl
         - Image tiling modes
         - Update PM4 headers for new firmware
         - Drop all BUG_ONs.
      
        nouveau:
         - GP108 modesetting support.
         - Disable MSI on big endian.
      
        vmwgfx:
         - Add fence fd support.
      
        msm:
         - Runtime PM improvements
      
        exynos:
         - NV12MT support
         - Refactor KMS drivers
      
        imx-drm:
         - Lock scanout channel to improve memory bw
         - Cleanups
      
        etnaviv:
         - GEM object population fixes
      
        tegra:
         - Prep work for Tegra186 support
         - PRIME mmap support
      
        sunxi:
         - HDMI support improvements
         - HDMI CEC support
      
        omapdrm:
         - HDMI hotplug IRQ support
         - Big driver cleanup
         - OMAP5 DSI support
      
        rcar-du:
         - vblank fixes
         - VSP1 updates
      
        arcgpu:
         - Minor fixes
      
        stm:
         - Add STM32 DSI controller driver
      
        dw_hdmi:
         - Add support for Rockchip RK3399
         - HDMI CEC support
      
        atmel-hlcdc:
         - Add 8-bit color support
      
        vc4:
         - Atomic fixes
         - New ioctl to attach a label to a buffer object
         - HDMI CEC support
         - Allow userspace to dictate rendering order on submit ioctl"
      
      * tag 'drm-for-v4.14' of git://people.freedesktop.org/~airlied/linux: (1074 commits)
        drm/syncobj: Add a signal ioctl (v3)
        drm/syncobj: Add a reset ioctl (v3)
        drm/syncobj: Add a syncobj_array_find helper
        drm/syncobj: Allow wait for submit and signal behavior (v5)
        drm/syncobj: Add a CREATE_SIGNALED flag
        drm/syncobj: Add a callback mechanism for replace_fence (v3)
        drm/syncobj: add sync obj wait interface. (v8)
        i915: Use drm_syncobj_fence_get
        drm/syncobj: Add a race-free drm_syncobj_fence_get helper (v2)
        drm/syncobj: Rename fence_get to find_fence
        drm: kirin: Add mode_valid logic to avoid mode clocks we can't generate
        drm/vmwgfx: Bump the version for fence FD support
        drm/vmwgfx: Add export fence to file descriptor support
        drm/vmwgfx: Add support for imported Fence File Descriptor
        drm/vmwgfx: Prepare to support fence fd
        drm/vmwgfx: Fix incorrect command header offset at restart
        drm/vmwgfx: Support the NOP_ERROR command
        drm/vmwgfx: Restart command buffers after errors
        drm/vmwgfx: Move irq bottom half processing to threads
        drm/vmwgfx: Don't use drm_irq_[un]install
        ...
      906dde0f
  3. 03 Sep, 2017 6 commits
  4. 02 Sep, 2017 2 commits
  5. 01 Sep, 2017 7 commits
    • Olof Johansson's avatar
      Merge tag 'mvebu-fixes-4.13-3' of git://git.infradead.org/linux-mvebu into fixes · 6f71a925
      Olof Johansson authored
      mvebu fixes for 4.13 (part 3)
      
      Fix number of GPIOs in AP806 description for Armada 7K/8K
      
      * tag 'mvebu-fixes-4.13-3' of git://git.infradead.org/linux-mvebu:
        arm64: dts: marvell: fix number of GPIOs in Armada AP806 description
      Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
      6f71a925
    • Linus Torvalds's avatar
      Merge branch 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · f8c6d724
      Linus Torvalds authored
      Pull i2c fixes from Wolfram Sang:
       "The ismt driver had a problem with a rarely used transaction type and
        the designware driver was made even more robust against non standard
        ACPI tables"
      
      * 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
        i2c: designware: Round down ACPI provided clk to nearest supported clk
        i2c: ismt: Return EMSGSIZE for block reads with bogus length
        i2c: ismt: Don't duplicate the receive length for block reads
      f8c6d724
    • Oleg Nesterov's avatar
      epoll: fix race between ep_poll_callback(POLLFREE) and ep_free()/ep_remove() · 138e4ad6
      Oleg Nesterov authored
      The race was introduced by me in commit 971316f0 ("epoll:
      ep_unregister_pollwait() can use the freed pwq->whead").  I did not
      realize that nothing can protect eventpoll after ep_poll_callback() sets
      ->whead = NULL, only whead->lock can save us from the race with
      ep_free() or ep_remove().
      
      Move ->whead = NULL to the end of ep_poll_callback() and add the
      necessary barriers.
      
      TODO: cleanup the ewake/EPOLLEXCLUSIVE logic, it was confusing even
      before this patch.
      
      Hopefully this explains use-after-free reported by syzcaller:
      
      	BUG: KASAN: use-after-free in debug_spin_lock_before
      	...
      	 _raw_spin_lock_irqsave+0x4a/0x60 kernel/locking/spinlock.c:159
      	 ep_poll_callback+0x29f/0xff0 fs/eventpoll.c:1148
      
      this is spin_lock(eventpoll->lock),
      
      	...
      	Freed by task 17774:
      	...
      	 kfree+0xe8/0x2c0 mm/slub.c:3883
      	 ep_free+0x22c/0x2a0 fs/eventpoll.c:865
      
      Fixes: 971316f0 ("epoll: ep_unregister_pollwait() can use the freed pwq->whead")
      Reported-by: default avatar范龙飞 <long7573@126.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarOleg Nesterov <oleg@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      138e4ad6
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 8cf9f2a2
      Linus Torvalds authored
      Pull networking fixes from David Miller:
      
       1) Fix handling of pinned BPF map nodes in hash of maps, from Daniel
          Borkmann.
      
       2) IPSEC ESP error paths leak memory, from Steffen Klassert.
      
       3) We need an RCU grace period before freeing fib6_node objects, from
          Wei Wang.
      
       4) Must check skb_put_padto() return value in HSR driver, from FLorian
          Fainelli.
      
       5) Fix oops on PHY probe failure in ftgmac100 driver, from Andrew
          Jeffery.
      
       6) Fix infinite loop in UDP queue when using SO_PEEK_OFF, from Eric
          Dumazet.
      
       7) Use after free when tcf_chain_destroy() called multiple times, from
          Jiri Pirko.
      
       8) Fix KSZ DSA tag layer multiple free of SKBS, from Florian Fainelli.
      
       9) Fix leak of uninitialized memory in sctp_get_sctp_info(),
          inet_diag_msg_sctpladdrs_fill() and inet_diag_msg_sctpaddrs_fill().
          From Stefano Brivio.
      
      10) L2TP tunnel refcount fixes from Guillaume Nault.
      
      11) Don't leak UDP secpath in udp_set_dev_scratch(), from Yossi
          Kauperman.
      
      12) Revert a PHY layer change wrt. handling of PHY_HALTED state in
          phy_stop_machine(), it causes regressions for multiple people. From
          Florian Fainelli.
      
      13) When packets are sent out of br0 we have to clear the
          offload_fwdq_mark value.
      
      14) Several NULL pointer deref fixes in packet schedulers when their
          ->init() routine fails. From Nikolay Aleksandrov.
      
      15) Aquantium devices cannot checksum offload correctly when the packet
          is <= 60 bytes. From Pavel Belous.
      
      16) Fix vnet header access past end of buffer in AF_PACKET, from
          Benjamin Poirier.
      
      17) Double free in probe error paths of nfp driver, from Dan Carpenter.
      
      18) QOS capability not checked properly in DCB init paths of mlx5
          driver, from Huy Nguyen.
      
      19) Fix conflicts between firmware load failure and health_care timer in
          mlx5, also from Huy Nguyen.
      
      20) Fix dangling page pointer when DMA mapping errors occur in mlx5,
          from Eran Ben ELisha.
      
      21) ->ndo_setup_tc() in bnxt_en driver doesn't count rings properly,
          from Michael Chan.
      
      22) Missing MSIX vector free in bnxt_en, also from Michael Chan.
      
      23) Refcount leak in xfrm layer when using sk_policy, from Lorenzo
          Colitti.
      
      24) Fix copy of uninitialized data in qlge driver, from Arnd Bergmann.
      
      25) bpf_setsockopts() erroneously always returns -EINVAL even on
          success. Fix from Yuchung Cheng.
      
      26) tipc_rcv() needs to linearize the SKB before parsing the inner
          headers, from Parthasarathy Bhuvaragan.
      
      27) Fix deadlock between link status updates and link removal in netvsc
          driver, from Stephen Hemminger.
      
      28) Missed locking of page fragment handling in ESP output, from Steffen
          Klassert.
      
      29) Fix refcnt leak in ebpf congestion control code, from Sabrina
          Dubroca.
      
      30) sxgbe_probe_config_dt() doesn't check devm_kzalloc()'s return value,
          from Christophe Jaillet.
      
      31) Fix missing ipv6 rx_dst_cookie update when rx_dst is updated during
          early demux, from Paolo Abeni.
      
      32) Several info leaks in xfrm_user layer, from Mathias Krause.
      
      33) Fix out of bounds read in cxgb4 driver, from Stefano Brivio.
      
      34) Properly propagate obsolete state of route upwards in ipv6 so that
          upper holders like xfrm can see it. From Xin Long.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (118 commits)
        udp: fix secpath leak
        bridge: switchdev: Clear forward mark when transmitting packet
        mlxsw: spectrum: Forbid linking to devices that have uppers
        wl1251: add a missing spin_lock_init()
        Revert "net: phy: Correctly process PHY_HALTED in phy_stop_machine()"
        net: dsa: bcm_sf2: Fix number of CFP entries for BCM7278
        kcm: do not attach PF_KCM sockets to avoid deadlock
        sch_tbf: fix two null pointer dereferences on init failure
        sch_sfq: fix null pointer dereference on init failure
        sch_netem: avoid null pointer deref on init failure
        sch_fq_codel: avoid double free on init failure
        sch_cbq: fix null pointer dereferences on init failure
        sch_hfsc: fix null pointer deref and double free on init failure
        sch_hhf: fix null pointer dereference on init failure
        sch_multiq: fix double free on init failure
        sch_htb: fix crash on init failure
        net/mlx5e: Fix CQ moderation mode not set properly
        net/mlx5e: Fix inline header size for small packets
        net/mlx5: E-Switch, Unload the representors in the correct order
        net/mlx5e: Properly resolve TC offloaded ipv6 vxlan tunnel source address
        ...
      8cf9f2a2
    • Linus Torvalds's avatar
      Merge tag 'ceph-for-4.13-rc8' of git://github.com/ceph/ceph-client · b8a78bb4
      Linus Torvalds authored
      Pull ceph fix from Ilya Dryomov:
       "ceph fscache page locking fix from Zheng, marked for stable"
      
      * tag 'ceph-for-4.13-rc8' of git://github.com/ceph/ceph-client:
        ceph: fix readpage from fscache
      b8a78bb4
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · 3e1d79c8
      Linus Torvalds authored
      Pull input fixes from Dmitry Torokhov:
       "Just a couple drivers fixes (Synaptics PS/2, Xpad)"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
        Input: xpad - fix PowerA init quirk for some gamepad models
        Input: synaptics - fix device info appearing different on reconnect
      3e1d79c8
    • Linus Torvalds's avatar
      Merge tag 'mmc-v4.13-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc · d7e44b86
      Linus Torvalds authored
      Pull two more MMC fixes from Ulf Hansson:
       "MMC core:
         - Fix block status codes
      
        MMC host:
         - sdhci-xenon: Fix SD bus voltage select"
      
      * tag 'mmc-v4.13-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc:
        mmc: sdhci-xenon: add set_power callback
        mmc: block: Fix block status codes
      d7e44b86