1. 02 Apr, 2020 2 commits
  2. 01 Apr, 2020 1 commit
    • Sagi Grimberg's avatar
      nvme-tcp: fix possible crash in recv error flow · 39d06079
      Sagi Grimberg authored
      If the target misbehaves and sends us unexpected payload we
      need to make sure to fail the controller and stop processing
      the input stream. We clear the rd_enabled flag and stop
      the io_work, but we may still requeue it if we still have pending
      sends and then in the next invocation we will process the input
      stream as the check is only in the .data_ready upcall.
      
      To fix this we need to make sure not to self-requeue io_work
      upon a recv flow error.
      
      This fixes the crash:
       nvme nvme2: receive failed:  -22
       BUG: unable to handle page fault for address: ffffbeb5816c3b48
       nvme_ns_head_make_request: 29 callbacks suppressed
       block nvme0n5: no usable path - requeuing I/O
       block nvme0n5: no usable path - requeuing I/O
       block nvme0n7: no usable path - requeuing I/O
       block nvme0n7: no usable path - requeuing I/O
       block nvme0n3: no usable path - requeuing I/O
       block nvme0n3: no usable path - requeuing I/O
       block nvme0n3: no usable path - requeuing I/O
       block nvme0n7: no usable path - requeuing I/O
       block nvme0n3: no usable path - requeuing I/O
       block nvme0n3: no usable path - requeuing I/O
       #PF: supervisor read access inkernel mode
       #PF: error_code(0x0000) - not-present page
       PGD 1039157067 P4D 1039157067 PUD 103915a067 PMD 102719f067 PTE 0
       Oops: 0000 [#1] SMP PTI
       CPU: 8 PID: 411 Comm: kworker/8:1H Not tainted 5.3.0-40-generic #32~18.04.1-Ubuntu
       Hardware name: Supermicro Super Server/X10SRi-F, BIOS 2.0 12/17/2015
       Workqueue: nvme_tcp_wq nvme_tcp_io_work [nvme_tcp]
       RIP: 0010:nvme_tcp_recv_skb+0x2ae/0xb50 [nvme_tcp]
       RSP: 0018:ffffbeb5806cfd10 EFLAGS: 00010246
       RAX: ffffbeb5816c3b48 RBX: 00000000000003d0 RCX: 0000000000000008
       RDX: 00000000000003d0 RSI: 0000000000000001 RDI: ffff9a3040684b40
       RBP: ffffbeb5806cfd90 R08: 0000000000000000 R09: ffffffff946e6900
       R10: ffffbeb5806cfce0 R11: 0000000000000001 R12: 0000000000000000
       R13: ffff9a2ff86501c0 R14: 00000000000003d0 R15: ffff9a30b85f2798
       FS:  0000000000000000(0000) GS:ffff9a30bf800000(0000) knlGS:0000000000000000
       CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
       CR2: ffffbeb5816c3b48 CR3: 000000088400a006 CR4: 00000000003626e0
       DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
       DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
       Call Trace:
        tcp_read_sock+0x8c/0x290
        ? __release_sock+0x9d/0xe0
        ? nvme_tcp_write_space+0xb0/0xb0 [nvme_tcp]
        nvme_tcp_io_work+0x4b4/0x830 [nvme_tcp]
        ? finish_task_switch+0x163/0x270
        process_one_work+0x1fd/0x3f0
        worker_thread+0x34/0x410
        kthread+0x121/0x140
        ? process_one_work+0x3f0/0x3f0
        ? kthread_park+0xb0/0xb0
        ret_from_fork+0x35/0x40
      Reported-by: default avatarRoy Shterman <roys@lightbitslabs.com>
      Signed-off-by: default avatarSagi Grimberg <sagi@grimberg.me>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      39d06079
  3. 31 Mar, 2020 15 commits
    • Sagi Grimberg's avatar
      nvme-tcp: don't poll a non-live queue · f86e5bf8
      Sagi Grimberg authored
      In error recovery we might be removing the queue so check we
      can actually poll before we do.
      Reported-by: default avatarMark Wunderlich <mark.wunderlich@intel.com>
      Tested-by: default avatarMark Wunderlich <mark.wunderlich@intel.com>
      Signed-off-by: default avatarSagi Grimberg <sagi@grimberg.me>
      Signed-off-by: default avatarKeith Busch <kbusch@kernel.org>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      f86e5bf8
    • Sagi Grimberg's avatar
      nvme-tcp: fix possible crash in write_zeroes processing · 25e5cb78
      Sagi Grimberg authored
      We cannot look at blk_rq_payload_bytes without first checking
      that the request has a mappable physical segments first (e.g.
      blk_rq_nr_phys_segments(rq) != 0) and only then to take the
      request payload bytes. This caused us to send a wrong sgl to
      the target or even dereference a non-existing buffer in case
      we actually got to the data send sequence (if it was in-capsule).
      Reported-by: default avatarTony Asleson <tasleson@redhat.com>
      Suggested-by: default avatarChaitanya Kulkarni <Chaitanya.Kulkarni@wdc.com>
      Signed-off-by: default avatarSagi Grimberg <sagi@grimberg.me>
      Signed-off-by: default avatarKeith Busch <kbusch@kernel.org>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      25e5cb78
    • James Smart's avatar
      nvmet-fc: fix typo in comment · d038dd81
      James Smart authored
      Fix typo in comment: about should be abort
      Signed-off-by: default avatarJames Smart <jsmart2021@gmail.com>
      Reviewed-by: default avatarSagi Grimberg <sagi@grimberg.me>
      Reviewed-by: default avatarChiatanya Kulkarni <chaitanya.kulkarni@wdc.com>
      Reviewed-by: default avatarHimanshu Madhani <hmadhani@marvell.com>
      Reviewed-by: default avatarHannes Reinecke <hare@suse.de>
      d038dd81
    • Israel Rukshin's avatar
      nvme-rdma: Replace comma with a semicolon · a62315b8
      Israel Rukshin authored
      Use a semicolon at the end of an assignment expression.
      Signed-off-by: default avatarIsrael Rukshin <israelr@mellanox.com>
      Reviewed-by: default avatarMax Gurtovoy <maxg@mellanox.com>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      a62315b8
    • James Smart's avatar
      nvme-fcloop: fix deallocation of working context · 38803fcf
      James Smart authored
      There's been a longstanding bug of LS completions which freed ls ops,
      particularly the disconnect LS, while executing on a work context that
      is in the memory being free. Not a good thing to do.
      
      Rework LS handling to make callbacks in the rport context rather than
      the ls_request context.
      Signed-off-by: default avatarJames Smart <jsmart2021@gmail.com>
      Reviewed-by: default avatarHimanshu Madhani <himanshu.madhani@oracle.com>
      Reviewed-by: default avatarHannes Reinecke <hare@suse.de>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      38803fcf
    • Nick Bowler's avatar
      nvme: fix compat address handling in several ioctls · c95b708d
      Nick Bowler authored
      On a 32-bit kernel, the upper bits of userspace addresses passed via
      various ioctls are silently ignored by the nvme driver.
      
      However on a 64-bit kernel running a compat task, these upper bits are
      not ignored and are in fact required to be zero for the ioctls to work.
      
      Unfortunately, this difference matters.  32-bit smartctl submits the
      NVME_IOCTL_ADMIN_CMD ioctl with garbage in these upper bits because it
      seems the pointer value it puts into the nvme_passthru_cmd structure is
      sign extended.  This works fine on 32-bit kernels but fails on a 64-bit
      one because (at least on my setup) the addresses smartctl uses are
      consistently above 2G.  For example:
      
        # smartctl -x /dev/nvme0n1
        smartctl 7.1 2019-12-30 r5022 [x86_64-linux-5.5.11] (local build)
        Copyright (C) 2002-19, Bruce Allen, Christian Franke, www.smartmontools.org
      
        Read NVMe Identify Controller failed: NVME_IOCTL_ADMIN_CMD: Bad address
      
      Since changing 32-bit kernels to actually check all of the submitted
      address bits now would break existing userspace, this patch fixes the
      compat problem by explicitly zeroing the upper bits in the compat case.
      This enables 32-bit smartctl to work on a 64-bit kernel.
      Signed-off-by: default avatarNick Bowler <nbowler@draconx.ca>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      c95b708d
    • Linus Torvalds's avatar
      Merge tag 'x86-timers-2020-03-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 458ef2a2
      Linus Torvalds authored
      Pull x86 timer updates from Thomas Gleixner:
       "A series of commits to make the MSR derived CPU and TSC frequency more
        accurate.
      
        It turned out that the frequency tables which have been taken from the
        SDM are inaccurate because the SDM provides truncated and rounded
        values, e.g. 83.3Mhz (83.3333...) or 116.7Mhz (116.6666...).
      
        This causes time drift in the range of ~1 second per hour (20-30
        seconds per day). On some of these SoCs it's not possible to
        recalibrate the TSC because there is no reference (PIT, HPET)
        available.
      
        With some reverse engineering it was established that the possible
        frequencies are derived from the base clock with fixed multiplier /
        divider pairs.
      
        For the CPU models which have a known crystal frequency the kernel now
        uses multiplier / divider pairs which bring the frequencies closer to
        reality and fix the observed time drift issues"
      
      * tag 'x86-timers-2020-03-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/tsc_msr: Make MSR derived TSC frequency more accurate
        x86/tsc_msr: Fix MSR_FSB_FREQ mask for Cherry Trail devices
        x86/tsc_msr: Use named struct initializers
      458ef2a2
    • Linus Torvalds's avatar
      Merge tag 'x86-splitlock-2020-03-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 2853d5fa
      Linus Torvalds authored
      Pull x86 splitlock updates from Thomas Gleixner:
       "Support for 'split lock' detection:
      
        Atomic operations (lock prefixed instructions) which span two cache
        lines have to acquire the global bus lock. This is at least 1k cycles
        slower than an atomic operation within a cache line and disrupts
        performance on other cores. Aside of performance disruption this is a
        unpriviledged form of DoS.
      
        Some newer CPUs have the capability to raise an #AC trap when such an
        operation is attempted. The detection is by default enabled in warning
        mode which will warn once when a user space application is caught. A
        command line option allows to disable the detection or to select fatal
        mode which will terminate offending applications with SIGBUS"
      
      * tag 'x86-splitlock-2020-03-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/split_lock: Avoid runtime reads of the TEST_CTRL MSR
        x86/split_lock: Rework the initialization flow of split lock detection
        x86/split_lock: Enable split lock detection by kernel
      2853d5fa
    • Linus Torvalds's avatar
      Merge tag 'x86-entry-2020-03-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · d5f744f9
      Linus Torvalds authored
      Pull x86 entry code updates from Thomas Gleixner:
      
       - Convert the 32bit syscalls to be pt_regs based which removes the
         requirement to push all 6 potential arguments onto the stack and
         consolidates the interface with the 64bit variant
      
       - The first small portion of the exception and syscall related entry
         code consolidation which aims to address the recently discovered
         issues vs. RCU, int3, NMI and some other exceptions which can
         interrupt any context. The bulk of the changes is still work in
         progress and aimed for 5.8.
      
       - A few lockdep namespace cleanups which have been applied into this
         branch to keep the prerequisites for the ongoing work confined.
      
      * tag 'x86-entry-2020-03-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (35 commits)
        x86/entry: Fix build error x86 with !CONFIG_POSIX_TIMERS
        lockdep: Rename trace_{hard,soft}{irq_context,irqs_enabled}()
        lockdep: Rename trace_softirqs_{on,off}()
        lockdep: Rename trace_hardirq_{enter,exit}()
        x86/entry: Rename ___preempt_schedule
        x86: Remove unneeded includes
        x86/entry: Drop asmlinkage from syscalls
        x86/entry/32: Enable pt_regs based syscalls
        x86/entry/32: Use IA32-specific wrappers for syscalls taking 64-bit arguments
        x86/entry/32: Rename 32-bit specific syscalls
        x86/entry/32: Clean up syscall_32.tbl
        x86/entry: Remove ABI prefixes from functions in syscall tables
        x86/entry/64: Add __SYSCALL_COMMON()
        x86/entry: Remove syscall qualifier support
        x86/entry/64: Remove ptregs qualifier from syscall table
        x86/entry: Move max syscall number calculation to syscallhdr.sh
        x86/entry/64: Split X32 syscall table into its own file
        x86/entry/64: Move sys_ni_syscall stub to common.c
        x86/entry/64: Use syscall wrappers for x32_rt_sigreturn
        x86/entry: Refactor SYS_NI macros
        ...
      d5f744f9
    • Linus Torvalds's avatar
      Merge tag 'timers-core-2020-03-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · dbb381b6
      Linus Torvalds authored
      Pull timekeeping and timer updates from Thomas Gleixner:
       "Core:
      
         - Consolidation of the vDSO build infrastructure to address the
           difficulties of cross-builds for ARM64 compat vDSO libraries by
           restricting the exposure of header content to the vDSO build.
      
           This is achieved by splitting out header content into separate
           headers. which contain only the minimaly required information which
           is necessary to build the vDSO. These new headers are included from
           the kernel headers and the vDSO specific files.
      
         - Enhancements to the generic vDSO library allowing more fine grained
           control over the compiled in code, further reducing architecture
           specific storage and preparing for adopting the generic library by
           PPC.
      
         - Cleanup and consolidation of the exit related code in posix CPU
           timers.
      
         - Small cleanups and enhancements here and there
      
        Drivers:
      
         - The obligatory new drivers: Ingenic JZ47xx and X1000 TCU support
      
         - Correct the clock rate of PIT64b global clock
      
         - setup_irq() cleanup
      
         - Preparation for PWM and suspend support for the TI DM timer
      
         - Expand the fttmr010 driver to support ast2600 systems
      
         - The usual small fixes, enhancements and cleanups all over the
           place"
      
      * tag 'timers-core-2020-03-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (80 commits)
        Revert "clocksource/drivers/timer-probe: Avoid creating dead devices"
        vdso: Fix clocksource.h macro detection
        um: Fix header inclusion
        arm64: vdso32: Enable Clang Compilation
        lib/vdso: Enable common headers
        arm: vdso: Enable arm to use common headers
        x86/vdso: Enable x86 to use common headers
        mips: vdso: Enable mips to use common headers
        arm64: vdso32: Include common headers in the vdso library
        arm64: vdso: Include common headers in the vdso library
        arm64: Introduce asm/vdso/processor.h
        arm64: vdso32: Code clean up
        linux/elfnote.h: Replace elf.h with UAPI equivalent
        scripts: Fix the inclusion order in modpost
        common: Introduce processor.h
        linux/ktime.h: Extract common header for vDSO
        linux/jiffies.h: Extract common header for vDSO
        linux/time64.h: Extract common header for vDSO
        linux/time32.h: Extract common header for vDSO
        linux/time.h: Extract common header for vDSO
        ...
      dbb381b6
    • Linus Torvalds's avatar
      Merge tag 'timers-nohz-2020-03-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 336622e9
      Linus Torvalds authored
      Pull NOHZ update from Thomas Gleixner:
       "Remove TIF_NOHZ from three architectures
      
        These architectures use a static key to decide whether context
        tracking needs to be invoked and the TIF_NOHZ flag just causes a
        pointless slowpath execution for nothing"
      
      * tag 'timers-nohz-2020-03-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        arm64: Remove TIF_NOHZ
        arm: Remove TIF_NOHZ
        x86: Remove TIF_NOHZ
        context-tracking: Introduce CONFIG_HAVE_TIF_NOHZ
        x86/entry: Remove _TIF_NOHZ from _TIF_WORK_SYSCALL_ENTRY
      336622e9
    • Linus Torvalds's avatar
      Merge tag 'smp-core-2020-03-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 992a1a3b
      Linus Torvalds authored
      Pull core SMP updates from Thomas Gleixner:
       "CPU (hotplug) updates:
      
         - Support for locked CSD objects in smp_call_function_single_async()
           which allows to simplify callsites in the scheduler core and MIPS
      
         - Treewide consolidation of CPU hotplug functions which ensures the
           consistency between the sysfs interface and kernel state. The low
           level functions cpu_up/down() are now confined to the core code and
           not longer accessible from random code"
      
      * tag 'smp-core-2020-03-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (22 commits)
        cpu/hotplug: Ignore pm_wakeup_pending() for disable_nonboot_cpus()
        cpu/hotplug: Hide cpu_up/down()
        cpu/hotplug: Move bringup of secondary CPUs out of smp_init()
        torture: Replace cpu_up/down() with add/remove_cpu()
        firmware: psci: Replace cpu_up/down() with add/remove_cpu()
        xen/cpuhotplug: Replace cpu_up/down() with device_online/offline()
        parisc: Replace cpu_up/down() with add/remove_cpu()
        sparc: Replace cpu_up/down() with add/remove_cpu()
        powerpc: Replace cpu_up/down() with add/remove_cpu()
        x86/smp: Replace cpu_up/down() with add/remove_cpu()
        arm64: hibernate: Use bringup_hibernate_cpu()
        cpu/hotplug: Provide bringup_hibernate_cpu()
        arm64: Use reboot_cpu instead of hardconding it to 0
        arm64: Don't use disable_nonboot_cpus()
        ARM: Use reboot_cpu instead of hardcoding it to 0
        ARM: Don't use disable_nonboot_cpus()
        ia64: Replace cpu_down() with smp_shutdown_nonboot_cpus()
        cpu/hotplug: Create a new function to shutdown nonboot cpus
        cpu/hotplug: Add new {add,remove}_cpu() functions
        sched/core: Remove rq.hrtick_csd_pending
        ...
      992a1a3b
    • Linus Torvalds's avatar
      Merge tag 'irq-core-2020-03-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 2d385336
      Linus Torvalds authored
      Pull irq updates from Thomas Gleixner:
       "Updates for the interrupt subsystem:
      
        Treewide:
      
          - Cleanup of setup_irq() which is not longer required because the
            memory allocator is available early.
      
            Most cleanup changes come through the various maintainer trees, so
            the final removal of setup_irq() is postponed towards the end of
            the merge window.
      
        Core:
      
          - Protection against unsafe invocation of interrupt handlers and
            unsafe interrupt injection including a fixup of the offending
            PCI/AER error injection mechanism.
      
            Invoking interrupt handlers from arbitrary contexts, i.e. outside
            of an actual interrupt, can cause inconsistent state on the
            fragile x86 interrupt affinity changing hardware trainwreck.
      
        Drivers:
      
          - Second wave of support for the new ARM GICv4.1
      
          - Multi-instance support for Xilinx and PLIC interrupt controllers
      
          - CPU-Hotplug support for PLIC
      
          - The obligatory new driver for X1000 TCU
      
          - Enhancements, cleanups and fixes all over the place"
      
      * tag 'irq-core-2020-03-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (58 commits)
        unicore32: Replace setup_irq() by request_irq()
        sh: Replace setup_irq() by request_irq()
        hexagon: Replace setup_irq() by request_irq()
        c6x: Replace setup_irq() by request_irq()
        alpha: Replace setup_irq() by request_irq()
        irqchip/gic-v4.1: Eagerly vmap vPEs
        irqchip/gic-v4.1: Add VSGI property setup
        irqchip/gic-v4.1: Add VSGI allocation/teardown
        irqchip/gic-v4.1: Move doorbell management to the GICv4 abstraction layer
        irqchip/gic-v4.1: Plumb set_vcpu_affinity SGI callbacks
        irqchip/gic-v4.1: Plumb get/set_irqchip_state SGI callbacks
        irqchip/gic-v4.1: Plumb mask/unmask SGI callbacks
        irqchip/gic-v4.1: Add initial SGI configuration
        irqchip/gic-v4.1: Plumb skeletal VSGI irqchip
        irqchip/stm32: Retrigger both in eoi and unmask callbacks
        irqchip/gic-v3: Move irq_domain_update_bus_token to after checking for NULL domain
        irqchip/xilinx: Do not call irq_set_default_host()
        irqchip/xilinx: Enable generic irq multi handler
        irqchip/xilinx: Fill error code when irq domain registration fails
        irqchip/xilinx: Add support for multiple instances
        ...
      2d385336
    • Randy Dunlap's avatar
      staging/octeon: fix up merge error · 673b41e0
      Randy Dunlap authored
      There's a semantic conflict in the Octeon staging network driver, which
      used the skb_reset_tc() function to reset skb state when re-using an
      skb.  But that inline helper function was removed in mainline by commit
      2c64605b ("net: Fix CONFIG_NET_CLS_ACT=n and
      CONFIG_NFT_FWD_NETDEV={y, m} build").
      
      Fix it by using skb_reset_redirect() instead.  Also move it out of the
      
      This code path only ends up triggering if REUSE_SKBUFFS_WITHOUT_FREE is
      enabled, which in turn only happens if you don't have CONFIG_NETFILTER
      configured.  Which was how this wasn't caught by the usual allmodconfig
      builds.
      Signed-off-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      Reported-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      673b41e0
    • Linus Torvalds's avatar
      Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 642e53ea
      Linus Torvalds authored
      Pull scheduler updates from Ingo Molnar:
       "The main changes in this cycle are:
      
         - Various NUMA scheduling updates: harmonize the load-balancer and
           NUMA placement logic to not work against each other. The intended
           result is better locality, better utilization and fewer migrations.
      
         - Introduce Thermal Pressure tracking and optimizations, to improve
           task placement on thermally overloaded systems.
      
         - Implement frequency invariant scheduler accounting on (some) x86
           CPUs. This is done by observing and sampling the 'recent' CPU
           frequency average at ~tick boundaries. The CPU provides this data
           via the APERF/MPERF MSRs. This hopefully makes our capacity
           estimates more precise and keeps tasks on the same CPU better even
           if it might seem overloaded at a lower momentary frequency. (As
           usual, turbo mode is a complication that we resolve by observing
           the maximum frequency and renormalizing to it.)
      
         - Add asymmetric CPU capacity wakeup scan to improve capacity
           utilization on asymmetric topologies. (big.LITTLE systems)
      
         - PSI fixes and optimizations.
      
         - RT scheduling capacity awareness fixes & improvements.
      
         - Optimize the CONFIG_RT_GROUP_SCHED constraints code.
      
         - Misc fixes, cleanups and optimizations - see the changelog for
           details"
      
      * 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (62 commits)
        threads: Update PID limit comment according to futex UAPI change
        sched/fair: Fix condition of avg_load calculation
        sched/rt: cpupri_find: Trigger a full search as fallback
        kthread: Do not preempt current task if it is going to call schedule()
        sched/fair: Improve spreading of utilization
        sched: Avoid scale real weight down to zero
        psi: Move PF_MEMSTALL out of task->flags
        MAINTAINERS: Add maintenance information for psi
        psi: Optimize switching tasks inside shared cgroups
        psi: Fix cpu.pressure for cpu.max and competing cgroups
        sched/core: Distribute tasks within affinity masks
        sched/fair: Fix enqueue_task_fair warning
        thermal/cpu-cooling, sched/core: Move the arch_set_thermal_pressure() API to generic scheduler code
        sched/rt: Remove unnecessary push for unfit tasks
        sched/rt: Allow pulling unfitting task
        sched/rt: Optimize cpupri_find() on non-heterogenous systems
        sched/rt: Re-instate old behavior in select_task_rq_rt()
        sched/rt: cpupri_find: Implement fallback mechanism for !fit case
        sched/fair: Fix reordering of enqueue/dequeue_task_fair()
        sched/fair: Fix runnable_avg for throttled cfs
        ...
      642e53ea
  4. 30 Mar, 2020 22 commits
    • Linus Torvalds's avatar
      Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 9b82f05f
      Linus Torvalds authored
      Pull perf updates from Ingo Molnar:
       "The main changes in this cycle were:
      
        Kernel side changes:
      
         - A couple of x86/cpu cleanups and changes were grandfathered in due
           to patch dependencies. These clean up the set of CPU model/family
           matching macros with a consistent namespace and C99 initializer
           style.
      
         - A bunch of updates to various low level PMU drivers:
             * AMD Family 19h L3 uncore PMU
             * Intel Tiger Lake uncore support
             * misc fixes to LBR TOS sampling
      
         - optprobe fixes
      
         - perf/cgroup: optimize cgroup event sched-in processing
      
         - misc cleanups and fixes
      
        Tooling side changes are to:
      
         - perf {annotate,expr,record,report,stat,test}
      
         - perl scripting
      
         - libapi, libperf and libtraceevent
      
         - vendor events on Intel and S390, ARM cs-etm
      
         - Intel PT updates
      
         - Documentation changes and updates to core facilities
      
         - misc cleanups, fixes and other enhancements"
      
      * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (89 commits)
        cpufreq/intel_pstate: Fix wrong macro conversion
        x86/cpu: Cleanup the now unused CPU match macros
        hwrng: via_rng: Convert to new X86 CPU match macros
        crypto: Convert to new CPU match macros
        ASoC: Intel: Convert to new X86 CPU match macros
        powercap/intel_rapl: Convert to new X86 CPU match macros
        PCI: intel-mid: Convert to new X86 CPU match macros
        mmc: sdhci-acpi: Convert to new X86 CPU match macros
        intel_idle: Convert to new X86 CPU match macros
        extcon: axp288: Convert to new X86 CPU match macros
        thermal: Convert to new X86 CPU match macros
        hwmon: Convert to new X86 CPU match macros
        platform/x86: Convert to new CPU match macros
        EDAC: Convert to new X86 CPU match macros
        cpufreq: Convert to new X86 CPU match macros
        ACPI: Convert to new X86 CPU match macros
        x86/platform: Convert to new CPU match macros
        x86/kernel: Convert to new CPU match macros
        x86/kvm: Convert to new CPU match macros
        x86/perf/events: Convert to new CPU match macros
        ...
      9b82f05f
    • Linus Torvalds's avatar
      Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 4b9fd8a8
      Linus Torvalds authored
      Pull locking updates from Ingo Molnar:
       "The main changes in this cycle were:
      
         - Continued user-access cleanups in the futex code.
      
         - percpu-rwsem rewrite that uses its own waitqueue and atomic_t
           instead of an embedded rwsem. This addresses a couple of
           weaknesses, but the primary motivation was complications on the -rt
           kernel.
      
         - Introduce raw lock nesting detection on lockdep
           (CONFIG_PROVE_RAW_LOCK_NESTING=y), document the raw_lock vs. normal
           lock differences. This too originates from -rt.
      
         - Reuse lockdep zapped chain_hlocks entries, to conserve RAM
           footprint on distro-ish kernels running into the "BUG:
           MAX_LOCKDEP_CHAIN_HLOCKS too low!" depletion of the lockdep
           chain-entries pool.
      
         - Misc cleanups, smaller fixes and enhancements - see the changelog
           for details"
      
      * 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (55 commits)
        fs/buffer: Make BH_Uptodate_Lock bit_spin_lock a regular spinlock_t
        thermal/x86_pkg_temp: Make pkg_temp_lock a raw_spinlock_t
        Documentation/locking/locktypes: Minor copy editor fixes
        Documentation/locking/locktypes: Further clarifications and wordsmithing
        m68knommu: Remove mm.h include from uaccess_no.h
        x86: get rid of user_atomic_cmpxchg_inatomic()
        generic arch_futex_atomic_op_inuser() doesn't need access_ok()
        x86: don't reload after cmpxchg in unsafe_atomic_op2() loop
        x86: convert arch_futex_atomic_op_inuser() to user_access_begin/user_access_end()
        objtool: whitelist __sanitizer_cov_trace_switch()
        [parisc, s390, sparc64] no need for access_ok() in futex handling
        sh: no need of access_ok() in arch_futex_atomic_op_inuser()
        futex: arch_futex_atomic_op_inuser() calling conventions change
        completion: Use lockdep_assert_RT_in_threaded_ctx() in complete_all()
        lockdep: Add posixtimer context tracing bits
        lockdep: Annotate irq_work
        lockdep: Add hrtimer context tracing bits
        lockdep: Introduce wait-type checks
        completion: Use simple wait queues
        sched/swait: Prepare usage in completions
        ...
      4b9fd8a8
    • Linus Torvalds's avatar
      Merge branch 'efi-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · a776c270
      Linus Torvalds authored
      Pull EFI updates from Ingo Molnar:
       "The EFI changes in this cycle are much larger than usual, for two
        (positive) reasons:
      
         - The GRUB project is showing signs of life again, resulting in the
           introduction of the generic Linux/UEFI boot protocol, instead of
           x86 specific hacks which are increasingly difficult to maintain.
           There's hope that all future extensions will now go through that
           boot protocol.
      
         - Preparatory work for RISC-V EFI support.
      
        The main changes are:
      
         - Boot time GDT handling changes
      
         - Simplify handling of EFI properties table on arm64
      
         - Generic EFI stub cleanups, to improve command line handling, file
           I/O, memory allocation, etc.
      
         - Introduce a generic initrd loading method based on calling back
           into the firmware, instead of relying on the x86 EFI handover
           protocol or device tree.
      
         - Introduce a mixed mode boot method that does not rely on the x86
           EFI handover protocol either, and could potentially be adopted by
           other architectures (if another one ever surfaces where one
           execution mode is a superset of another)
      
         - Clean up the contents of 'struct efi', and move out everything that
           doesn't need to be stored there.
      
         - Incorporate support for UEFI spec v2.8A changes that permit
           firmware implementations to return EFI_UNSUPPORTED from UEFI
           runtime services at OS runtime, and expose a mask of which ones are
           supported or unsupported via a configuration table.
      
         - Partial fix for the lack of by-VA cache maintenance in the
           decompressor on 32-bit ARM.
      
         - Changes to load device firmware from EFI boot service memory
           regions
      
         - Various documentation updates and minor code cleanups and fixes"
      
      * 'efi-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (114 commits)
        efi/libstub/arm: Fix spurious message that an initrd was loaded
        efi/libstub/arm64: Avoid image_base value from efi_loaded_image
        partitions/efi: Fix partition name parsing in GUID partition entry
        efi/x86: Fix cast of image argument
        efi/libstub/x86: Use ULONG_MAX as upper bound for all allocations
        efi: Fix a mistype in comments mentioning efivar_entry_iter_begin()
        efi/libstub: Avoid linking libstub/lib-ksyms.o into vmlinux
        efi/x86: Preserve %ebx correctly in efi_set_virtual_address_map()
        efi/x86: Ignore the memory attributes table on i386
        efi/x86: Don't relocate the kernel unless necessary
        efi/x86: Remove extra headroom for setup block
        efi/x86: Add kernel preferred address to PE header
        efi/x86: Decompress at start of PE image load address
        x86/boot/compressed/32: Save the output address instead of recalculating it
        efi/libstub/x86: Deal with exit() boot service returning
        x86/boot: Use unsigned comparison for addresses
        efi/x86: Avoid using code32_start
        efi/x86: Make efi32_pe_entry() more readable
        efi/x86: Respect 32-bit ABI in efi32_pe_entry()
        efi/x86: Annotate the LOADED_IMAGE_PROTOCOL_GUID with SYM_DATA
        ...
      a776c270
    • Linus Torvalds's avatar
      Merge branch 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 7c4fa150
      Linus Torvalds authored
      Pull RCU updates from Ingo Molnar:
       "The main changes in this cycle were:
      
         - Make kfree_rcu() use kfree_bulk() for added performance
      
         - RCU updates
      
         - Callback-overload handling updates
      
         - Tasks-RCU KCSAN and sparse updates
      
         - Locking torture test and RCU torture test updates
      
         - Documentation updates
      
         - Miscellaneous fixes"
      
      * 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (74 commits)
        rcu: Make rcu_barrier() account for offline no-CBs CPUs
        rcu: Mark rcu_state.gp_seq to detect concurrent writes
        Documentation/memory-barriers: Fix typos
        doc: Add rcutorture scripting to torture.txt
        doc/RCU/rcu: Use https instead of http if possible
        doc/RCU/rcu: Use absolute paths for non-rst files
        doc/RCU/rcu: Use ':ref:' for links to other docs
        doc/RCU/listRCU: Update example function name
        doc/RCU/listRCU: Fix typos in a example code snippets
        doc/RCU/Design: Remove remaining HTML tags in ReST files
        doc: Add some more RCU list patterns in the kernel
        rcutorture: Set KCSAN Kconfig options to detect more data races
        rcutorture: Manually clean up after rcu_barrier() failure
        rcutorture: Make rcu_torture_barrier_cbs() post from corresponding CPU
        rcuperf: Measure memory footprint during kfree_rcu() test
        rcutorture: Annotation lockless accesses to rcu_torture_current
        rcutorture: Add READ_ONCE() to rcu_torture_count and rcu_torture_batch
        rcutorture: Fix stray access to rcu_fwd_cb_nodelay
        rcutorture: Fix rcu_torture_one_read()/rcu_torture_writer() data race
        rcutorture: Make kvm-find-errors.sh abort on bad directory
        ...
      7c4fa150
    • Linus Torvalds's avatar
      Merge branch 'core-objtool-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · d937a6df
      Linus Torvalds authored
      Pull objtool updates from Ingo Molnar:
       "The biggest changes in this cycle were the vmlinux.o optimizations by
         Peter Zijlstra, which are preparatory and optimization work to run
         objtool against the much richer vmlinux.o object file, to perform
         new, whole-program section based logic. That work exposed a handful
         of problems with the existing code, which fixes and optimizations are
         merged here. The complete 'vmlinux.o and noinstr' work is still work
         in progress, targeted for v5.8.
      
        There's also assorted fixes and enhancements from Josh Poimboeuf.
      
        In particular I'd like to draw attention to commit 644592d3,
        which turns fatal objtool errors into failed kernel builds. This
        behavior is IMO now justified on multiple grounds (it's easy currently
        to not notice an essentially corrupted kernel build), and the commit
        has been in -next testing for several weeks, but there could still be
        build failures with old or weird toolchains. Should that be widespread
        or high profile enough then I'd suggest a quick revert, to not hold up
        the merge window"
      
      * 'core-objtool-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (22 commits)
        objtool: Re-arrange validate_functions()
        objtool: Optimize find_rela_by_dest_range()
        objtool: Delete cleanup()
        objtool: Optimize read_sections()
        objtool: Optimize find_symbol_by_name()
        objtool: Resize insn_hash
        objtool: Rename find_containing_func()
        objtool: Optimize find_symbol_*() and read_symbols()
        objtool: Optimize find_section_by_name()
        objtool: Optimize find_section_by_index()
        objtool: Add a statistics mode
        objtool: Optimize find_symbol_by_index()
        x86/kexec: Make relocate_kernel_64.S objtool clean
        x86/kexec: Use RIP relative addressing
        objtool: Rename func_for_each_insn_all()
        objtool: Rename func_for_each_insn()
        objtool: Introduce validate_return()
        objtool: Improve call destination function detection
        objtool: Fix clang switch table edge case
        objtool: Add relocation check for alternative sections
        ...
      d937a6df
    • Linus Torvalds's avatar
      Merge tag 'pnp-5.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 2ce94bc4
      Linus Torvalds authored
      Pull PNP subsystem updates from Rafael Wysocki:
      
       - Update MAINTAINERS to cover include/linux/pnp.h and add the
         linux-acpi list to the PNP entry in it
      
       - add the const modifier to the name field definition in struct
         pnp_driver
      
       - drop a pointer case in the RTC CMOS driver that has become redundant
      
      All by Corentin Labbe.
      
      * tag 'pnp-5.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        MAINTAINERS: Add linux-acpi list to PNP
        rtc: cmos: remove useless cast for driver_name
        PNP: constify driver name
        PNP: add missing include/linux/pnp.h to MAINTAINERS
      2ce94bc4
    • Linus Torvalds's avatar
      Merge tag 'acpi-5.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 6d905081
      Linus Torvalds authored
      Pull ACPI updates from Rafael Wysocki:
      
         - Update the ACPICA code in the kernel to the 20200214 upstream
           release including:
      
             * Fix to re-enable the sleep button after wakeup (Anchal
               Agarwal).
      
             * Fixes for mistakes in comments and typos (Bob Moore).
      
             * ASL-ASL+ converter updates (Erik Kaneda).
      
             * Type casting cleanups (Sven Barth).
      
         - Clean up the intialization of the EC driver and eliminate some dead
           code from it (Rafael Wysocki).
      
         - Clean up the quirk tables in the AC and battery drivers (Hans de
           Goede).
      
         - Fix the global lock handling on x86 to ignore unspecified bit
           positions in the global lock field (Jan Engelhardt).
      
         - Add a new "tiny" driver for ACPI button devices exposed by VMs to
           guest kernels to send signals directly to init (Josh Triplett).
      
         - Add a kernel parameter to disable ACPI BGRT on x86 (Alex Hung).
      
         - Make the ACPI PCI host bridge and fan drivers use scnprintf() to
           avoid potential buffer overflows (Takashi Iwai).
      
         - Clean up assorted pieces of code:
      
             * Reorder "asmlinkage" to make g++ happy (Alexey Dobriyan).
      
             * Drop unneeded variable initialization (Colin Ian King).
      
             * Add missing __acquires/__releases annotations (Jules Irenge).
      
             * Replace list_for_each_safe() with list_for_each_entry_safe()
               (chenqiwu)"
      
      * tag 'acpi-5.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (31 commits)
        ACPICA: Update version to 20200214
        ACPI: PCI: Use scnprintf() for avoiding potential buffer overflow
        ACPI: fan: Use scnprintf() for avoiding potential buffer overflow
        ACPI: EC: Eliminate EC_FLAGS_QUERY_HANDSHAKE
        ACPI: EC: Do not clear boot_ec_is_ecdt in acpi_ec_add()
        ACPI: EC: Simplify acpi_ec_ecdt_start() and acpi_ec_init()
        ACPI: EC: Consolidate event handler installation code
        acpi/x86: ignore unspecified bit positions in the ACPI global lock field
        acpi/x86: add a kernel parameter to disable ACPI BGRT
        x86/acpi: make "asmlinkage" part first thing in the function definition
        ACPI: list_for_each_safe() -> list_for_each_entry_safe()
        ACPI: video: remove redundant assignments to variable result
        ACPI: OSL: Add missing __acquires/__releases annotations
        ACPI / battery: Cleanup Lenovo Ideapad Miix 320 DMI table entry
        ACPI / AC: Cleanup DMI quirk table
        ACPI: EC: Use fast path in acpi_ec_add() for DSDT boot EC
        ACPI: EC: Simplify acpi_ec_add()
        ACPI: EC: Drop AE_NOT_FOUND special case from ec_install_handlers()
        ACPI: EC: Avoid passing redundant argument to functions
        ACPI: EC: Avoid printing confusing messages in acpi_ec_setup()
        ...
      6d905081
    • Linus Torvalds's avatar
      Merge tag 'pm-5.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 49835c15
      Linus Torvalds authored
      Pull power management updates from Rafael Wysocki:
       "These clean up and rework the PM QoS API, address a suspend-to-idle
        wakeup regression on some ACPI-based platforms, clean up and extend a
        few cpuidle drivers, update multiple cpufreq drivers and cpufreq
        documentation, and fix a number of issues in devfreq and several other
        things all over.
      
        Specifics:
      
         - Clean up and rework the PM QoS API to simplify the code and reduce
           the size of it (Rafael Wysocki).
      
         - Fix a suspend-to-idle wakeup regression on Dell XPS13 9370 and
           similar platforms where the USB plug/unplug events are handled by
           the EC (Rafael Wysocki).
      
         - CLean up the intel_idle and PSCI cpuidle drivers (Rafael Wysocki,
           Ulf Hansson).
      
         - Extend the haltpoll cpuidle driver so that it can be forced to run
           on some systems where it refused to load (Maciej Szmigiero).
      
         - Convert several cpufreq documents to the .rst format and move the
           legacy driver documentation into one common file (Mauro Carvalho
           Chehab, Rafael Wysocki).
      
         - Update several cpufreq drivers:
      
              * Extend and fix the imx-cpufreq-dt driver (Anson Huang).
      
              * Improve the -EPROBE_DEFER handling and fix unwanted CPU
                overclocking on i.MX6ULL in imx6q-cpufreq (Anson Huang,
                Christoph Niedermaier).
      
              * Add support for Krait based SoCs to the qcom driver (Ansuel
                Smith).
      
              * Add support for OPP_PLUS to ti-cpufreq (Lokesh Vutla).
      
              * Add platform specific intermediate callbacks support to
                cpufreq-dt and update the imx6q driver (Peng Fan).
      
              * Simplify and consolidate some pieces of the intel_pstate
                driver and update its documentation (Rafael Wysocki, Alex
                Hung).
      
         - Fix several devfreq issues:
      
              * Remove unneeded extern keyword from a devfreq header file and
                use the DEVFREQ_GOV_UPDATE_INTERNAL event name instead of
                DEVFREQ_GOV_INTERNAL (Chanwoo Choi).
      
              * Fix the handling of dev_pm_qos_remove_request() result
                (Leonard Crestez).
      
              * Use constant name for userspace governor (Pierre Kuo).
      
              * Get rid of doc warnings and fix a typo (Christophe JAILLET).
      
         - Use built-in RCU list checking in some places in the PM core to
           avoid false-positive RCU usage warnings (Madhuparna Bhowmik).
      
         - Add explicit READ_ONCE()/WRITE_ONCE() annotations to low-level PM
           QoS routines (Qian Cai).
      
         - Fix removal of wakeup sources to avoid NULL pointer dereferences in
           a corner case (Neeraj Upadhyay).
      
         - Clean up the handling of hibernate compat ioctls and fix the
           related documentation (Eric Biggers).
      
         - Update the idle_inject power capping driver to use variable-length
           arrays instead of zero-length arrays (Gustavo Silva).
      
         - Fix list format in a PM QoS document (Randy Dunlap).
      
         - Make the cpufreq stats module use scnprintf() to avoid potential
           buffer overflows (Takashi Iwai).
      
         - Add pm_runtime_get_if_active() to PM-runtime API (Sakari Ailus).
      
         - Allow no domain-idle-states DT property in generic PM domains (Ulf
           Hansson).
      
         - Fix a broken y-axis scale in the intel_pstate_tracer utility (Doug
           Smythies)"
      
      * tag 'pm-5.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (78 commits)
        cpufreq: intel_pstate: Simplify intel_pstate_cpu_init()
        tools/power/x86/intel_pstate_tracer: fix a broken y-axis scale
        ACPI: PM: s2idle: Refine active GPEs check
        ACPICA: Allow acpi_any_gpe_status_set() to skip one GPE
        PM: sleep: wakeup: Skip wakeup_source_sysfs_remove() if device is not there
        PM / devfreq: Get rid of some doc warnings
        PM / devfreq: Fix handling dev_pm_qos_remove_request result
        PM / devfreq: Fix a typo in a comment
        PM / devfreq: Change to DEVFREQ_GOV_UPDATE_INTERVAL event name
        PM / devfreq: Remove unneeded extern keyword
        PM / devfreq: Use constant name of userspace governor
        ACPI: PM: s2idle: Fix comment in acpi_s2idle_prepare_late()
        cpufreq: qcom: Add support for krait based socs
        cpufreq: imx6q-cpufreq: Improve the logic of -EPROBE_DEFER handling
        cpufreq: Use scnprintf() for avoiding potential buffer overflow
        cpuidle: psci: Split psci_dt_cpu_init_idle()
        PM / Domains: Allow no domain-idle-states DT property in genpd when parsing
        PM / hibernate: Remove unnecessary compat ioctl overrides
        PM: hibernate: fix docs for ioctls that return loff_t via pointer
        Documentation: intel_pstate: update links for references
        ...
      49835c15
    • Linus Torvalds's avatar
      Merge tag 'regulator-spi-v5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/misc · a231bed2
      Linus Torvalds authored
      Pull spi and regulator updates from Mark Brown:
       "At one point in the release cycle I managed to fat finger things and
        apply some SPI fixes onto a regulator branch and merge that into the
        SPI tree, then pull in a change shared with the MTD tree moving the
        Mediatek quadspi driver over to become the Mediatek spi-nor driver in
        the SPI tree.
      
        This has made a mess which I only just noticed while preparing this
        and I can't see a sensible way to unpick things due to other
        subsequent merge commits especially the pull from MTD so it looks like
        the most sensible thing to do is give up and combine the two pull
        requests.
      
        Fortunately both subsystems were fairly quiet this cycle, the
        highlights are:
      
        regulator:
      
         - Support for Monoloithic Power Systems MP5416, MP8867 and MPS8869
           and Qualcomm PMI8994 and SMB208.
      
        SPI:
      
         - Lots of enhancements for spi-fsl-dspi, including XSPI mode support,
           from Vladimir Oltean.
      
         - Support for amlogic Meson G12A, IBM FSI, Mediatek spi-nor (moved
           from MTD), NXP i.MX8Mx, Rockchip PX30, RK3308 and RK3328, and
           Qualcomm Atheros AR934x/QCA95xx"
      
      * tag 'regulator-spi-v5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/misc: (118 commits)
        spi: efm32: Convert to use GPIO descriptors
        regulator: qcom_smd: Add pmi8994 regulator support
        regulator: da9063: Fix get_mode() functions to read sleep field
        spi: spi-fsl-lpspi: Replace zero-length array with flexible-array member
        spi: spi-s3c24xx: Replace zero-length array with flexible-array member
        spi: stm32: Fix comments compilation warnings
        spi: atmel-quadspi: Add verbose debug facilities to monitor register accesses
        spi: spi-fsl-dspi: Add support for LS1028A
        spi: spi-fsl-dspi: Move invariant configs out of dspi_transfer_one_message
        spi: spi-fsl-dspi: Fix interrupt-less DMA mode taking an XSPI code path
        spi: spi-fsl-dspi: Avoid NULL pointer in dspi_slave_abort for non-DMA mode
        spi: spi-fsl-dspi: Replace interruptible wait queue with a simple completion
        spi: spi-fsl-dspi: Protect against races on dspi->words_in_flight
        spi: spi-fsl-dspi: Avoid reading more data than written in EOQ mode
        spi: spi-fsl-dspi: Fix bits-per-word acceleration in DMA mode
        spi: spi-fsl-dspi: Fix little endian access to PUSHR CMD and TXDATA
        spi: spi-fsl-dspi: Don't access reserved fields in SPI_MCR
        regulator: driver.h: fix regulator_map_* function names
        regulator: da9063: fix suspend
        spi: mxs: Drop GPIO includes
        ...
      a231bed2
    • Linus Torvalds's avatar
      Merge tag 'regmap-v5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap · e1299409
      Linus Torvalds authored
      Pull regma: update from Mark Brown:
       "Only one small documentation fix for regmap this time around"
      
      * tag 'regmap-v5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap:
        regmap: wrong descriptions in regmap_range_cfg
      e1299409
    • Linus Torvalds's avatar
      Merge tag 'staging-5.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging · 4c6ef3b1
      Linus Torvalds authored
      Pull staging and IIO driver updates from Greg KH:
       "Here is the big staging and IIO driver pull request for 5.7-rc1.
      
        We again end up deleting more code than we added here, thanks to
        finally getting rid of the old and obsolete wireless USB stuff, and
        the exfat code (which is coming in again through the vfs tree in a
        much cleaner version).
      
        But some code does come back, with the octeon drivers being found to
        actually be used in the wild, so those deletions are now reverted.
      
        Other than those major things, just loads and loads of tiny checkpatch
        cleanups all over the place, along with new IIO drivers and fixes.
      
        All have been in linux-next with no reported issues"
      
      [ Stephen Rothwell points out some reported issues due to merge conflicts ]
      
      * tag 'staging-5.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (415 commits)
        staging: vt6656: Use DIV_ROUND_UP macro instead of specific code
        staging: remove hp100 driver
        staging: wilc1000: Use crc7 in lib/ rather than a private copy
        Staging: rtl8192u: ieee80211: Use netdev_alert().
        Staging: rtl8192u: ieee80211: Use netdev_info() with network devices.
        Staging: rtl8192u: ieee80211: Use netdev_warn() for network devices.
        Staging: rtl8192u: ieee80211: Use netdev_dbg() for debug messages.
        staging: wlan-ng: fix use-after-free Read in hfa384x_usbin_callback
        staging: rtl8723bs: hal: Remove NULL check before kfree
        staging: rtl8723bs: hal: Correct typos in comments
        staging: rtl8723bs: os_dep: Correct typos in comments
        staging: rtl8723bs: core: Correct typos in comments
        staging: rtl8723bs: hal: Remove unnecessary cast on void pointer
        staging: rtl8188eu: cleanup long line in odm.c
        staging: rtl8723bs: hal: Compress return logic
        staging: rtl8723bs: rtw_cmd: Compress lines for immediate return
        staging: rtl8723bs: rtw_efuse: Compress lines for immediate return
        staging: wilc1000: remove label from examples in DT binding documentation
        staging: rtl8723bs: Remove blank line before '}' brace
        Staging: rtl8188eu: hal: Add space around operators
        ...
      4c6ef3b1
    • Linus Torvalds's avatar
      Merge tag 'driver-core-5.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core · 59838093
      Linus Torvalds authored
      Pull driver core updates from Greg KH:
       "Here is the "big" set of driver core changes for 5.7-rc1.
      
        Nothing huge in here, just lots of little firmware core changes and
        use of new apis, a libfs fix, a debugfs api change, and some driver
        core deferred probe rework.
      
        All of these have been in linux-next for a while with no reported
        issues"
      
      * tag 'driver-core-5.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (44 commits)
        Revert "driver core: Set fw_devlink to "permissive" behavior by default"
        driver core: Set fw_devlink to "permissive" behavior by default
        driver core: Replace open-coded list_last_entry()
        driver core: Read atomic counter once in driver_probe_done()
        libfs: fix infoleak in simple_attr_read()
        driver core: Add device links from fwnode only for the primary device
        platform/x86: touchscreen_dmi: Add info for the Chuwi Vi8 Plus tablet
        platform/x86: touchscreen_dmi: Add EFI embedded firmware info support
        Input: icn8505 - Switch to firmware_request_platform for retreiving the fw
        Input: silead - Switch to firmware_request_platform for retreiving the fw
        selftests: firmware: Add firmware_request_platform tests
        test_firmware: add support for firmware_request_platform
        firmware: Add new platform fallback mechanism and firmware_request_platform()
        Revert "drivers: base: power: wakeup.c: Use built-in RCU list checking"
        drivers: base: power: wakeup.c: Use built-in RCU list checking
        component: allow missing unbind callback
        debugfs: remove return value of debugfs_create_file_size()
        debugfs: Check module state before warning in {full/open}_proxy_open()
        firmware: fix a double abort case with fw_load_sysfs_fallback
        arch_topology: Fix putting invalid cpu clk
        ...
      59838093
    • Linus Torvalds's avatar
      Merge tag 'usb-5.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · db34c5ff
      Linus Torvalds authored
      Pull USB / PHY updates from Greg KH:
       "Here are the big set of USB and PHY driver patches for 5.7-rc1.
      
        Nothing huge here, some new PHY drivers, loads of USB gadget fixes and
        updates, xhci updates, usb-serial driver updates and new device ids,
        and other minor things. Full details in the shortlog.
      
        All have been in linux-next for a while with no reported issues"
      
      * tag 'usb-5.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (239 commits)
        USB: cdc-acm: restore capability check order
        usb: cdns3: make signed 1 bit bitfields unsigned
        usb: gadget: fsl: remove unused variable 'driver_desc'
        usb: gadget: f_fs: Fix use after free issue as part of queue failure
        usb: typec: Correct the documentation for typec_cable_put()
        USB: serial: io_edgeport: fix slab-out-of-bounds read in edge_interrupt_callback
        USB: serial: option: add Wistron Neweb D19Q1
        USB: serial: option: add BroadMobi BM806U
        USB: serial: option: add support for ASKEY WWHC050
        usb: core: Add ACPI support for USB interface devices
        driver core: platform: Reimplement devm_platform_ioremap_resource
        usb: dwc2: convert to devm_platform_get_and_ioremap_resource
        usb: host: hisilicon: convert to devm_platform_get_and_ioremap_resource
        usb: host: xhci-plat: convert to devm_platform_get_and_ioremap_resource
        drivers: provide devm_platform_get_and_ioremap_resource()
        phy: qcom-qusb2: Add new overriding tuning parameters in QUSB2 V2 PHY
        phy: qcom-qusb2: Add support for overriding tuning parameters in QUSB2 V2 PHY
        dt-bindings: phy: qcom-qusb2: Add support for overriding Phy tuning parameters
        phy: qcom-qusb2: Add generic QUSB2 V2 PHY support
        dt-bindings: phy: qcom,qusb2: Add compatibles for QUSB2 V2 phy and SC7180
        ...
      db34c5ff
    • Linus Torvalds's avatar
      Merge tag 'media/v5.7-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media · 063d1942
      Linus Torvalds authored
      Pull media updates from Mauro Carvalho Chehab:
      
       - New sensor driver: imx219
      
       - Support for some new pixelformats
      
       - Support for Sun8i SoC
      
       - Added more codecs to meson vdec driver
      
       - Prepare for removing the legacy usbvision driver by moving it to
         staging. This driver has issues and use legacy core APIs. If nobody
         steps up to address those, it is time for its retirement.
      
       - Several cleanups and improvements on drivers, with the addition of
         new supported boards
      
      * tag 'media/v5.7-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (236 commits)
        media: venus: firmware: Ignore secure call error on first resume
        media: mtk-vpu: load vpu firmware from the new location
        media: i2c: video-i2c: fix build errors due to 'imply hwmon'
        media: MAINTAINERS: add myself to co-maintain Hantro G1/G2 for i.MX8MQ
        media: hantro: add initial i.MX8MQ support
        media: dt-bindings: Document i.MX8MQ VPU bindings
        media: vivid: fix incorrect PA assignment to HDMI outputs
        media: hantro: Add linux-rockchip mailing list to MAINTAINERS
        media: cedrus: h264: Fix 4K decoding on H6
        media: siano: Use scnprintf() for avoiding potential buffer overflow
        media: rc: Use scnprintf() for avoiding potential buffer overflow
        media: allegro: create new struct for channel parameters
        media: allegro: move mail definitions to separate file
        media: allegro: pass buffers through firmware
        media: allegro: verify source and destination buffer in VCU response
        media: allegro: handle dependency of bitrate and bitrate_peak
        media: allegro: read bitrate mode directly from control
        media: allegro: make QP configurable
        media: allegro: make frame rate configurable
        media: allegro: skip filler data if possible
        ...
      063d1942
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-v5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging · 47acac8c
      Linus Torvalds authored
      Pull hwmon updates from Guenter Roeck:
      
       - New driver for AXI fan control
      
       - Attenuator bypass support and support for inverting pwm output in
         adt7475 driver
      
       - Support for new power supply version in ibm-cffps driver
      
       - PMBus drivers:
      
           * support for multi-phase chips
      
           * ltc2978 driver: add support for LTC2972, LTC2979, LTC3884,
             LTC3889, LTC7880, LTM4664, LTM4677, LTM4678, LTM4680, and
             LTM4700/
      
           * tps53679 driver: add support for TPS53681, TPS53647, and TPS53667
      
           * isl68137 driver: support for various 2nd Gen Renesas digital
             multiphase chips added to isl68137 driver
      
       - Minor improvements and fixes in nct7904, ibmpowernv, lm73, ibmaem,
         and k10temp drivers
      
      * tag 'hwmon-for-v5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: (29 commits)
        docs: hwmon: Update documentation for isl68137 pmbus driver
        hwmon: (pmbus) add support for 2nd Gen Renesas digital multiphase
        hwmon: (pmbus/ibm-cffps) Add another PSU CCIN to version detection
        hwmon: (nct7904) Fix the incorrect quantity for fan & temp attributes
        hwmon: (ibmpowernv) Use scnprintf() for avoiding potential buffer overflow
        hwmon: (adt7475) Add support for inverting pwm output
        hwmon: (adt7475) Add attenuator bypass support
        dt-bindings: hwmon: Document adt7475 pwm-active-state property
        dt-bindings: hwmon: Document adt7475 bypass-attenuator property
        dt-bindings: hwmon: Document adt7475 binding
        hwmon: (lm73) Add support for of_match_table
        dt-bindings: Add TI LM73 as a trivial device
        hwmon: (pmbus/tps53679) Add documentation
        hwmon: (pmbus/tps53679) Add support for TPS53647 and TPS53667
        hwmon: (pmbus/tps53679) Add support for TPS53681
        hwmon: (pmbus/tps53679) Add support for IIN and PIN to TPS53679 and TPS53688
        hwmon: (pmbus/tps53679) Add support for multiple chips IDs
        hwmon: (pmbus) Implement multi-phase support
        hwmon: (pmbus) Add 'phase' parameter where needed for multi-phase support
        hwmon: (pmbus) Add IC_DEVICE_ID and IC_DEVICE_REV command definitions
        ...
      47acac8c
    • Linus Torvalds's avatar
      Merge tag 'ras_updates_for_5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · ff7b862a
      Linus Torvalds authored
      Pull RAS updates from Borislav Petkov:
      
       - Do not report spurious MCEs on some Intel platforms caused by errata;
         by Prarit Bhargava.
      
       - Change dev-mcelog's hardcoded limit of 32 error records to a dynamic
         one, controlled by the number of logical CPUs, by Tony Luck.
      
       - Add support for the processor identification number (PPIN) on AMD, by
         Wei Huang.
      
      * tag 'ras_updates_for_5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/mce/amd: Add PPIN support for AMD MCE
        x86/mce/dev-mcelog: Dynamically allocate space for machine check records
        x86/mce: Do not log spurious corrected mce errors
      ff7b862a
    • Linus Torvalds's avatar
      Merge tag 'edac_updates_for_5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras · aaf985e2
      Linus Torvalds authored
      Pull EDAC updates from Borislav Petkov:
      
       - A substantial edac_mc cleanup, sanitizing object freeing,
         streamlining and simplifying code flow, and getting rid of a lot of
         needless complexity in memory controller representation code, by
         Robert Richter.
      
       - A new EDAC driver for the ARM DMC-520 memory controller, by Lei Wang,
         Shiping Ji and others.
      
       - The usual sprinkling of misc cleanups and fixes all over the
         subsystem.
      
      * tag 'edac_updates_for_5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras:
        EDAC/armada_xp: Use scnprintf() for avoiding potential buffer overflow
        EDAC/synopsys: Do not dump uninitialized pinf->col
        EDAC: Add EDAC driver for DMC520
        dt-bindings: edac: Dmc-520.yaml
        EDAC/mce_amd: Print !SMCA processor warning only once
        EDAC/mc: Remove per layer counters
        EDAC/mc: Remove detail[] string and cleanup error string generation
        EDAC/mc: Pass the error descriptor to error reporting functions
        EDAC/mc: Remove enable_per_layer_report function argument
        EDAC/mc: Report "unknown memory" on too many DIMM labels found
        EDAC/mc: Carve out error increment into a separate function
        EDAC/mc: Determine mci pointer from the error descriptor
        EDAC: Store error type in struct edac_raw_error_desc
        EDAC/mc: Reorder functions edac_mc_alloc*()
        EDAC/mc: Split edac_mc_alloc() into smaller functions
        EDAC/mc: Change mci device removal to use put_device()
      aaf985e2
    • Linus Torvalds's avatar
      Merge tag 'pstore-v5.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · c271bdbf
      Linus Torvalds authored
      Pull pstore updates from Kees Cook:
       "These mostly some minor cleanups and a bug fix for an ftrace corner
        case:
      
         - Improve failure paths (chenqiwu)
      
         - Fix ftrace position index (Vasily Averin)
      
         - Use proper flexible-array member (Gustavo A. R. Silva)"
      
      * tag 'pstore-v5.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        pstore/ram: Replace zero-length array with flexible-array member
        pstore: pstore_ftrace_seq_next should increase position index
        pstore/ram: remove unnecessary ramoops_unregister_dummy()
        pstore/platform: fix potential mem leak if pstore_init_fs failed
      c271bdbf
    • Linus Torvalds's avatar
      Merge tag 'seccomp-v5.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · 78b0dedd
      Linus Torvalds authored
      Pull seccomp updates from Kees Cook:
       "A couple of seccomp updates. They're both mostly bug fixes that I
        wanted to have sit in linux-next for a while:
      
         - allow TSYNC and USER_NOTIF together (Tycho Andersen)
      
         - add missing compat_ioctl for notify (Sven Schnelle)"
      
      * tag 'seccomp-v5.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        seccomp: Add missing compat_ioctl for notify
        seccomp: allow TSYNC and USER_NOTIF together
      78b0dedd
    • Linus Torvalds's avatar
      Merge tag 'erofs-for-5.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs · 377ad0c2
      Linus Torvalds authored
      Pull erofs updates from Gao Xiang:
       "Updates with a XArray adaptation, several fixes for shrinker and
        corrupted images are ready for this cycle.
      
        All commits have been stress tested with no noticeable smoke out and
        have been in linux-next as well.
      
        Summary:
      
         - Convert radix tree usage to XArray
      
         - Fix shrink scan count on multiple filesystem instances
      
         - Better handling for specific corrupted images
      
         - Update my email address in MAINTAINERS"
      
      * tag 'erofs-for-5.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs:
        MAINTAINERS: erofs: update my email address
        erofs: handle corrupted images whose decompressed size less than it'd be
        erofs: use LZ4_decompress_safe() for full decoding
        erofs: correct the remaining shrink objects
        erofs: convert workstn to XArray
      377ad0c2
    • Linus Torvalds's avatar
      Merge tag 'docs-5.7' of git://git.lwn.net/linux · 481ed297
      Linus Torvalds authored
      Pull documentation updates from Jonathan Corbet:
       "This has been a busy cycle for documentation work.
      
        Highlights include:
      
         - Lots of RST conversion work by Mauro, Daniel ALmeida, and others.
           Maybe someday we'll get to the end of this stuff...maybe...
      
         - Some organizational work to bring some order to the core-api
           manual.
      
         - Various new docs and additions to the existing documentation.
      
         - Typo fixes, warning fixes, ..."
      
      * tag 'docs-5.7' of git://git.lwn.net/linux: (123 commits)
        Documentation: x86: exception-tables: document CONFIG_BUILDTIME_TABLE_SORT
        MAINTAINERS: adjust to filesystem doc ReST conversion
        docs: deprecated.rst: Add BUG()-family
        doc: zh_CN: add translation for virtiofs
        doc: zh_CN: index files in filesystems subdirectory
        docs: locking: Drop :c:func: throughout
        docs: locking: Add 'need' to hardirq section
        docs: conf.py: avoid thousands of duplicate label warning on Sphinx
        docs: prevent warnings due to autosectionlabel
        docs: fix reference to core-api/namespaces.rst
        docs: fix pointers to io-mapping.rst and io_ordering.rst files
        Documentation: Better document the softlockup_panic sysctl
        docs: hw-vuln: tsx_async_abort.rst: get rid of an unused ref
        docs: perf: imx-ddr.rst: get rid of a warning
        docs: filesystems: fuse.rst: supress a Sphinx warning
        docs: translations: it: avoid duplicate refs at programming-language.rst
        docs: driver.rst: supress two ReSt warnings
        docs: trace: events.rst: convert some new stuff to ReST format
        Documentation: Add io_ordering.rst to driver-api manual
        Documentation: Add io-mapping.rst to driver-api manual
        ...
      481ed297
    • Linus Torvalds's avatar
      Merge tag 'for-5.7/io_uring-2020-03-29' of git://git.kernel.dk/linux-block · e59cd880
      Linus Torvalds authored
      Pull io_uring updates from Jens Axboe:
       "Here are the io_uring changes for this merge window. Light on new
        features this time around (just splice + buffer selection), lots of
        cleanups, fixes, and improvements to existing support. In particular,
        this contains:
      
         - Cleanup fixed file update handling for stack fallback (Hillf)
      
         - Re-work of how pollable async IO is handled, we no longer require
           thread offload to handle that. Instead we rely using poll to drive
           this, with task_work execution.
      
         - In conjunction with the above, allow expendable buffer selection,
           so that poll+recv (for example) no longer has to be a split
           operation.
      
         - Make sure we honor RLIMIT_FSIZE for buffered writes
      
         - Add support for splice (Pavel)
      
         - Linked work inheritance fixes and optimizations (Pavel)
      
         - Async work fixes and cleanups (Pavel)
      
         - Improve io-wq locking (Pavel)
      
         - Hashed link write improvements (Pavel)
      
         - SETUP_IOPOLL|SETUP_SQPOLL improvements (Xiaoguang)"
      
      * tag 'for-5.7/io_uring-2020-03-29' of git://git.kernel.dk/linux-block: (54 commits)
        io_uring: cleanup io_alloc_async_ctx()
        io_uring: fix missing 'return' in comment
        io-wq: handle hashed writes in chains
        io-uring: drop 'free_pfile' in struct io_file_put
        io-uring: drop completion when removing file
        io_uring: Fix ->data corruption on re-enqueue
        io-wq: close cancel gap for hashed linked work
        io_uring: make spdxcheck.py happy
        io_uring: honor original task RLIMIT_FSIZE
        io-wq: hash dependent work
        io-wq: split hashing and enqueueing
        io-wq: don't resched if there is no work
        io-wq: remove duplicated cancel code
        io_uring: fix truncated async read/readv and write/writev retry
        io_uring: dual license io_uring.h uapi header
        io_uring: io_uring_enter(2) don't poll while SETUP_IOPOLL|SETUP_SQPOLL enabled
        io_uring: Fix unused function warnings
        io_uring: add end-of-bits marker and build time verify it
        io_uring: provide means of removing buffers
        io_uring: add IOSQE_BUFFER_SELECT support for IORING_OP_RECVMSG
        ...
      e59cd880