1. 23 Jun, 2018 2 commits
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 8b88ed3c
      Linus Torvalds authored
      Pull KVM fixes from Radim Krčmář:
       "ARM:
         - Lazy FPSIMD switching fixes
         - Really disable compat ioctls on architectures that don't want it
         - Disable compat on arm64 (it was never implemented...)
         - Rely on architectural requirements for GICV on GICv3
         - Detect bad alignments in unmap_stage2_range
      
        x86:
         - Add nested VM entry checks to avoid broken error recovery path
         - Minor documentation fix"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
        KVM: fix KVM_CAP_HYPERV_TLBFLUSH paragraph number
        kvm: vmx: Nested VM-entry prereqs for event inj.
        KVM: arm64: Prevent KVM_COMPAT from being selected
        KVM: Enforce error in ioctl for compat tasks when !KVM_COMPAT
        KVM: arm/arm64: add WARN_ON if size is not PAGE_SIZE aligned in unmap_stage2_range
        KVM: arm64: Avoid mistaken attempts to save SVE state for vcpus
        KVM: arm64/sve: Fix SVE trap restoration for non-current tasks
        KVM: arm64: Don't mask softirq with IRQs disabled in vcpu_put()
        arm64: Introduce sysreg_clear_set()
        KVM: arm/arm64: Drop resource size check for GICV window
      8b88ed3c
    • Linus Torvalds's avatar
      Merge tag 'for-linus-4.18-rc2-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip · 4ab59fcf
      Linus Torvalds authored
      Pull xen fixes from Juergen Gross:
       "This contains the following fixes/cleanups:
      
         - the removal of a BUG_ON() which wasn't necessary and which could
           trigger now due to a recent change
      
         - a correction of a long standing bug happening very rarely in Xen
           dom0 when a hypercall buffer from user land was not accessible by
           the hypervisor for very short periods of time due to e.g. page
           migration or compaction
      
         - usage of EXPORT_SYMBOL_GPL() instead of EXPORT_SYMBOL() in a
           Xen-related driver (no breakage possible as using those symbols
           without others already exported via EXPORT-SYMBOL_GPL() wouldn't
           make any sense)
      
         - a simplification for Xen PVH or Xen ARM guests
      
         - some additional error handling for callers of xenbus_printf()"
      
      * tag 'for-linus-4.18-rc2-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
        xen: Remove unnecessary BUG_ON from __unbind_from_irq()
        xen: add new hypercall buffer mapping device
        xen/scsiback: add error handling for xenbus_printf
        scsi: xen-scsifront: add error handling for xenbus_printf
        xen/grant-table: Export gnttab_{alloc|free}_pages as GPL
        xen: add error handling for xenbus_printf
        xen: share start flags between PV and PVH
      4ab59fcf
  2. 22 Jun, 2018 8 commits
  3. 21 Jun, 2018 19 commits
    • Dave Airlie's avatar
      Merge tag 'drm-intel-fixes-2018-06-21' of... · 8325e6e3
      Dave Airlie authored
      Merge tag 'drm-intel-fixes-2018-06-21' of git://anongit.freedesktop.org/drm/drm-intel into drm-fixes
      
      drm/i915 fixes for v4.18-rc2:
      - Mostly cc: stable display fixes, including a DBLSCAN regression fix
      - GEM fixes for this merge window
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      Link: https://patchwork.freedesktop.org/patch/msgid/87d0wkuypy.fsf@intel.com
      8325e6e3
    • Linus Torvalds's avatar
      Merge tag 'nfs-for-4.18-2' of git://git.linux-nfs.org/projects/trondmy/linux-nfs · 27db64f6
      Linus Torvalds authored
      Pull NFS client bugfixes from Trond Myklebust:
       "Hightlights include:
      
         - fix an rcu deadlock in nfs_delegation_find_inode()
      
         - fix NFSv4 deadlocks due to not freeing the session slot in
           layoutget
      
         - don't send layoutreturn if the layout is already invalid
      
         - prevent duplicate XID allocation
      
         - flexfiles: Don't tie up all the rpciod threads in resends"
      
      * tag 'nfs-for-4.18-2' of git://git.linux-nfs.org/projects/trondmy/linux-nfs:
        pNFS/flexfiles: Process writeback resends from nfsiod context as well
        pNFS/flexfiles: Don't tie up all the rpciod threads in resends
        sunrpc: Prevent duplicate XID allocation
        pNFS: Don't send layoutreturn if the layout is already invalid
        pNFS: Always free the session slot on error in nfs4_layoutget_handle_exception
        NFS: Fix an rcu deadlock in nfs_delegation_find_inode()
      27db64f6
    • Linus Torvalds's avatar
      Merge tag 'pinctrl-v4.18-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl · acdf3f93
      Linus Torvalds authored
      Pull pin control fixes from Linus Walleij:
       "Some fallout in the pin control subsystem in the first week after the
        merge window, some minor fixes so I'd like to get it to you ASAP.
      
         - fix a serious kernel panic on the Mediatek driver with the external
           interrupt controller.
      
         - fix an uninitialized compiler warning in the owl (actions) driver.
      
         - allocation failure in the pinctrl-single driver.
      
         - pointer overwrite problem in the i.MX driver.
      
         - fix a small compiler warning"
      
      * tag 'pinctrl-v4.18-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl:
        pinctrl: mt7622: fix a kernel panic when pio don't work as EINT controller
        pinctrl: actions: Fix uninitialized error in owl_pin_config_set()
        pinctrl: single: Add allocation failure checking of saved_vals
        pinctrl: devicetree: Fix pctldev pointer overwrite
        pinctrl: mediatek: remove redundant return value check of platform_get_resource()
      acdf3f93
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-linus-v4.18-rc2' of... · 303f311e
      Linus Torvalds authored
      Merge tag 'hwmon-for-linus-v4.18-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
      
      Pull hwmon fixes from Guenter Roeck:
      
       - fix a loop limit in nct6775 driver
      
       - disable fan support for Dell XPS13 9333
      
      * tag 'hwmon-for-linus-v4.18-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
        hwmon: (nct6775) Fix loop limit
        hwmon: (dell-smm) Disable fan support for Dell XPS13 9333
      303f311e
    • Linus Torvalds's avatar
      Merge tag 'acpi-4.18-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · f43fc5a0
      Linus Torvalds authored
      Pull ACPI fixes from Rafael Wysocki:
       "These fix a suspend/resume regression in the ACPI driver for Intel
        SoCs (LPSS), add a new system wakeup quirk to the ACPI EC driver and
        fix an inline stub of a function in the ACPI processor driver that
        diverged from the original.
      
        Specifics:
      
         - Fix a suspend/resume regression in the ACPI driver for Intel SoCs
           (LPSS) to make it work on systems where some power management
           quirks should only be applied for runtime PM and suspend-to-idle
           and not for suspend-to-RAM (Rafael Wysocki).
      
         - Add a system wakeup quirk for Thinkpad X1 Carbon 6th to the ACPI EC
           driver to avoid drainig battery too fast while suspended to idle on
           those systems (Mika Westerberg).
      
         - Fix an inline stub of acpi_processor_ppc_has_changed() to match the
           original function definition (Brian Norris)"
      
      * tag 'acpi-4.18-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        ACPI / processor: Finish making acpi_processor_ppc_has_changed() void
        ACPI / EC: Use ec_no_wakeup on Thinkpad X1 Carbon 6th
        ACPI / LPSS: Avoid PM quirks on suspend and resume from S3
      f43fc5a0
    • Linus Torvalds's avatar
      Merge tag 'pm-4.18-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 26c92a38
      Linus Torvalds authored
      Pull power management updates from Rafael Wysocki:
       "These are mostly fixes, including some fixes for changes made during
        the recent merge window and some "stable" material, plus some minor
        extensions of the turbostat utility.
      
        Specifics:
      
         - Fix the PM core to avoid introducing a runtime PM usage counter
           imbalance when adding device links during driver probe (Rafael
           Wysocki).
      
         - Fix the operating performance points (OPP) framework to ensure that
           the regulator voltage is always updated as appropriate when
           updating clock rates (Waldemar Rymarkiewicz).
      
         - Fix the intel_pstate driver to use correct max/min limits for cores
           with differing maximum frequences (Srinivas Pandruvada).
      
         - Fix a typo in the intel_pstate driver documentation (Rafael
           Wysocki).
      
         - Fix two issues with the recently added Kryo cpufreq driver (Ilia
           Lin).
      
         - Fix two recent regressions and some other minor issues in the
           turbostat utility and extend it to provide some more diagnostic
           information (Len Brown, Nathan Ciobanu)"
      
      * tag 'pm-4.18-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        Documentation: intel_pstate: Fix typo
        tools/power turbostat: version 18.06.20
        tools/power turbostat: add the missing command line switches
        tools/power turbostat: add single character tokens to help
        tools/power turbostat: alphabetize the help output
        tools/power turbostat: fix segfault on 'no node' machines
        tools/power turbostat: add optional APIC X2APIC columns
        tools/power turbostat: decode cpuid.1.HT
        tools/power turbostat: fix show/hide issues resulting from mis-merge
        PM / OPP: Update voltage in case freq == old_freq
        cpufreq: intel_pstate: Fix scaling max/min limits with Turbo 3.0
        cpufreq: kryo: Add module remove and exit
        cpufreq: kryo: Fix possible error code dereference
        PM / core: Fix supplier device runtime PM usage counter imbalance
      26c92a38
    • Marc Zyngier's avatar
      KVM: arm64: Prevent KVM_COMPAT from being selected · 37b65db8
      Marc Zyngier authored
      There is very little point in trying to support the 32bit KVM/arm API
      on arm64, and this was never an anticipated use case.
      
      Let's make it clear by not selecting KVM_COMPAT.
      Acked-by: default avatarMark Rutland <mark.rutland@arm.com>
      Signed-off-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
      37b65db8
    • Marc Zyngier's avatar
      KVM: Enforce error in ioctl for compat tasks when !KVM_COMPAT · 7ddfd3e0
      Marc Zyngier authored
      The current behaviour of the compat ioctls is a bit odd.
      We provide a compat_ioctl method when KVM_COMPAT is set, and NULL
      otherwise. But NULL means that the normal, non-compat ioctl should
      be used directly for compat tasks, and there is no way to actually
      prevent a compat task from issueing KVM ioctls.
      
      This patch changes this behaviour, by always registering a compat_ioctl
      method, even if KVM_COMPAT is not selected. In that case, the callback
      will always return -EINVAL.
      
      Fixes: de8e5d74 ("KVM: Disable compat ioctl for s390")
      Reported-by: default avatarMark Rutland <mark.rutland@arm.com>
      Acked-by: default avatarChristian Borntraeger <borntraeger@de.ibm.com>
      Acked-by: default avatarRadim Krčmář <rkrcmar@redhat.com>
      Signed-off-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
      7ddfd3e0
    • Rafael J. Wysocki's avatar
      Merge branches 'acpi-soc' and 'acpi-processor' · e50f182c
      Rafael J. Wysocki authored
      These are a stable-candidate suspend/resume fix of the ACPI driver for
      Intel SoCs (LPSS) and an inline stub fix for the ACPI processor driver.
      
      * acpi-soc:
        ACPI / LPSS: Avoid PM quirks on suspend and resume from S3
      
      * acpi-processor:
        ACPI / processor: Finish making acpi_processor_ppc_has_changed() void
      e50f182c
    • Rafael J. Wysocki's avatar
      Merge branch 'pm-tools' · b51e0013
      Rafael J. Wysocki authored
      These are turbostat utility updates for 4.18-rc2 including two fixes
      for recent regressions and some minor extensions.
      
      * pm-tools:
        tools/power turbostat: version 18.06.20
        tools/power turbostat: add the missing command line switches
        tools/power turbostat: add single character tokens to help
        tools/power turbostat: alphabetize the help output
        tools/power turbostat: fix segfault on 'no node' machines
        tools/power turbostat: add optional APIC X2APIC columns
        tools/power turbostat: decode cpuid.1.HT
        tools/power turbostat: fix show/hide issues resulting from mis-merge
      b51e0013
    • Rafael J. Wysocki's avatar
      Merge branches 'pm-core' and 'pm-opp' · 7553a72b
      Rafael J. Wysocki authored
      These are a PM core fix and an OPP framework fix for 4.18-rc2,
      both "stable" material.
      
      * pm-core:
        PM / core: Fix supplier device runtime PM usage counter imbalance
      
      * pm-opp:
        PM / OPP: Update voltage in case freq == old_freq
      7553a72b
    • Jia He's avatar
      KVM: arm/arm64: add WARN_ON if size is not PAGE_SIZE aligned in unmap_stage2_range · 47a91b72
      Jia He authored
      There is a panic in armv8a server(QDF2400) under memory pressure tests
      (start 20 guests and run memhog in the host).
      
      ---------------------------------begin--------------------------------
      [35380.800950] BUG: Bad page state in process qemu-kvm  pfn:dd0b6
      [35380.805825] page:ffff7fe003742d80 count:-4871 mapcount:-2126053375
      mapping:          (null) index:0x0
      [35380.815024] flags: 0x1fffc00000000000()
      [35380.818845] raw: 1fffc00000000000 0000000000000000 0000000000000000
      ffffecf981470000
      [35380.826569] raw: dead000000000100 dead000000000200 ffff8017c001c000
      0000000000000000
      [35380.805825] page:ffff7fe003742d80 count:-4871 mapcount:-2126053375
      mapping:          (null) index:0x0
      [35380.815024] flags: 0x1fffc00000000000()
      [35380.818845] raw: 1fffc00000000000 0000000000000000 0000000000000000
      ffffecf981470000
      [35380.826569] raw: dead000000000100 dead000000000200 ffff8017c001c000
      0000000000000000
      [35380.834294] page dumped because: nonzero _refcount
      [...]
      --------------------------------end--------------------------------------
      
      The root cause might be what was fixed at [1]. But from the KVM points of
      view, it would be better if the issue was caught earlier.
      
      If the size is not PAGE_SIZE aligned, unmap_stage2_range might unmap the
      wrong(more or less) page range. Hence it caused the "BUG: Bad page
      state"
      
      Let's WARN in that case, so that the issue is obvious.
      
      [1] https://lkml.org/lkml/2018/5/3/1042Reviewed-by: default avatarSuzuki K Poulose <suzuki.poulose@arm.com>
      Signed-off-by: jia.he@hxt-semitech.com
      [maz: tidied up commit message]
      Signed-off-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
      47a91b72
    • Maciej Purski's avatar
      drm/bridge/sii8620: fix display of packed pixel modes in MHL2 · e8b92efa
      Maciej Purski authored
      Currently packed pixel modes in MHL2 can't be displayed. The device
      automatically recognizes output format, so setting format other than
      RGB causes failure. Fix it by writing proper values to registers.
      
      Tested on MHL1 and MHL2 using various vendors' dongles both in
      DVI and HDMI mode.
      Signed-off-by: default avatarMaciej Purski <m.purski@samsung.com>
      Signed-off-by: default avatarAndrzej Hajda <a.hajda@samsung.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/1516706239-9104-1-git-send-email-m.purski@samsung.com
      e8b92efa
    • Dave Martin's avatar
      KVM: arm64: Avoid mistaken attempts to save SVE state for vcpus · 2955bcc8
      Dave Martin authored
      Commit e6b673b7 ("KVM: arm64: Optimise FPSIMD handling to reduce
      guest/host thrashing") uses fpsimd_save() to save the FPSIMD state
      for a vcpu when scheduling the vcpu out.  However, currently
      current's value of TIF_SVE is restored before calling fpsimd_save()
      which means that fpsimd_save() may erroneously attempt to save SVE
      state from the vcpu.  This enables current's vector state to be
      polluted with guest data.  current->thread.sve_state may be
      unallocated or not large enough, so this can also trigger a NULL
      dereference or buffer overrun.
      
      Instead of this, TIF_SVE should be configured properly for the
      guest when calling fpsimd_save() with the vcpu context loaded.
      
      This patch ensures this by delaying restoration of current's
      TIF_SVE until after the call to fpsimd_save().
      
      Fixes: e6b673b7 ("KVM: arm64: Optimise FPSIMD handling to reduce guest/host thrashing")
      Signed-off-by: default avatarDave Martin <Dave.Martin@arm.com>
      Signed-off-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
      2955bcc8
    • Dave Martin's avatar
      KVM: arm64/sve: Fix SVE trap restoration for non-current tasks · b3eb56b6
      Dave Martin authored
      Commit e6b673b7 ("KVM: arm64: Optimise FPSIMD handling to reduce
      guest/host thrashing") attempts to restore the configuration of
      userspace SVE trapping via a call to fpsimd_bind_task_to_cpu(), but
      the logic for determining when to do this is not correct.
      
      The patch makes the errnoenous assumption that the only task that
      may try to enter userspace with the currently loaded FPSIMD/SVE
      register content is current.  This may not be the case however:  if
      some other user task T is scheduled on the CPU during the execution
      of the KVM run loop, and the vcpu does not try to use the registers
      in the meantime, then T's state may be left there intact.  If T
      happens to be the next task to enter userspace on this CPU then the
      hooks for reloading the register state and configuring traps will
      be skipped.
      
      (Also, current never has SVE state at this point anyway and should
      always have the trap enabled, as a side-effect of the ioctl()
      syscall needed to reach the KVM run loop in the first place.)
      
      This patch instead restores the state of the EL0 trap from the
      state observed at the most recent vcpu_load(), ensuring that the
      trap is set correctly for the loaded context (if any).
      
      Fixes: e6b673b7 ("KVM: arm64: Optimise FPSIMD handling to reduce guest/host thrashing")
      Signed-off-by: default avatarDave Martin <Dave.Martin@arm.com>
      Signed-off-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
      b3eb56b6
    • Dave Martin's avatar
      KVM: arm64: Don't mask softirq with IRQs disabled in vcpu_put() · b045e4d0
      Dave Martin authored
      Commit e6b673b7 ("KVM: arm64: Optimise FPSIMD handling to reduce
      guest/host thrashing") introduces a specific helper
      kvm_arch_vcpu_put_fp() for saving the vcpu FPSIMD state during
      vcpu_put().
      
      This function uses local_bh_disable()/_enable() to protect the
      FPSIMD context manipulation from interruption by softirqs.
      
      This approach is not correct, because vcpu_put() can be invoked
      either from the KVM host vcpu thread (when exiting the vcpu run
      loop), or via a preempt notifier.  In the former case, only
      preemption is disabled.  In the latter case, the function is called
      from inside __schedule(), which means that IRQs are disabled.
      
      Use of local_bh_disable()/_enable() with IRQs disabled is considerd
      an error, resulting in lockdep splats while running VMs if lockdep
      is enabled.
      
      This patch disables IRQs instead of attempting to disable softirqs,
      avoiding the problem of calling local_bh_enable() with IRQs
      disabled in the __schedule() path.  This creates an additional
      interrupt blackout during vcpu run loop exit, but this is the rare
      case and the blackout latency is still less than that of
      __schedule().
      
      Fixes: e6b673b7 ("KVM: arm64: Optimise FPSIMD handling to reduce guest/host thrashing")
      Reported-by: default avatarAndre Przywara <andre.przywara@arm.com>
      Signed-off-by: default avatarDave Martin <Dave.Martin@arm.com>
      Signed-off-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
      b045e4d0
    • Mark Rutland's avatar
      arm64: Introduce sysreg_clear_set() · 6ebdf4db
      Mark Rutland authored
      Currently we have a couple of helpers to manipulate bits in particular
      sysregs:
      
       * config_sctlr_el1(u32 clear, u32 set)
      
       * change_cpacr(u64 val, u64 mask)
      
      The parameters of these differ in naming convention, order, and size,
      which is unfortunate. They also differ slightly in behaviour, as
      change_cpacr() skips the sysreg write if the bits are unchanged, which
      is a useful optimization when sysreg writes are expensive.
      
      Before we gain yet another sysreg manipulation function, let's
      unify these with a common helper, providing a consistent order for
      clear/set operands, and the write skipping behaviour from
      change_cpacr(). Code will be migrated to the new helper in subsequent
      patches.
      Signed-off-by: default avatarMark Rutland <mark.rutland@arm.com>
      Reviewed-by: default avatarDave Martin <dave.martin@arm.com>
      Acked-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      Signed-off-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
      6ebdf4db
    • Ard Biesheuvel's avatar
      KVM: arm/arm64: Drop resource size check for GICV window · ba56bc3a
      Ard Biesheuvel authored
      When booting a 64 KB pages kernel on a ACPI GICv3 system that
      implements support for v2 emulation, the following warning is
      produced
      
        GICV size 0x2000 not a multiple of page size 0x10000
      
      and support for v2 emulation is disabled, preventing GICv2 VMs
      from being able to run on such hosts.
      
      The reason is that vgic_v3_probe() performs a sanity check on the
      size of the window (it should be a multiple of the page size),
      while the ACPI MADT parsing code hardcodes the size of the window
      to 8 KB. This makes sense, considering that ACPI does not bother
      to describe the size in the first place, under the assumption that
      platforms implementing ACPI will follow the architecture and not
      put anything else in the same 64 KB window.
      
      So let's just drop the sanity check altogether, and assume that
      the window is at least 64 KB in size.
      
      Fixes: 90977732 ("KVM: arm/arm64: vgic-new: vgic_init: implement kvm_vgic_hyp_init")
      Signed-off-by: default avatarArd Biesheuvel <ard.biesheuvel@linaro.org>
      Signed-off-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
      ba56bc3a
    • Dave Airlie's avatar
  4. 20 Jun, 2018 11 commits