Skip to content
  1. Feb 22, 2019
    • Paul Mackerras's avatar
      Merge remote-tracking branch 'remotes/powerpc/topic/ppc-kvm' into kvm-ppc-next · 0a0c50f7
      Paul Mackerras authored
      
      
      This merges in the "ppc-kvm" topic branch of the powerpc tree to get a
      series of commits that touch both general arch/powerpc code and KVM
      code.  These commits will be merged both via the KVM tree and the
      powerpc tree.
      
      Signed-off-by: default avatarPaul Mackerras <paulus@ozlabs.org>
      0a0c50f7
    • Michael Ellerman's avatar
      powerpc/kvm: Save and restore host AMR/IAMR/UAMOR · c3c7470c
      Michael Ellerman authored
      When the hash MMU is active the AMR, IAMR and UAMOR are used for
      pkeys. The AMR is directly writable by user space, and the UAMOR masks
      those writes, meaning both registers are effectively user register
      state. The IAMR is used to create an execute only key.
      
      Also we must maintain the value of at least the AMR when running in
      process context, so that any memory accesses done by the kernel on
      behalf of the process are correctly controlled by the AMR.
      
      Although we are correctly switching all registers when going into a
      guest, on returning to the host we just write 0 into all regs, except
      on Power9 where we restore the IAMR correctly.
      
      This could be observed by a user process if it writes the AMR, then
      runs a guest and we then return immediately to it without
      rescheduling. Because we have written 0 to the AMR that would have the
      effect of granting read/write permission to pages that the process was
      trying to protect.
      
      In addition, when using the Radix MMU, the AMR can prevent inadvertent
      kernel access to userspace data, writing 0 to the AMR disables that
      protection.
      
      So save and restore AMR, IAMR and UAMOR.
      
      Fixes: cf43d3b2
      
       ("powerpc: Enable pkey subsystem")
      Cc: stable@vger.kernel.org # v4.16+
      Signed-off-by: default avatarRussell Currey <ruscur@russell.cc>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      Acked-by: default avatarPaul Mackerras <paulus@ozlabs.org>
      c3c7470c
    • Alexey Kardashevskiy's avatar
      KVM: PPC: Book3S: Improve KVM reference counting · 716cb116
      Alexey Kardashevskiy authored
      
      
      The anon fd's ops releases the KVM reference in the release hook.
      However we reference the KVM object after we create the fd so there is
      small window when the release function can be called and
      dereferenced the KVM object which potentially may free it.
      
      It is not a problem at the moment as the file is created and KVM is
      referenced under the KVM lock and the release function obtains the same
      lock before dereferencing the KVM (although the lock is not held when
      calling kvm_put_kvm()) but it is potentially fragile against future changes.
      
      This references the KVM object before creating a file.
      
      Signed-off-by: default avatarAlexey Kardashevskiy <aik@ozlabs.ru>
      Signed-off-by: default avatarPaul Mackerras <paulus@ozlabs.org>
      716cb116
    • Jordan Niethe's avatar
      KVM: PPC: Book3S HV: Fix build failure without IOMMU support · e40542af
      Jordan Niethe authored
      Currently trying to build without IOMMU support will fail:
      
        (.text+0x1380): undefined reference to `kvmppc_h_get_tce'
        (.text+0x1384): undefined reference to `kvmppc_rm_h_put_tce'
        (.text+0x149c): undefined reference to `kvmppc_rm_h_stuff_tce'
        (.text+0x14a0): undefined reference to `kvmppc_rm_h_put_tce_indirect'
      
      This happens because turning off IOMMU support will prevent
      book3s_64_vio_hv.c from being built because it is only built when
      SPAPR_TCE_IOMMU is set, which depends on IOMMU support.
      
      Fix it using ifdefs for the undefined references.
      
      Fixes: 76d837a4
      
       ("KVM: PPC: Book3S PR: Don't include SPAPR TCE code on non-pseries platforms")
      Signed-off-by: default avatarJordan Niethe <jniethe5@gmail.com>
      Signed-off-by: default avatarPaul Mackerras <paulus@ozlabs.org>
      e40542af
  2. Feb 21, 2019
    • Paul Mackerras's avatar
      powerpc/64s: Better printing of machine check info for guest MCEs · c0577201
      Paul Mackerras authored
      
      
      This adds an "in_guest" parameter to machine_check_print_event_info()
      so that we can avoid trying to translate guest NIP values into
      symbolic form using the host kernel's symbol table.
      
      Reviewed-by: default avatarAravinda Prasad <aravinda@linux.vnet.ibm.com>
      Reviewed-by: default avatarMahesh Salgaonkar <mahesh@linux.vnet.ibm.com>
      Signed-off-by: default avatarPaul Mackerras <paulus@ozlabs.org>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      c0577201
    • Paul Mackerras's avatar
      KVM: PPC: Book3S HV: Simplify machine check handling · 884dfb72
      Paul Mackerras authored
      
      
      This makes the handling of machine check interrupts that occur inside
      a guest simpler and more robust, with less done in assembler code and
      in real mode.
      
      Now, when a machine check occurs inside a guest, we always get the
      machine check event struct and put a copy in the vcpu struct for the
      vcpu where the machine check occurred.  We no longer call
      machine_check_queue_event() from kvmppc_realmode_mc_power7(), because
      on POWER8, when a vcpu is running on an offline secondary thread and
      we call machine_check_queue_event(), that calls irq_work_queue(),
      which doesn't work because the CPU is offline, but instead triggers
      the WARN_ON(lazy_irq_pending()) in pnv_smp_cpu_kill_self() (which
      fires again and again because nothing clears the condition).
      
      All that machine_check_queue_event() actually does is to cause the
      event to be printed to the console.  For a machine check occurring in
      the guest, we now print the event in kvmppc_handle_exit_hv()
      instead.
      
      The assembly code at label machine_check_realmode now just calls C
      code and then continues exiting the guest.  We no longer either
      synthesize a machine check for the guest in assembly code or return
      to the guest without a machine check.
      
      The code in kvmppc_handle_exit_hv() is extended to handle the case
      where the guest is not FWNMI-capable.  In that case we now always
      synthesize a machine check interrupt for the guest.  Previously, if
      the host thinks it has recovered the machine check fully, it would
      return to the guest without any notification that the machine check
      had occurred.  If the machine check was caused by some action of the
      guest (such as creating duplicate SLB entries), it is much better to
      tell the guest that it has caused a problem.  Therefore we now always
      generate a machine check interrupt for guests that are not
      FWNMI-capable.
      
      Reviewed-by: default avatarAravinda Prasad <aravinda@linux.vnet.ibm.com>
      Reviewed-by: default avatarMahesh Salgaonkar <mahesh@linux.vnet.ibm.com>
      Signed-off-by: default avatarPaul Mackerras <paulus@ozlabs.org>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      884dfb72
    • Michael Ellerman's avatar
      KVM: PPC: Book3S HV: Context switch AMR on Power9 · d976f680
      Michael Ellerman authored
      
      
      kvmhv_p9_guest_entry() implements a fast-path guest entry for Power9
      when guest and host are both running with the Radix MMU.
      
      Currently in that path we don't save the host AMR (Authority Mask
      Register) value, and we always restore 0 on return to the host. That
      is OK at the moment because the AMR is not used for storage keys with
      the Radix MMU.
      
      However we plan to start using the AMR on Radix to prevent the kernel
      from reading/writing to userspace outside of copy_to/from_user(). In
      order to make that work we need to save/restore the AMR value.
      
      We only restore the value if it is different from the guest value,
      which is already in the register when we exit to the host. This should
      mean we rarely need to actually restore the value when running a
      modern Linux as a guest, because it will be using the same value as
      us.
      
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      Tested-by: default avatarRussell Currey <ruscur@russell.cc>
      d976f680
  3. Feb 19, 2019
    • Suraj Jitindar Singh's avatar
      KVM: PPC: Book3S HV: Add KVM stat largepages_[2M/1G] · 8f1f7b9b
      Suraj Jitindar Singh authored
      
      
      This adds an entry to the kvm_stats_debugfs directory which provides the
      number of large (2M or 1G) pages which have been used to setup the guest
      mappings, for radix guests.
      
      Signed-off-by: default avatarSuraj Jitindar Singh <sjitindarsingh@gmail.com>
      Signed-off-by: default avatarPaul Mackerras <paulus@ozlabs.org>
      8f1f7b9b
    • Alexey Kardashevskiy's avatar
      KVM: PPC: Release all hardware TCE tables attached to a group · a67614cc
      Alexey Kardashevskiy authored
      The SPAPR TCE KVM device references all hardware IOMMU tables assigned to
      some IOMMU group to ensure that in-kernel KVM acceleration of H_PUT_TCE
      can work. The tables are references when an IOMMU group gets registered
      with the VFIO KVM device by the KVM_DEV_VFIO_GROUP_ADD ioctl;
      KVM_DEV_VFIO_GROUP_DEL calls into the dereferencing code
      in kvm_spapr_tce_release_iommu_group() which walks through the list of
      LIOBNs, finds a matching IOMMU table and calls kref_put() when found.
      
      However that code stops after the very first successful derefencing
      leaving other tables referenced till the SPAPR TCE KVM device is destroyed
      which normally happens on guest reboot or termination so if we do hotplug
      and unplug in a loop, we are leaking IOMMU tables here.
      
      This removes a premature return to let kvm_spapr_tce_release_iommu_group()
      find and dereference all attached tables.
      
      Fixes: 121f80ba
      
       ("KVM: PPC: VFIO: Add in-kernel acceleration for VFIO")
      Signed-off-by: default avatarAlexey Kardashevskiy <aik@ozlabs.ru>
      Signed-off-by: default avatarPaul Mackerras <paulus@ozlabs.org>
      a67614cc
    • Suraj Jitindar Singh's avatar
      KVM: PPC: Book3S HV: Optimise mmio emulation for devices on FAST_MMIO_BUS · 1b642257
      Suraj Jitindar Singh authored
      
      
      Devices on the KVM_FAST_MMIO_BUS by definition have length zero and are
      thus used for notification purposes rather than data transfer. For
      example eventfd for virtio devices.
      
      This means that when emulating mmio instructions which target devices on
      this bus we can immediately handle them and return without needing to load
      the instruction from guest memory.
      
      For now we restrict this to stores as this is the only use case at
      present.
      
      For a normal guest the effect is negligible, however for a nested guest
      we save on the order of 5us per access.
      
      Signed-off-by: default avatarSuraj Jitindar Singh <sjitindarsingh@gmail.com>
      Signed-off-by: default avatarPaul Mackerras <paulus@ozlabs.org>
      1b642257
    • Paul Mackerras's avatar
      KVM: PPC: Book3S: Allow XICS emulation to work in nested hosts using XIVE · 03f95332
      Paul Mackerras authored
      
      
      Currently, the KVM code assumes that if the host kernel is using the
      XIVE interrupt controller (the new interrupt controller that first
      appeared in POWER9 systems), then the in-kernel XICS emulation will
      use the XIVE hardware to deliver interrupts to the guest.  However,
      this only works when the host is running in hypervisor mode and has
      full access to all of the XIVE functionality.  It doesn't work in any
      nested virtualization scenario, either with PR KVM or nested-HV KVM,
      because the XICS-on-XIVE code calls directly into the native-XIVE
      routines, which are not initialized and cannot function correctly
      because they use OPAL calls, and OPAL is not available in a guest.
      
      This means that using the in-kernel XICS emulation in a nested
      hypervisor that is using XIVE as its interrupt controller will cause a
      (nested) host kernel crash.  To fix this, we change most of the places
      where the current code calls xive_enabled() to select between the
      XICS-on-XIVE emulation and the plain XICS emulation to call a new
      function, xics_on_xive(), which returns false in a guest.
      
      However, there is a further twist.  The plain XICS emulation has some
      functions which are used in real mode and access the underlying XICS
      controller (the interrupt controller of the host) directly.  In the
      case of a nested hypervisor, this means doing XICS hypercalls
      directly.  When the nested host is using XIVE as its interrupt
      controller, these hypercalls will fail.  Therefore this also adds
      checks in the places where the XICS emulation wants to access the
      underlying interrupt controller directly, and if that is XIVE, makes
      the code use the virtual mode fallback paths, which call generic
      kernel infrastructure rather than doing direct XICS access.
      
      Signed-off-by: default avatarPaul Mackerras <paulus@ozlabs.org>
      Reviewed-by: default avatarCédric Le Goater <clg@kaod.org>
      Signed-off-by: default avatarPaul Mackerras <paulus@ozlabs.org>
      03f95332
    • Masahiro Yamada's avatar
      KVM: PPC: Remove -I. header search paths · f1adb9c4
      Masahiro Yamada authored
      The header search path -I. in kernel Makefiles is very suspicious;
      it allows the compiler to search for headers in the top of $(srctree),
      where obviously no header file exists.
      
      Commit 46f43c6e
      
       ("KVM: powerpc: convert marker probes to event
      trace") first added these options, but they are completely useless.
      
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      Signed-off-by: default avatarPaul Mackerras <paulus@ozlabs.org>
      f1adb9c4
    • wangbo's avatar
      KVM: PPC: Book3S HV: Replace kmalloc_node+memset with kzalloc_node · 08434ab4
      wangbo authored
      
      
      Replace kmalloc_node and memset with kzalloc_node
      
      Signed-off-by: default avatarwangbo <wang.bo116@zte.com.cn>
      Signed-off-by: default avatarPaul Mackerras <paulus@ozlabs.org>
      08434ab4
    • Paul Mackerras's avatar
      KVM: PPC: Book3S PR: Add emulation for slbfee. instruction · 41a8645a
      Paul Mackerras authored
      Recent kernels, since commit e15a4fea
      
       ("powerpc/64s/hash: Add
      some SLB debugging tests", 2018-10-03) use the slbfee. instruction,
      which PR KVM currently does not have code to emulate.  Consequently
      recent kernels fail to boot under PR KVM.  This adds emulation of
      slbfee., enabling these kernels to boot successfully.
      
      Signed-off-by: default avatarPaul Mackerras <paulus@ozlabs.org>
      41a8645a
  4. Feb 11, 2019
  5. Feb 10, 2019
    • Juergen Gross's avatar
      x86/mm: Make set_pmd_at() paravirt aware · 20e55bc1
      Juergen Gross authored
      set_pmd_at() calls native_set_pmd() unconditionally on x86. This was
      fine as long as only huge page entries were written via set_pmd_at(),
      as Xen pv guests don't support those.
      
      Commit 2c91bd4a ("mm: speed up mremap by 20x on large regions")
      introduced a usage of set_pmd_at() possible on pv guests, leading to
      failures like:
      
      BUG: unable to handle kernel paging request at ffff888023e26778
      #PF error: [PROT] [WRITE]
      RIP: e030:move_page_tables+0x7c1/0xae0
      move_vma.isra.3+0xd1/0x2d0
      __se_sys_mremap+0x3c6/0x5b0
       do_syscall_64+0x49/0x100
      entry_SYSCALL_64_after_hwframe+0x44/0xa9
      
      Make set_pmd_at() paravirt aware by just letting it use set_pmd().
      
      Fixes: 2c91bd4a
      
       ("mm: speed up mremap by 20x on large regions")
      Reported-by: default avatarSander Eikelenboom <linux@eikelenboom.it>
      Signed-off-by: default avatarJuergen Gross <jgross@suse.com>
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Cc: xen-devel@lists.xenproject.org
      Cc: boris.ostrovsky@oracle.com
      Cc: sstabellini@kernel.org
      Cc: hpa@zytor.com
      Cc: bp@alien8.de
      Cc: torvalds@linux-foundation.org
      Link: https://lkml.kernel.org/r/20190210074056.11842-1-jgross@suse.com
      20e55bc1
    • Linus Torvalds's avatar
      Merge branch 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · df3865f8
      Linus Torvalds authored
      Pull i2c fixes from Wolfram Sang:
       "One PM related driver bugfix and a MAINTAINERS update"
      
      * 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
        MAINTAINERS: Update the ocores i2c bus driver maintainer, etc
        i2c: omap: Use noirq system sleep pm ops to idle device for suspend
      df3865f8
    • Linus Torvalds's avatar
      Merge tag 'mips_fixes_5.0_3' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux · e8b50608
      Linus Torvalds authored
      Pull MIPS fixes from Paul Burton:
       "A batch of MIPS fixes for 5.0, nothing too scary.
      
         - A workaround for a Loongson 3 CPU bug is the biggest change, but
           still fairly straightforward. It adds extra memory barriers (sync
           instructions) around atomics to avoid a CPU bug that can break
           atomicity.
      
         - Loongson64 also sees a fix for powering off some systems which
           would incorrectly reboot rather than waiting for the power down
           sequence to complete.
      
         - We have DT fixes for the Ingenic JZ4740 SoC & the JZ4780-based Ci20
           board, and a DT warning fix for the Nexsys4/MIPSfpga board.
      
         - The Cavium Octeon platform sees a further fix to the behaviour of
           the pcie_disable command line argument that was introduced in v3.3.
      
         - The VDSO, introduced in v4.4, sees build fixes for configurations
           of GCC that were built using the --with-fp-32= flag to specify a
           default 32-bit floating point ABI.
      
         - get_frame_info() sees a fix for configurations with
           CONFIG_KALLSYMS=n, for which it previously always returned an
           error.
      
         - If the MIPS Coherence Manager (CM) reports an error then we'll now
           clear that error correctly so that the GCR_ERROR_CAUSE register
           will be updated with information about any future errors"
      
      * tag 'mips_fixes_5.0_3' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux:
        mips: cm: reprime error cause
        mips: loongson64: remove unreachable(), fix loongson_poweroff().
        MIPS: Remove function size check in get_frame_info()
        MIPS: Use lower case for addresses in nexys4ddr.dts
        MIPS: Loongson: Introduce and use loongson_llsc_mb()
        MIPS: VDSO: Include $(ccflags-vdso) in o32,n32 .lds builds
        MIPS: VDSO: Use same -m%-float cflag as the kernel proper
        MIPS: OCTEON: don't set octeon_dma_bar_type if PCI is disabled
        DTS: CI20: Fix bugs in ci20's device tree.
        MIPS: DTS: jz4740: Correct interrupt number of DMA core
      e8b50608
    • Linus Torvalds's avatar
      Merge tag 'for-linus-20190209' of git://git.kernel.dk/linux-block · e5a8a116
      Linus Torvalds authored
      Pull block fixes from Jens Axboe:
      
       - NVMe pull request from Christoph, fixing namespace locking when
         dealing with the effects log, and a rapid add/remove issue (Keith)
      
       - blktrace tweak, ensuring requests with -1 sectors are shown (Jan)
      
       - link power management quirk for a Smasung SSD (Hans)
      
       - m68k nfblock dynamic major number fix (Chengguang)
      
       - series fixing blk-iolatency inflight counter issue (Liu)
      
       - ensure that we clear ->private when setting up the aio kiocb (Mike)
      
       - __find_get_block_slow() rate limit print (Tetsuo)
      
      * tag 'for-linus-20190209' of git://git.kernel.dk/linux-block:
        blk-mq: remove duplicated definition of blk_mq_freeze_queue
        Blk-iolatency: warn on negative inflight IO counter
        blk-iolatency: fix IO hang due to negative inflight counter
        blktrace: Show requests without sector
        fs: ratelimit __find_get_block_slow() failure message.
        m68k: set proper major_num when specifying module param major_num
        libata: Add NOLPM quirk for SAMSUNG MZ7TE512HMHP-000L1 SSD
        nvme-pci: fix rapid add remove sequence
        nvme: lock NS list changes while handling command effects
        aio: initialize kiocb private in case any filesystems expect it.
      e5a8a116
    • Linus Torvalds's avatar
      Merge tag 'mtd/fixes-for-5.0-rc6' of git://git.infradead.org/linux-mtd · 5610789a
      Linus Torvalds authored
      Pull mtd fixes from Boris Brezillon:
      
       - Fix a problem with the imx28 ECC engine
      
       - Remove a debug trace introduced in 2b6f0090 ("mtd: Check
         add_mtd_device() ret code")
      
       - Make sure partitions of size 0 can be registered
      
       - Fix kernel-doc warning in the rawnand core
      
       - Fix the error path of spinand_init() (missing manufacturer cleanup in
         a few places)
      
       - Address a problem with the SPI NAND PROGRAM LOAD operation which does
         not work as expected on some parts.
      
      * tag 'mtd/fixes-for-5.0-rc6' of git://git.infradead.org/linux-mtd:
        mtd: rawnand: gpmi: fix MX28 bus master lockup problem
        mtd: Make sure mtd->erasesize is valid even if the partition is of size 0
        mtd: Remove a debug trace in mtdpart.c
        mtd: rawnand: fix kernel-doc warnings
        mtd: spinand: Fix the error/cleanup path in spinand_init()
        mtd: spinand: Handle the case where PROGRAM LOAD does not reset the cache
      5610789a
    • Linus Torvalds's avatar
      Merge tag 'for-linus-5.0-rc6-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip · 3e5e692f
      Linus Torvalds authored
      Pull xen fixes from Juergen Gross:
       "Two very minor fixes: one remove of a #include for an unused header
        and a fix of the xen ML address in MAINTAINERS"
      
      * tag 'for-linus-5.0-rc6-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
        MAINTAINERS: unify reference to xen-devel list
        arch/arm/xen: Remove duplicate header
      3e5e692f
  6. Feb 09, 2019
    • Ingo Molnar's avatar
      Merge tag 'perf-urgent-for-mingo-5.0-20190205' of... · 3bb26006
      Ingo Molnar authored
      Merge tag 'perf-urgent-for-mingo-5.0-20190205' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux
      
       into perf/urgent
      
      Pull perf/urgent fixes from Arnaldo Carvalho de Melo:
      
      perf trace:
      
        Arnaldo Carvalho de Melo:
      
          Fix handling of probe:vfs_getname when the probed routine is
          inlined in multiple places, fixing the collection of the 'filename'
          parameter in open syscalls.
      
      perf test:
      
        Gustavo A. R. Silva:
      
          Fix bitwise operator usage in evsel-tp-sched test, which made tat
          test always detect fields as signed.
      
        Jiri Olsa:
      
          Filter out hidden symbols from labels, added in systems where the
          annobin plugin is used, such as RHEL8, which, if left in place make
          the DWARF unwind 'perf test' to fail on PPC.
      
        Tony Jones:
      
          Fix 'perf_event_attr' tests when building with python3.
      
      perf mem/c2c:
      
        Ravi Bangoria:
      
          Fix perf_mem_events on PowerPC.
      
      tools headers UAPI:
      
        Arnaldo Carvalho de Melo:
      
          Sync linux/in.h copy from the kernel sources, silencing a perf build warning.
      
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      3bb26006
    • Linus Torvalds's avatar
      Merge tag 'armsoc-fixes-5.0' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · 46c291e2
      Linus Torvalds authored
      Pull ARM SoC fixes from Arnd Bergmann:
       "This is a bit larger than normal, as we had not managed to send out a
        pull request before traveling for a week without my signing key.
      
        There are multiple code fixes for older bugs, all of which should get
        backported into stable kernels:
      
         - tango: one fix for multiplatform configurations broken on other
           platforms when tango is enabled
      
         - arm_scmi: device unregistration fix
      
         - iop32x: fix kernel oops from extraneous __init annotation
      
         - pxa: remove a double kfree
      
         - fsl qbman: close an interrupt clearing race
      
        The rest is the usual collection of smaller fixes for device tree
        files, on the renesas, allwinner, meson, omap, davinci, qualcomm and
        imx platforms.
      
        Some of these are for compile-time warnings, most are for board
        specific functionality that fails to work because of incorrect
        settings"
      
      * tag 'armsoc-fixes-5.0' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (30 commits)
        ARM: tango: Improve ARCH_MULTIPLATFORM compatibility
        firmware: arm_scmi: provide the mandatory device release callback
        ARM: iop32x/n2100: fix PCI IRQ mapping
        arm64: dts: add msm8996 compatible to gicv3
        ARM: dts: am335x-shc.dts: fix wrong cd pin level
        ARM: dts: n900: fix mmc1 card detect gpio polarity
        ARM: dts: omap3-gta04: Fix graph_port warning
        ARM: pxa: ssp: unneeded to free devm_ allocated data
        ARM: dts: r8a7743: Convert to new LVDS DT bindings
        soc: fsl: qbman: avoid race in clearing QMan interrupt
        arm64: dts: renesas: r8a77965: Enable DMA for SCIF2
        arm64: dts: renesas: r8a7796: Enable DMA for SCIF2
        arm64: dts: renesas: r8a774a1: Enable DMA for SCIF2
        ARM: dts: da850: fix interrupt numbers for clocksource
        dt-bindings: imx8mq: Number clocks consecutively
        arm64: dts: meson: Fix mmc cd-gpios polarity
        ARM: dts: imx6sx: correct backward compatible of gpt
        ARM: dts: imx: replace gpio-key,wakeup with wakeup-source property
        ARM: dts: vf610-bk4: fix incorrect #address-cells for dspi3
        ARM: dts: meson8m2: mxiii-plus: mark the SD card detection GPIO active-low
        ...
      46c291e2
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 5bb513ed
      Linus Torvalds authored
      Pull arm64 fixes from Will Deacon:
       "Two arm64 fixes for -rc6. They resolve a kernel NULL dereference in
        kexec and bogus kernel page table dumping when userspace is configured
        for 52-bit virtual addressing.
      
        Summary:
      
         - Fix kernel oops when attemping kexec_file() with a NULL cmdline
      
         - Fix page table output in debugfs when ARM64_USER_VA_BITS_52=y"
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64: kexec_file: handle empty command-line
        arm64: ptdump: Don't iterate kernel page tables using PTRS_PER_PXX
      5bb513ed
    • Linus Torvalds's avatar
      Merge tag 'powerpc-5.0-4' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · 820828bf
      Linus Torvalds authored
      Pull powerpc fixes from Michael Ellerman:
       "Just two fixes, both going to stable.
      
         - Our support for split pmd page table lock had a bug which could
           lead to a crash on mremap() when using the Radix MMU (Power9 only).
      
         - A fix for the PAPR SCM driver (nvdimm) we added last release, which
           had a bug where we might mis-handle a hypervisor response leading
           to us failing to attach the memory region.
      
        Thanks to: Aneesh Kumar K.V, Oliver O'Halloran"
      
      * tag 'powerpc-5.0-4' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        powerpc/papr_scm: Use the correct bind address
        powerpc/radix: Fix kernel crash with mremap()
      820828bf
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace · 6b2912ce
      Linus Torvalds authored
      Pull signal fixes from Eric Biederman:
       "This contains four small fixes for signal handling. A missing range
        check, a regression fix, prioritizing signals we have already started
        a signal group exit for, and better detection of synchronous signals.
      
        The confused decision of which signals to handle failed spectacularly
        when a timer was pointed at SIGBUS and the stack overflowed. Resulting
        in an unkillable process in an infinite loop instead of a SIGSEGV and
        core dump"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace:
        signal: Better detection of synchronous signals
        signal: Always notice exiting tasks
        signal: Always attempt to allocate siginfo for SIGSTOP
        signal: Make siginmask safe when passed a signal of 0
      6b2912ce
    • Linus Torvalds's avatar
      Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 3b6e8204
      Linus Torvalds authored
      Pull SCSI fixes from James Bottomley:
       "This is a set of five minor fixes (although, tecnhincally, the aicxxx
        fix is for a major problem in that the driver won't load without it,
        but I think the fact it's taken us since 4.10 to discover this
        indicates that the user base for these things has declined)"
      
      * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        scsi: cxlflash: Prevent deadlock when adapter probe fails
        Revert "scsi: libfc: Add WARN_ON() when deleting rports"
        scsi: sd_zbc: Fix zone information messages
        scsi: target: make the pi_prot_format ConfigFS path readable
        scsi: aic94xx: fix module loading
      3b6e8204
    • Linus Torvalds's avatar
      Merge tag 'iommu-fixes-v5.0-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu · 2e277fa0
      Linus Torvalds authored
      Pull IOMMU fix from Joerg Roedel:
       "Intel decided to leave the newly added Scalable Mode Feature
        default-disabled for now. The patch here accomplishes that"
      
      * tag 'iommu-fixes-v5.0-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu:
        iommu/vt-d: Leave scalable mode default off
      2e277fa0
    • Linus Torvalds's avatar
      Merge tag 'pci-v5.0-fixes-4' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci · 70be9ac2
      Linus Torvalds authored
      Pull PCI fix from Bjorn Helgaas:
       "Work around Synopsys duplicate Device ID (HAPS USB3, NXP i.MX) that
        breaks PCIe on I.MX SoCs (Thinh Nguyen)"
      
      * tag 'pci-v5.0-fixes-4' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci:
        PCI: Work around Synopsys duplicate Device ID (HAPS USB3, NXP i.MX)
      70be9ac2
    • Linus Torvalds's avatar
      Merge tag 'acpi-5.0-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · e2dac603
      Linus Torvalds authored
      Pull ACPI fix from Rafael Wysocki:
       "This prevents excessive ACPI debug messages from being printed to the
        kernel log, which has started to happen after one of the recent ACPICA
        commits (Erik Schmauss)"
      
      * tag 'acpi-5.0-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        ACPI: Set debug output flags independent of ACPICA
      e2dac603
    • Andrew Lunn's avatar
      MAINTAINERS: Update the ocores i2c bus driver maintainer, etc · 13c80dda
      Andrew Lunn authored
      
      
      The listed maintainer has not been responding to emails for a while.
      Add myself as a second maintainer.
      
      Add the platform data include file, which was not listed.
      
      Signed-off-by: default avatarAndrew Lunn <andrew@lunn.ch>
      Signed-off-by: default avatarWolfram Sang <wsa@the-dreams.de>
      13c80dda
    • Liu Bo's avatar
      blk-mq: remove duplicated definition of blk_mq_freeze_queue · 26984841
      Liu Bo authored
      
      
      As the prototype has been defined in "include/linux/blk-mq.h", the one
      in "block/blk-mq.h" can be removed then.
      
      Signed-off-by: default avatarLiu Bo <bo.liu@linux.alibaba.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      26984841
    • Liu Bo's avatar
      Blk-iolatency: warn on negative inflight IO counter · 391f552a
      Liu Bo authored
      
      
      This is to catch any unexpected negative value of inflight IO counter.
      
      Signed-off-by: default avatarLiu Bo <bo.liu@linux.alibaba.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      391f552a
    • Liu Bo's avatar
      blk-iolatency: fix IO hang due to negative inflight counter · 8c772a9b
      Liu Bo authored
      
      
      Our test reported the following stack, and vmcore showed that
      ->inflight counter is -1.
      
      [ffffc9003fcc38d0] __schedule at ffffffff8173d95d
      [ffffc9003fcc3958] schedule at ffffffff8173de26
      [ffffc9003fcc3970] io_schedule at ffffffff810bb6b6
      [ffffc9003fcc3988] blkcg_iolatency_throttle at ffffffff813911cb
      [ffffc9003fcc3a20] rq_qos_throttle at ffffffff813847f3
      [ffffc9003fcc3a48] blk_mq_make_request at ffffffff8137468a
      [ffffc9003fcc3b08] generic_make_request at ffffffff81368b49
      [ffffc9003fcc3b68] submit_bio at ffffffff81368d7d
      [ffffc9003fcc3bb8] ext4_io_submit at ffffffffa031be00 [ext4]
      [ffffc9003fcc3c00] ext4_writepages at ffffffffa03163de [ext4]
      [ffffc9003fcc3d68] do_writepages at ffffffff811c49ae
      [ffffc9003fcc3d78] __filemap_fdatawrite_range at ffffffff811b6188
      [ffffc9003fcc3e30] filemap_write_and_wait_range at ffffffff811b6301
      [ffffc9003fcc3e60] ext4_sync_file at ffffffffa030cee8 [ext4]
      [ffffc9003fcc3ea8] vfs_fsync_range at ffffffff8128594b
      [ffffc9003fcc3ee8] do_fsync at ffffffff81285abd
      [ffffc9003fcc3f18] sys_fsync at ffffffff81285d50
      [ffffc9003fcc3f28] do_syscall_64 at ffffffff81003c04
      [ffffc9003fcc3f50] entry_SYSCALL_64_after_swapgs at ffffffff81742b8e
      
      The ->inflight counter may be negative (-1) if
      
      1) blk-iolatency was disabled when the IO was issued,
      
      2) blk-iolatency was enabled before this IO reached its endio,
      
      3) the ->inflight counter is decreased from 0 to -1 in endio()
      
      In fact the hang can be easily reproduced by the below script,
      
      H=/sys/fs/cgroup/unified/
      P=/sys/fs/cgroup/unified/test
      
      echo "+io" > $H/cgroup.subtree_control
      mkdir -p $P
      
      echo $$ > $P/cgroup.procs
      
      xfs_io -f -d -c "pwrite 0 4k" /dev/sdg
      
      echo "`cat /sys/block/sdg/dev` target=1000000" > $P/io.latency
      
      xfs_io -f -d -c "pwrite 0 4k" /dev/sdg
      
      This fixes the problem by freezing the queue so that while
      enabling/disabling iolatency, there is no inflight rq running.
      
      Note that quiesce_queue is not needed as this only updating iolatency
      configuration about which dispatching request_queue doesn't care.
      
      Signed-off-by: default avatarLiu Bo <bo.liu@linux.alibaba.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      8c772a9b
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 27b4ad62
      Linus Torvalds authored
      Pull networking fixes from David Miller:
       "This pull request is dedicated to the upcoming snowpocalypse parts 2
        and 3 in the Pacific Northwest:
      
         1) Drop profiles are broken because some drivers use dev_kfree_skb*
            instead of dev_consume_skb*, from Yang Wei.
      
         2) Fix IWLWIFI kconfig deps, from Luca Coelho.
      
         3) Fix percpu maps updating in bpftool, from Paolo Abeni.
      
         4) Missing station release in batman-adv, from Felix Fietkau.
      
         5) Fix some networking compat ioctl bugs, from Johannes Berg.
      
         6) ucc_geth must reset the BQL queue state when stopping the device,
            from Mathias Thore.
      
         7) Several XDP bug fixes in virtio_net from Toshiaki Makita.
      
         8) TSO packets must be sent always on queue 0 in stmmac, from Jose
            Abreu.
      
         9) Fix socket refcounting bug in RDS, from Eric Dumazet.
      
        10) Handle sparse cpu allocations in bpf selftests, from Martynas
            Pumputis.
      
        11) Make sure mgmt frames have enough tailroom in mac80211, from Felix
            Feitkau.
      
        12) Use safe list walking in sctp_sendmsg() asoc list traversal, from
            Greg Kroah-Hartman.
      
        13) Make DCCP's ccid_hc_[rt]x_parse_options always check for NULL
            ccid, from Eric Dumazet.
      
        14) Need to reload WoL password into bcmsysport device after deep
            sleeps, from Florian Fainelli.
      
        15) Remove filter from mask before freeing in cls_flower, from Petr
            Machata.
      
        16) Missing release and use after free in error paths of s390 qeth
            code, from Julian Wiedmann.
      
        17) Fix lockdep false positive in dsa code, from Marc Zyngier.
      
        18) Fix counting of ATU violations in mv88e6xxx, from Andrew Lunn.
      
        19) Fix EQ firmware assert in qed driver, from Manish Chopra.
      
        20) Don't default Caivum PTP to Y in kconfig, from Bjorn Helgaas"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (116 commits)
        net: dsa: b53: Fix for failure when irq is not defined in dt
        sit: check if IPv6 enabled before calling ip6_err_gen_icmpv6_unreach()
        geneve: should not call rt6_lookup() when ipv6 was disabled
        net: Don't default Cavium PTP driver to 'y'
        net: broadcom: replace dev_kfree_skb_irq by dev_consume_skb_irq for drop profiles
        net: via-velocity: replace dev_kfree_skb_irq by dev_consume_skb_irq for drop profiles
        net: tehuti: replace dev_kfree_skb_irq by dev_consume_skb_irq for drop profiles
        net: sun: replace dev_kfree_skb_irq by dev_consume_skb_irq for drop profiles
        net: fsl_ucc_hdlc: replace dev_kfree_skb_irq by dev_consume_skb_irq for drop profiles
        net: fec_mpc52xx: replace dev_kfree_skb_irq by dev_consume_skb_irq for drop profiles
        net: smsc: epic100: replace dev_kfree_skb_irq by dev_consume_skb_irq for drop profiles
        net: dscc4: replace dev_kfree_skb_irq by dev_consume_skb_irq for drop profiles
        net: tulip: de2104x: replace dev_kfree_skb_irq by dev_consume_skb_irq for drop profiles
        net: defxx: replace dev_kfree_skb_irq by dev_consume_skb_irq for drop profiles
        net/mlx5e: Don't overwrite pedit action when multiple pedit used
        net/mlx5e: Update hw flows when encap source mac changed
        qed*: Advance drivers version to 8.37.0.20
        qed: Change verbosity for coalescing message.
        qede: Fix system crash on configuring channels.
        qed: Consider TX tcs while deriving the max num_queues for PF.
        ...
      27b4ad62