1. 23 6月, 2018 5 次提交
    • L
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 7ab366e4
      Linus Torvalds 提交于
      Pull arm64 fixes from Catalin Marinas:
      
       - clear buffers allocated with FORCE_CONTIGUOUS explicitly until the
         CMA code honours __GFP_ZERO
      
       - notrace annotation for secondary_start_kernel()
      
       - use early_param() instead of __setup() for "kpti=" as it is needed
         for the cpufeature callback remapping swapper to non-global mappings
      
       - ensure writes to swapper are ordered wrt subsequent cache maintenance
         in the kpti non-global remapping code
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64: mm: Ensure writes to swapper are ordered wrt subsequent cache maintenance
        arm64: kpti: Use early_param for kpti= command-line option
        arm64: make secondary_start_kernel() notrace
        arm64: dma-mapping: clear buffers allocated with FORCE_CONTIGUOUS flag
      7ab366e4
    • L
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 8b88ed3c
      Linus Torvalds 提交于
      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
    • L
      Merge tag 'for-linus-4.18-rc2-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip · 4ab59fcf
      Linus Torvalds 提交于
      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
    • W
      arm64: mm: Ensure writes to swapper are ordered wrt subsequent cache maintenance · 71c8fc0c
      Will Deacon 提交于
      When rewriting swapper using nG mappings, we must performance cache
      maintenance around each page table access in order to avoid coherency
      problems with the host's cacheable alias under KVM. To ensure correct
      ordering of the maintenance with respect to Device memory accesses made
      with the Stage-1 MMU disabled, DMBs need to be added between the
      maintenance and the corresponding memory access.
      
      This patch adds a missing DMB between writing a new page table entry and
      performing a clean+invalidate on the same line.
      
      Fixes: f992b4df ("arm64: kpti: Add ->enable callback to remap swapper using nG mappings")
      Cc: <stable@vger.kernel.org> # 4.16.x-
      Acked-by: NMark Rutland <mark.rutland@arm.com>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
      71c8fc0c
    • W
      arm64: kpti: Use early_param for kpti= command-line option · b5b7dd64
      Will Deacon 提交于
      We inspect __kpti_forced early on as part of the cpufeature enable
      callback which remaps the swapper page table using non-global entries.
      
      Ensure that __kpti_forced has been updated to reflect the kpti=
      command-line option before we start using it.
      
      Fixes: ea1e3de8 ("arm64: entry: Add fake CPU feature for unmapping the kernel at EL0")
      Cc: <stable@vger.kernel.org> # 4.16.x-
      Reported-by: NWei Xu <xuwei5@hisilicon.com>
      Tested-by: NSudeep Holla <sudeep.holla@arm.com>
      Tested-by: NWei Xu <xuwei5@hisilicon.com>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
      b5b7dd64
  2. 22 6月, 2018 16 次提交
    • V
      KVM: fix KVM_CAP_HYPERV_TLBFLUSH paragraph number · 2ddc6498
      Vitaly Kuznetsov 提交于
      KVM_CAP_HYPERV_TLBFLUSH collided with KVM_CAP_S390_PSW-BPB, its paragraph
      number should now be 8.18.
      Signed-off-by: NVitaly Kuznetsov <vkuznets@redhat.com>
      Signed-off-by: NRadim Krčmář <rkrcmar@redhat.com>
      2ddc6498
    • M
      kvm: vmx: Nested VM-entry prereqs for event inj. · 0447378a
      Marc Orr 提交于
      This patch extends the checks done prior to a nested VM entry.
      Specifically, it extends the check_vmentry_prereqs function with checks
      for fields relevant to the VM-entry event injection information, as
      described in the Intel SDM, volume 3.
      
      This patch is motivated by a syzkaller bug, where a bad VM-entry
      interruption information field is generated in the VMCS02, which causes
      the nested VM launch to fail. Then, KVM fails to resume L1.
      
      While KVM should be improved to correctly resume L1 execution after a
      failed nested launch, this change is justified because the existing code
      to resume L1 is flaky/ad-hoc and the test coverage for resuming L1 is
      sparse.
      Reported-by: Nsyzbot <syzkaller@googlegroups.com>
      Signed-off-by: NMarc Orr <marcorr@google.com>
      [Removed comment whose parts were describing previous revisions and the
       rest was obvious from function/variable naming. - Radim]
      Signed-off-by: NRadim Krčmář <rkrcmar@redhat.com>
      0447378a
    • R
      Merge tag 'kvmarm-fixes-for-4.18-1' of git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm · 5f9077cb
      Radim Krčmář 提交于
      KVM/arm fixes for 4.18, take #1
      
      - 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
      5f9077cb
    • L
      Merge tag 'for_v4.18-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs · 894b8c00
      Linus Torvalds 提交于
      Pull udf, quota, ext2 fixes from Jan Kara:
       "UDF:
         - fix an oops due to corrupted disk image
         - two small cleanups
      
        quota:
         - a fixfor lru handling
         - cleanup
      
        ext2:
         - a warning about a deprecated mount option"
      
      * tag 'for_v4.18-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
        udf: Drop unused arguments of udf_delete_aext()
        udf: Provide function for calculating dir entry length
        udf: Detect incorrect directory size
        ext2: add warning when specifying nocheck option
        quota: Cleanup list iteration in dqcache_shrink_scan()
        quota: reclaim least recently used dquots
      894b8c00
    • B
      xen: Remove unnecessary BUG_ON from __unbind_from_irq() · eef04c7b
      Boris Ostrovsky 提交于
      Commit 910f8bef ("xen/pirq: fix error path cleanup when binding
      MSIs") fixed a couple of errors in error cleanup path of
      xen_bind_pirq_msi_to_irq(). This cleanup allowed a call to
      __unbind_from_irq() with an unbound irq, which would result in
      triggering the BUG_ON there.
      
      Since there is really no reason for the BUG_ON (xen_free_irq() can
      operate on unbound irqs) we can remove it.
      Reported-by: NBen Hutchings <ben.hutchings@codethink.co.uk>
      Signed-off-by: NBoris Ostrovsky <boris.ostrovsky@oracle.com>
      Cc: stable@vger.kernel.org
      Reviewed-by: NJuergen Gross <jgross@suse.com>
      Signed-off-by: NJuergen Gross <jgross@suse.com>
      eef04c7b
    • J
      xen: add new hypercall buffer mapping device · c51b3c63
      Juergen Gross 提交于
      For passing arbitrary data from user land to the Xen hypervisor the
      Xen tools today are using mlock()ed buffers. Unfortunately the kernel
      might change access rights of such buffers for brief periods of time
      e.g. for page migration or compaction, leading to access faults in the
      hypervisor, as the hypervisor can't use the locks of the kernel.
      
      In order to solve this problem add a new device node to the Xen privcmd
      driver to easily allocate hypercall buffers via mmap(). The memory is
      allocated in the kernel and just mapped into user space. Marked as
      VM_IO the user mapping will not be subject to page migration et al.
      Signed-off-by: NJuergen Gross <jgross@suse.com>
      Reviewed-by: NBoris Ostrovsky <boris.ostrovsky@oracle.com>
      Signed-off-by: NJuergen Gross <jgross@suse.com>
      c51b3c63
    • L
      Merge tag 'drm-fixes-2018-06-22' of git://anongit.freedesktop.org/drm/drm · 1cfea546
      Linus Torvalds 提交于
      Pull drm fixes from Dave Airlie:
       "Just run of the mill fixes,
      
        core:
         - regression fix in device unplug
      
        qxl:
         - regression fix for might sleep in cursor handling
      
        nouveau:
         - regression fix in multi-screen cursor handling
      
        amdgpu:
         - switch off DC by default on Kaveri and older
         - some minor fixes
      
        i915:
         - some GEM regression fixes
         - doublescan mode fixes
      
        sun4i:
         - revert fix for a regression
      
        sii8620 bridge:
         - misc fixes"
      
      * tag 'drm-fixes-2018-06-22' of git://anongit.freedesktop.org/drm/drm: (28 commits)
        drm/bridge/sii8620: fix display of packed pixel modes in MHL2
        drm/amdgpu: Make amdgpu_vram_mgr_bo_invisible_size always accurate
        drm/amdgpu: Refactor amdgpu_vram_mgr_bo_invisible_size helper
        drm/amdgpu: Update pin_size values before unpinning BO
        drm/amdgpu:All UVD instances share one idle_work handle
        drm/amdgpu: Don't default to DC support for Kaveri and older
        drm/amdgpu: Use kvmalloc_array for allocating VRAM manager nodes array
        drm/amd/pp: Fix uninitialized variable
        drm/i915: Enable provoking vertex fix on Gen9 systems.
        drm/i915: Fix context ban and hang accounting for client
        drm/i915: Turn off g4x DP port in .post_disable()
        drm/i915: Disallow interlaced modes on g4x DP outputs
        drm/i915: Fix PIPESTAT irq ack on i965/g4x
        drm/i915: Allow DBLSCAN user modes with eDP/LVDS/DSI
        drm/i915/execlists: Avoid putting the error pointer
        drm/i915: Apply batch location restrictions before pinning
        drm/nouveau/kms/nv50-: cursors always use core channel vram ctxdma
        Revert "drm/sun4i: Handle DRM_BUS_FLAG_PIXDATA_*EDGE"
        drm/atmel-hlcdc: check stride values in the first plane
        drm/bridge/sii8620: fix HDMI cable connection to dongle
        ...
      1cfea546
    • D
      Merge tag 'drm-misc-fixes-2018-06-21' of git://anongit.freedesktop.org/drm/drm-misc into drm-fixes · f3294568
      Dave Airlie 提交于
      Fixes for v4.18-rc2:
      - A reversion of a commit in drm/sun4i to fix a run-time fault.
      - Various fixes to the sii8620 bridge.
      - Small bugfix to correctly check stride in atmel-hlcdc.
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/787d4bef-a579-4046-d0fc-f8c2c5b80c25@linux.intel.com
      f3294568
    • D
      Merge tag 'drm-intel-fixes-2018-06-21' of... · 8325e6e3
      Dave Airlie 提交于
      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: NDave Airlie <airlied@redhat.com>
      
      Link: https://patchwork.freedesktop.org/patch/msgid/87d0wkuypy.fsf@intel.com
      8325e6e3
    • L
      Merge tag 'nfs-for-4.18-2' of git://git.linux-nfs.org/projects/trondmy/linux-nfs · 27db64f6
      Linus Torvalds 提交于
      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
    • L
      Merge tag 'pinctrl-v4.18-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl · acdf3f93
      Linus Torvalds 提交于
      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
    • L
      Merge tag 'hwmon-for-linus-v4.18-rc2' of... · 303f311e
      Linus Torvalds 提交于
      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
    • L
      Merge tag 'acpi-4.18-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · f43fc5a0
      Linus Torvalds 提交于
      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
    • L
      Merge tag 'pm-4.18-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 26c92a38
      Linus Torvalds 提交于
      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
    • M
      KVM: arm64: Prevent KVM_COMPAT from being selected · 37b65db8
      Marc Zyngier 提交于
      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: NMark Rutland <mark.rutland@arm.com>
      Signed-off-by: NMarc Zyngier <marc.zyngier@arm.com>
      37b65db8
    • M
      KVM: Enforce error in ioctl for compat tasks when !KVM_COMPAT · 7ddfd3e0
      Marc Zyngier 提交于
      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: NMark Rutland <mark.rutland@arm.com>
      Acked-by: NChristian Borntraeger <borntraeger@de.ibm.com>
      Acked-by: NRadim Krčmář <rkrcmar@redhat.com>
      Signed-off-by: NMarc Zyngier <marc.zyngier@arm.com>
      7ddfd3e0
  3. 21 6月, 2018 19 次提交
    • R
      Merge branches 'acpi-soc' and 'acpi-processor' · e50f182c
      Rafael J. Wysocki 提交于
      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
    • R
      Merge branch 'pm-tools' · b51e0013
      Rafael J. Wysocki 提交于
      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
    • R
      Merge branches 'pm-core' and 'pm-opp' · 7553a72b
      Rafael J. Wysocki 提交于
      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
    • J
      KVM: arm/arm64: add WARN_ON if size is not PAGE_SIZE aligned in unmap_stage2_range · 47a91b72
      Jia He 提交于
      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: NSuzuki K Poulose <suzuki.poulose@arm.com>
      Signed-off-by: jia.he@hxt-semitech.com
      [maz: tidied up commit message]
      Signed-off-by: NMarc Zyngier <marc.zyngier@arm.com>
      47a91b72
    • M
      drm/bridge/sii8620: fix display of packed pixel modes in MHL2 · e8b92efa
      Maciej Purski 提交于
      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: NMaciej Purski <m.purski@samsung.com>
      Signed-off-by: NAndrzej Hajda <a.hajda@samsung.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/1516706239-9104-1-git-send-email-m.purski@samsung.com
      e8b92efa
    • D
      KVM: arm64: Avoid mistaken attempts to save SVE state for vcpus · 2955bcc8
      Dave Martin 提交于
      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: NDave Martin <Dave.Martin@arm.com>
      Signed-off-by: NMarc Zyngier <marc.zyngier@arm.com>
      2955bcc8
    • D
      KVM: arm64/sve: Fix SVE trap restoration for non-current tasks · b3eb56b6
      Dave Martin 提交于
      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: NDave Martin <Dave.Martin@arm.com>
      Signed-off-by: NMarc Zyngier <marc.zyngier@arm.com>
      b3eb56b6
    • D
      KVM: arm64: Don't mask softirq with IRQs disabled in vcpu_put() · b045e4d0
      Dave Martin 提交于
      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: NAndre Przywara <andre.przywara@arm.com>
      Signed-off-by: NDave Martin <Dave.Martin@arm.com>
      Signed-off-by: NMarc Zyngier <marc.zyngier@arm.com>
      b045e4d0
    • M
      arm64: Introduce sysreg_clear_set() · 6ebdf4db
      Mark Rutland 提交于
      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: NMark Rutland <mark.rutland@arm.com>
      Reviewed-by: NDave Martin <dave.martin@arm.com>
      Acked-by: NCatalin Marinas <catalin.marinas@arm.com>
      Signed-off-by: NMarc Zyngier <marc.zyngier@arm.com>
      6ebdf4db
    • A
      KVM: arm/arm64: Drop resource size check for GICV window · ba56bc3a
      Ard Biesheuvel 提交于
      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: NArd Biesheuvel <ard.biesheuvel@linaro.org>
      Signed-off-by: NMarc Zyngier <marc.zyngier@arm.com>
      ba56bc3a
    • D
    • R
      Merge branch 'turbostat' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux · 3af20c95
      Rafael J. Wysocki 提交于
      Pull turbostat utility changes for 4.18-rc2 from Len Brown.
      
      "This includes two regression fixes, plus a couple more random, but
       worthy, patches."
      
      * 'turbostat' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux:
        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
      3af20c95
    • R
      Documentation: intel_pstate: Fix typo · 7a0f9d1e
      Rafael J. Wysocki 提交于
      Fix a typo in the intel_pstate admin-guide documentation.
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      7a0f9d1e
    • L
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma · 1abd8a8f
      Linus Torvalds 提交于
      Pull rdma fixes from Jason Gunthorpe:
       "Here are eight fairly small fixes collected over the last two weeks.
      
        Regression and crashing bug fixes:
      
         - mlx4/5: Fixes for issues found from various checkers
      
         - A resource tracking and uverbs regression in the core code
      
         - qedr: NULL pointer regression found during testing
      
         - rxe: Various small bugs"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma:
        IB/rxe: Fix missing completion for mem_reg work requests
        RDMA/core: Save kernel caller name when creating CQ using ib_create_cq()
        IB/uverbs: Fix ordering of ucontext check in ib_uverbs_write
        IB/mlx4: Fix an error handling path in 'mlx4_ib_rereg_user_mr()'
        RDMA/qedr: Fix NULL pointer dereference when running over iWARP without RDMA-CM
        IB/mlx5: Fix return value check in flow_counters_set_data()
        IB/mlx5: Fix memory leak in mlx5_ib_create_flow
        IB/rxe: avoid double kfree skb
      1abd8a8f
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · d8894a08
      Linus Torvalds 提交于
      Pull networking fixes from David Miller:
      
       1) Fix crash on bpf_prog_load() errors, from Daniel Borkmann.
      
       2) Fix ATM VCC memory accounting, from David Woodhouse.
      
       3) fib6_info objects need RCU freeing, from Eric Dumazet.
      
       4) Fix SO_BINDTODEVICE handling for TCP sockets, from David Ahern.
      
       5) Fix clobbered error code in enic_open() failure path, from
          Govindarajulu Varadarajan.
      
       6) Propagate dev_get_valid_name() error returns properly, from Li
          RongQing.
      
       7) Fix suspend/resume in davinci_emac driver, from Bartosz Golaszewski.
      
       8) Various act_ife fixes (recursive locking, IDR leaks, etc.) from
          Davide Caratti.
      
       9) Fix buggy checksum handling in sungem driver, from Eric Dumazet.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (40 commits)
        ip: limit use of gso_size to udp
        stmmac: fix DMA channel hang in half-duplex mode
        net: stmmac: socfpga: add additional ocp reset line for Stratix10
        net: sungem: fix rx checksum support
        bpfilter: ignore binary files
        bpfilter: fix build error
        net/usb/drivers: Remove useless hrtimer_active check
        net/sched: act_ife: preserve the action control in case of error
        net/sched: act_ife: fix recursive lock and idr leak
        net: ethernet: fix suspend/resume in davinci_emac
        net: propagate dev_get_valid_name return code
        enic: do not overwrite error code
        net/tcp: Fix socket lookups with SO_BINDTODEVICE
        ptp: replace getnstimeofday64() with ktime_get_real_ts64()
        net/ipv6: respect rcu grace period before freeing fib6_info
        net: net_failover: fix typo in net_failover_slave_register()
        ipvlan: use ETH_MAX_MTU as max mtu
        net: hamradio: use eth_broadcast_addr
        enic: initialize enic->rfs_h.lock in enic_probe
        MAINTAINERS: Add Sam as the maintainer for NCSI
        ...
      d8894a08
    • L
      tools/power turbostat: version 18.06.20 · 73780cd8
      Len Brown 提交于
      Signed-off-by: NLen Brown <len.brown@intel.com>
      73780cd8
    • N
      tools/power turbostat: add the missing command line switches · 9ce80578
      Nathan Ciobanu 提交于
      Document the missing command line tokens in the help() function.
      Signed-off-by: NNathan Ciobanu <nathan.d.ciobanu@linux.intel.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      9ce80578
    • N
      tools/power turbostat: add single character tokens to help · cc481650
      Nathan Ciobanu 提交于
      Improve the help() output by adding the single character
      tokens (e.g -a).
      Signed-off-by: NNathan Ciobanu <nathan.d.ciobanu@linux.intel.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      cc481650
    • N
      tools/power turbostat: alphabetize the help output · 2ee19bde
      Nathan Ciobanu 提交于
      Sort the command line arguments output of help() in
      alphabetical order in line with other linux tools.
      Signed-off-by: NNathan Ciobanu <nathan.d.ciobanu@linux.intel.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      2ee19bde