1. 15 9月, 2020 1 次提交
  2. 14 9月, 2020 8 次提交
    • D
      Merge v5.9-rc5 into drm-next · 818280d5
      Daniel Vetter 提交于
      Paul needs 1a21e5b9 ("drm/ingenic: Fix leak of device_node
      pointer") and 3b5b005e ("drm/ingenic: Fix driver not probing when
      IPU port is missing") from -fixes to be able to merge further ingenic
      patches into -next.
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      818280d5
    • J
      drm: fix double free for gbo in drm_gem_vram_init and drm_gem_vram_create · da62cb72
      Jia Yang 提交于
      I got a use-after-free report when doing some fuzz test:
      
      If ttm_bo_init() fails, the "gbo" and "gbo->bo.base" will be
      freed by ttm_buffer_object_destroy() in ttm_bo_init(). But
      then drm_gem_vram_create() and drm_gem_vram_init() will free
      "gbo" and "gbo->bo.base" again.
      
      BUG: KMSAN: use-after-free in drm_vma_offset_remove+0xb3/0x150
      CPU: 0 PID: 24282 Comm: syz-executor.1 Tainted: G    B   W         5.7.0-rc4-msan #2
      Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Ubuntu-1.8.2-1ubuntu1 04/01/2014
      Call Trace:
       __dump_stack
       dump_stack+0x1c9/0x220
       kmsan_report+0xf7/0x1e0
       __msan_warning+0x58/0xa0
       drm_vma_offset_remove+0xb3/0x150
       drm_gem_free_mmap_offset
       drm_gem_object_release+0x159/0x180
       drm_gem_vram_init
       drm_gem_vram_create+0x7c5/0x990
       drm_gem_vram_fill_create_dumb
       drm_gem_vram_driver_dumb_create+0x238/0x590
       drm_mode_create_dumb
       drm_mode_create_dumb_ioctl+0x41d/0x450
       drm_ioctl_kernel+0x5a4/0x710
       drm_ioctl+0xc6f/0x1240
       vfs_ioctl
       ksys_ioctl
       __do_sys_ioctl
       __se_sys_ioctl+0x2e9/0x410
       __x64_sys_ioctl+0x4a/0x70
       do_syscall_64+0xb8/0x160
       entry_SYSCALL_64_after_hwframe+0x44/0xa9
      RIP: 0033:0x4689b9
      Code: fd e0 fa ff c3 66 2e 0f 1f 84 00 00 00 00 00 66 90 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 0f 83 cb e0 fa ff c3 66 2e 0f 1f 84 00 00 00 00
      RSP: 002b:00007f368fa4dc98 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
      RAX: ffffffffffffffda RBX: 000000000076bf00 RCX: 00000000004689b9
      RDX: 0000000020000240 RSI: 00000000c02064b2 RDI: 0000000000000003
      RBP: 0000000000000004 R08: 0000000000000000 R09: 0000000000000000
      R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
      R13: 00000000004d17e0 R14: 00007f368fa4e6d4 R15: 000000000076bf0c
      
      Uninit was created at:
       kmsan_save_stack_with_flags
       kmsan_internal_poison_shadow+0x66/0xd0
       kmsan_slab_free+0x6e/0xb0
       slab_free_freelist_hook
       slab_free
       kfree+0x571/0x30a0
       drm_gem_vram_destroy
       ttm_buffer_object_destroy+0xc8/0x130
       ttm_bo_release
       kref_put
       ttm_bo_put+0x117d/0x23e0
       ttm_bo_init_reserved+0x11c0/0x11d0
       ttm_bo_init+0x289/0x3f0
       drm_gem_vram_init
       drm_gem_vram_create+0x775/0x990
       drm_gem_vram_fill_create_dumb
       drm_gem_vram_driver_dumb_create+0x238/0x590
       drm_mode_create_dumb
       drm_mode_create_dumb_ioctl+0x41d/0x450
       drm_ioctl_kernel+0x5a4/0x710
       drm_ioctl+0xc6f/0x1240
       vfs_ioctl
       ksys_ioctl
       __do_sys_ioctl
       __se_sys_ioctl+0x2e9/0x410
       __x64_sys_ioctl+0x4a/0x70
       do_syscall_64+0xb8/0x160
       entry_SYSCALL_64_after_hwframe+0x44/0xa9
      
      If ttm_bo_init() fails, the "gbo" will be freed by
      ttm_buffer_object_destroy() in ttm_bo_init(). But then
      drm_gem_vram_create() and drm_gem_vram_init() will free
      "gbo" again.
      Reported-by: NHulk Robot <hulkci@huawei.com>
      Reported-by: Nbutt3rflyh4ck <butterflyhuangxx@gmail.com>
      Signed-off-by: NJia Yang <jiayang5@huawei.com>
      Signed-off-by: NThomas Zimmermann <tzimmermann@suse.de>
      Reviewed-by: NThomas Zimmermann <tzimmermann@suse.de>
      Link: https://patchwork.freedesktop.org/patch/msgid/20200714083238.28479-2-tzimmermann@suse.de
      da62cb72
    • T
      drm/vboxvideo: Use drm_gem_vram_vmap() interfaces · d88656f4
      Thomas Zimmermann 提交于
      VRAM helpers support ref counting for pin and vmap operations, no need
      to avoid these operations by employing the internal kmap interface. Just
      use drm_gem_vram_vmap() and let it handle the details.
      
      Also unexport the kmap interfaces from VRAM helpers. Vboxvideo was the
      last user of these internal functions.
      
      v2:
      	* fixed a comma in commit description
      Signed-off-by: NThomas Zimmermann <tzimmermann@suse.de>
      Reviewed-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Tested-by: NHans de Goede <hdegoede@redhat.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20200911075922.19317-1-tzimmermann@suse.de
      d88656f4
    • L
      Linux 5.9-rc5 · 856deb86
      Linus Torvalds 提交于
      856deb86
    • L
      Merge tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · 5712c3ed
      Linus Torvalds 提交于
      Pull ARM SoC fixes from Olof Johansson:
       "A collection of fixes I've been accruing over the last few weeks, none
        of them have been severe enough to warrant flushing the queue but it's
        been long enough now that it's a good idea to send them in.
      
        A handful of them are fixups for QSPI DT/bindings/compatibles, some
        smaller fixes for system DMA clock control and TMU interrupts on i.MX,
        a handful of fixes for OMAP, including a fix for DSI (display) on
        omap5"
      
      * tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (27 commits)
        arm64: dts: ns2: Fixed QSPI compatible string
        ARM: dts: BCM5301X: Fixed QSPI compatible string
        ARM: dts: NSP: Fixed QSPI compatible string
        ARM: dts: bcm: HR2: Fixed QSPI compatible string
        dt-bindings: spi: Fix spi-bcm-qspi compatible ordering
        ARM: dts: imx6sx: fix the pad QSPI1B_SCLK mux mode for uart3
        arm64: dts: imx8mp: correct sdma1 clk setting
        arm64: dts: imx8mq: Fix TMU interrupt property
        ARM: dts: imx7d-zii-rmu2: fix rgmii phy-mode for ksz9031 phy
        ARM: dts: vfxxx: Add syscon compatible with OCOTP
        ARM: dts: imx6q-logicpd: Fix broken PWM
        arm64: dts: imx: Add missing imx8mm-beacon-kit.dtb to build
        ARM: dts: imx6q-prtwd2: Remove unneeded i2c unit name
        ARM: dts: imx6qdl-gw51xx: Remove unneeded #address-cells/#size-cells
        ARM: dts: imx7ulp: Correct gpio ranges
        ARM: dts: ls1021a: fix QuadSPI-memory reg range
        arm64: defconfig: Enable ptn5150 extcon driver
        arm64: defconfig: Enable USB gadget with configfs
        ARM: configs: Update Integrator defconfig
        ARM: dts: omap5: Fix DSI base address and clocks
        ...
      5712c3ed
    • L
      Merge tag 'usb-5.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · e4c26faa
      Linus Torvalds 提交于
      Pull USB/Thunderbolt fixes from Greg KH:
       "Here are some small USB and Thunderbolt driver fixes for 5.9-rc5.
      
        Nothing huge, just a number of bugfixes and new device ids for
        problems reported:
      
         - new USB serial driver ids
      
         - bug fixes for syzbot reported problems
      
         - typec driver fixes
      
         - thunderbolt driver fixes
      
         - revert of reported broken commit
      
        All of these have been in linux-next with no reported issues"
      
      * tag 'usb-5.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
        usb: typec: intel_pmc_mux: Do not configure SBU and HSL Orientation in Alternate modes
        usb: typec: intel_pmc_mux: Do not configure Altmode HPD High
        usb: core: fix slab-out-of-bounds Read in read_descriptors
        Revert "usb: dwc3: meson-g12a: fix shared reset control use"
        usb: typec: ucsi: acpi: Check the _DEP dependencies
        usb: typec: intel_pmc_mux: Un-register the USB role switch
        usb: Fix out of sync data toggle if a configured device is reconfigured
        USB: serial: option: support dynamic Quectel USB compositions
        USB: serial: option: add support for SIM7070/SIM7080/SIM7090 modules
        thunderbolt: Use maximum USB3 link rate when reclaiming if link is not up
        thunderbolt: Disable ports that are not implemented
        USB: serial: ftdi_sio: add IDs for Xsens Mti USB converter
      e4c26faa
    • L
      Merge tag 'staging-5.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging · 6c7247f6
      Linus Torvalds 提交于
      Pull staging/IIO driver fixes from Greg KH:
       "Here are a number of staging and IIO driver fixes for 5.9-rc5.
      
        The majority of these are IIO driver fixes, to resolve a timestamp
        issue that was recently found to affect a bunch of IIO drivers.
      
        The other fixes in here are:
      
         - small IIO driver fixes
      
         - greybus driver fix
      
         - counter driver fix (came in through the IIO fixes tree)
      
        All of these have been in linux-next for a while with no reported
        issues"
      
      * tag 'staging-5.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (23 commits)
        iio: adc: mcp3422: fix locking on error path
        iio: adc: mcp3422: fix locking scope
        iio: adc: meson-saradc: Use the parent device to look up the calib data
        iio:adc:max1118 Fix alignment of timestamp and data leak issues
        iio:adc:ina2xx Fix timestamp alignment issue.
        iio:adc:ti-adc084s021 Fix alignment and data leak issues.
        iio:adc:ti-adc081c Fix alignment and data leak issues
        iio:magnetometer:ak8975 Fix alignment and data leak issues.
        iio:light:ltr501 Fix timestamp alignment issue.
        iio:light:max44000 Fix timestamp alignment and prevent data leak.
        iio:chemical:ccs811: Fix timestamp alignment and prevent data leak.
        iio:proximity:mb1232: Fix timestamp alignment and prevent data leak.
        iio:accel:mma7455: Fix timestamp alignment and prevent data leak.
        iio:accel:bmc150-accel: Fix timestamp alignment and prevent data leak.
        iio:accel:mma8452: Fix timestamp alignment and prevent data leak.
        iio: accel: kxsd9: Fix alignment of local buffer.
        iio: adc: rockchip_saradc: select IIO_TRIGGERED_BUFFER
        iio: adc: ti-ads1015: fix conversion when CONFIG_PM is not set
        counter: microchip-tcb-capture: check the correct variable
        iio: cros_ec: Set Gyroscope default frequency to 25Hz
        ...
      6c7247f6
    • L
      Merge tag 'driver-core-5.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core · 20a7b6be
      Linus Torvalds 提交于
      Pull driver core fixes from Greg KH:
       "Here are some small driver core and debugfs fixes for 5.9-rc5
      
        Included in here are:
      
         - firmware loader memory leak fix
      
         - firmware loader testing fixes for non-EFI systems
      
         - device link locking fixes found by lockdep
      
         - kobject_del() bugfix that has been affecting some callers
      
         - debugfs minor fix
      
        All of these have been in linux-next for a while with no reported
        issues"
      
      * tag 'driver-core-5.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
        test_firmware: Test platform fw loading on non-EFI systems
        PM: <linux/device.h>: fix @em_pd kernel-doc warning
        kobject: Drop unneeded conditional in __kobject_del()
        driver core: Fix device_pm_lock() locking for device links
        MAINTAINERS: Add the security document to SECURITY CONTACT
        driver code: print symbolic error code
        debugfs: Fix module state check condition
        kobject: Restore old behaviour of kobject_del(NULL)
        firmware_loader: fix memory leak for paged buffer
      20a7b6be
  3. 13 9月, 2020 14 次提交
    • O
      Merge tag 'arm-soc/for-5.9/devicetree-fixes' of https://github.com/Broadcom/stblinux into arm/fixes · a4da411e
      Olof Johansson 提交于
      This pull request contains Broadcom ARM-based SoCs Device Tree fixes for
      5.9, please pull the following:
      
      - Florian fixes the Broadcom QSPI controller binding such that the most
        specific compatible string is the left most one, and all existing
        in-tree users are updated as well.
      
      * tag 'arm-soc/for-5.9/devicetree-fixes' of https://github.com/Broadcom/stblinux:
        arm64: dts: ns2: Fixed QSPI compatible string
        ARM: dts: BCM5301X: Fixed QSPI compatible string
        ARM: dts: NSP: Fixed QSPI compatible string
        ARM: dts: bcm: HR2: Fixed QSPI compatible string
        dt-bindings: spi: Fix spi-bcm-qspi compatible ordering
      
      Link: https://lore.kernel.org/r/20200909211857.4144718-1-f.fainelli@gmail.comSigned-off-by: NOlof Johansson <olof@lixom.net>
      a4da411e
    • O
      Merge tag 'imx-fixes-5.9-2' of... · 2aedcb04
      Olof Johansson 提交于
      Merge tag 'imx-fixes-5.9-2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into arm/fixes
      
      i.MX fixes for 5.9, round 2:
      
      - Fix the misspelling of 'interrupts' property in i.MX8MQ TMU DT node.
      - Correct 'ahb' clock for i.MX8MP SDMA1 in device tree.
      - Fix pad QSPI1B_SCLK mux mode for UART3 on i.MX6SX.
      
      * tag 'imx-fixes-5.9-2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux:
        ARM: dts: imx6sx: fix the pad QSPI1B_SCLK mux mode for uart3
        arm64: dts: imx8mp: correct sdma1 clk setting
        arm64: dts: imx8mq: Fix TMU interrupt property
      
      Link: https://lore.kernel.org/r/20200909143844.GA25109@dragonSigned-off-by: NOlof Johansson <olof@lixom.net>
      2aedcb04
    • O
      Merge tag 'omap-for-v5.9/fixes-rc3' of... · 0e384029
      Olof Johansson 提交于
      Merge tag 'omap-for-v5.9/fixes-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into arm/fixes
      
      Fixes for omaps for v5.9-rc cycle
      
      Few fixes for omap based devices:
      
      - Fix of_clk_get() error handling for omap-iommu
      
      - Fix missing audio pinctrl entries for logicpd boards
      
      - Fix video for logicpd-som-lv after switch to generic panels
      
      - Fix omap5 DSI clocks base
      
      * tag 'omap-for-v5.9/fixes-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
        ARM: dts: omap5: Fix DSI base address and clocks
        ARM: dts: logicpd-som-lv-baseboard: Fix missing video
        ARM: dts: logicpd-som-lv-baseboard: Fix broken audio
        ARM: dts: logicpd-torpedo-baseboard: Fix broken audio
        ARM: OMAP2+: Fix an IS_ERR() vs NULL check in _get_pwrdm()
      
      Link: https://lore.kernel.org/r/pull-1599132064-54898@atomide.comSigned-off-by: NOlof Johansson <olof@lixom.net>
      0e384029
    • L
      Merge tag 'char-misc-5.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc · 2a1a4bee
      Linus Torvalds 提交于
      Pull char / misc driver fixes from Greg KH:
       "Here are a number of small driver fixes for 5.9-rc5
      
        Included in here are:
      
         - habanalabs driver fixes
      
         - interconnect driver fixes
      
         - soundwire driver fixes
      
         - dyndbg fixes for reported issues, and then reverts to fix it all up
           to a sane state.
      
         - phy driver fixes
      
        All of these have been in linux-next for a while with no reported
        issues"
      
      * tag 'char-misc-5.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
        Revert "dyndbg: accept query terms like file=bar and module=foo"
        Revert "dyndbg: fix problem parsing format="foo bar""
        scripts/tags.sh: exclude tools directory from tags generation
        video: fbdev: fix OOB read in vga_8planes_imageblit()
        dyndbg: fix problem parsing format="foo bar"
        dyndbg: refine export, rename to dynamic_debug_exec_queries()
        dyndbg: give %3u width in pr-format, cosmetic only
        interconnect: qcom: Fix small BW votes being truncated to zero
        soundwire: fix double free of dangling pointer
        interconnect: Show bandwidth for disabled paths as zero in debugfs
        habanalabs: fix report of RAZWI initiator coordinates
        habanalabs: prevent user buff overflow
        phy: omap-usb2-phy: disable PHY charger detect
        phy: qcom-qmp: Use correct values for ipq8074 PCIe Gen2 PHY init
        soundwire: bus: fix typo in comment on INTSTAT registers
        phy: qualcomm: fix return value check in qcom_ipq806x_usb_phy_probe()
        phy: qualcomm: fix platform_no_drv_owner.cocci warnings
      2a1a4bee
    • L
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 84b13499
      Linus Torvalds 提交于
      Pull kvm fixes from Paolo Bonzini:
       "A bit on the bigger side, mostly due to me being on vacation, then
        busy, then on parental leave, but there's nothing worrisome.
      
        ARM:
         - Multiple stolen time fixes, with a new capability to match x86
         - Fix for hugetlbfs mappings when PUD and PMD are the same level
         - Fix for hugetlbfs mappings when PTE mappings are enforced (dirty
           logging, for example)
         - Fix tracing output of 64bit values
      
        x86:
         - nSVM state restore fixes
         - Async page fault fixes
         - Lots of small fixes everywhere"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (25 commits)
        KVM: emulator: more strict rsm checks.
        KVM: nSVM: more strict SMM checks when returning to nested guest
        SVM: nSVM: setup nested msr permission bitmap on nested state load
        SVM: nSVM: correctly restore GIF on vmexit from nesting after migration
        x86/kvm: don't forget to ACK async PF IRQ
        x86/kvm: properly use DEFINE_IDTENTRY_SYSVEC() macro
        KVM: VMX: Don't freeze guest when event delivery causes an APIC-access exit
        KVM: SVM: avoid emulation with stale next_rip
        KVM: x86: always allow writing '0' to MSR_KVM_ASYNC_PF_EN
        KVM: SVM: Periodically schedule when unregistering regions on destroy
        KVM: MIPS: Change the definition of kvm type
        kvm x86/mmu: use KVM_REQ_MMU_SYNC to sync when needed
        KVM: nVMX: Fix the update value of nested load IA32_PERF_GLOBAL_CTRL control
        KVM: fix memory leak in kvm_io_bus_unregister_dev()
        KVM: Check the allocation of pv cpu mask
        KVM: nVMX: Update VMCS02 when L2 PAE PDPTE updates detected
        KVM: arm64: Update page shift if stage 2 block mapping not supported
        KVM: arm64: Fix address truncation in traces
        KVM: arm64: Do not try to map PUDs when they are folded into PMD
        arm64/x86: KVM: Introduce steal-time cap
        ...
      84b13499
    • L
      Merge tag 'for-linus' of git://github.com/openrisc/linux · b952e974
      Linus Torvalds 提交于
      Pull OpenRISC fixes from Stafford Horne:
       "Fixes for compile issues pointed out by kbuild and one bug I found in
        initrd with the 5.9 patches"
      
      * tag 'for-linus' of git://github.com/openrisc/linux:
        openrisc: Fix issue with get_user for 64-bit values
        openrisc: Fix cache API compile issue when not inlining
        openrisc: Reserve memblock for initrd
      b952e974
    • L
      Merge tag 'seccomp-v5.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · ef2e9a56
      Linus Torvalds 提交于
      Pull seccomp fixes from Kees Cook:
       "This fixes a rare race condition in seccomp when using TSYNC and
        USER_NOTIF together where a memory allocation would not get freed
        (found by syzkaller, fixed by Tycho).
      
        Additionally updates Tycho's MAINTAINERS and .mailmap entries for his
        new address"
      
      * tag 'seccomp-v5.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        seccomp: don't leave dangling ->notif if file allocation fails
        mailmap, MAINTAINERS: move to tycho.pizza
        seccomp: don't leak memory when filter install races
      ef2e9a56
    • L
      Merge tag 'libnvdimm-fix-v5.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm · 4f8b0a5b
      Linus Torvalds 提交于
      Pull libnvdimm fix from Vishal Verma:
       "Fix detection of dax support for block devices.
      
        Previous fixes in this area, which only affected printing of debug
        messages, had an incorrect condition for detection of dax. This fix
        should finally do the right thing"
      
      * tag 'libnvdimm-fix-v5.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm:
        dax: fix detection of dax support for non-persistent memory block devices
      4f8b0a5b
    • L
      Merge tag 'for-5.9-rc4-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux · edf6b0e1
      Linus Torvalds 提交于
      Pull btrfs fixes from David Sterba:
       "A few more fixes:
      
         - regression fix for a crash after failed snapshot creation
      
         - one more lockep fix: use nofs allocation when allocating missing
           device
      
         - fix reloc tree leak on degraded mount
      
         - make some extent buffer alignment checks less strict to mount
           filesystems created by btrfs-convert"
      
      * tag 'for-5.9-rc4-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux:
        btrfs: fix NULL pointer dereference after failure to create snapshot
        btrfs: free data reloc tree on failed mount
        btrfs: require only sector size alignment for parent eb bytenr
        btrfs: fix lockdep splat in add_missing_dev
      edf6b0e1
    • L
      Merge tag '5.9-rc4-smb3-fix' of git://git.samba.org/sfrench/cifs-2.6 · 5a3c558a
      Linus Torvalds 提交于
      Pull cifs fix from Steve French:
       "A fix for lookup on DFS link when cifsacl or modefromsid is used"
      
      * tag '5.9-rc4-smb3-fix' of git://git.samba.org/sfrench/cifs-2.6:
        cifs: fix DFS mount with cifsacl/modefromsid
      5a3c558a
    • M
      KVM: emulator: more strict rsm checks. · 37f66bbe
      Maxim Levitsky 提交于
      Don't ignore return values in rsm_load_state_64/32 to avoid
      loading invalid state from SMM state area if it was tampered with
      by the guest.
      
      This is primarly intended to avoid letting guest set bits in EFER
      (like EFER.SVME when nesting is disabled) by manipulating SMM save area.
      Signed-off-by: NMaxim Levitsky <mlevitsk@redhat.com>
      Message-Id: <20200827171145.374620-8-mlevitsk@redhat.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      37f66bbe
    • M
      KVM: nSVM: more strict SMM checks when returning to nested guest · 3ebb5d26
      Maxim Levitsky 提交于
      * check that guest is 64 bit guest, otherwise the SVM related fields
        in the smm state area are not defined
      
      * If the SMM area indicates that SMM interrupted a running guest,
        check that EFER.SVME which is also saved in this area is set, otherwise
        the guest might have tampered with SMM save area, and so indicate
        emulation failure which should triple fault the guest.
      
      * Check that that guest CPUID supports SVM (due to the same issue as above)
      Signed-off-by: NMaxim Levitsky <mlevitsk@redhat.com>
      Message-Id: <20200827162720.278690-4-mlevitsk@redhat.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      3ebb5d26
    • M
      SVM: nSVM: setup nested msr permission bitmap on nested state load · 772b81bb
      Maxim Levitsky 提交于
      This code was missing and was forcing the L2 run with L1's msr
      permission bitmap
      Signed-off-by: NMaxim Levitsky <mlevitsk@redhat.com>
      Message-Id: <20200827162720.278690-3-mlevitsk@redhat.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      772b81bb
    • M
      SVM: nSVM: correctly restore GIF on vmexit from nesting after migration · 9883764a
      Maxim Levitsky 提交于
      Currently code in svm_set_nested_state copies the current vmcb control
      area to L1 control area (hsave->control), under assumption that
      it mostly reflects the defaults that kvm choose, and later qemu
      overrides  these defaults with L2 state using standard KVM interfaces,
      like KVM_SET_REGS.
      
      However nested GIF (which is AMD specific thing) is by default is true,
      and it is copied to hsave area as such.
      
      This alone is not a big deal since on VMexit, GIF is always set to false,
      regardless of what it was on VM entry.  However in nested_svm_vmexit we
      were first were setting GIF to false, but then we overwrite the control
      fields with value from the hsave area.  (including the nested GIF field
      itself if GIF virtualization is enabled).
      
      Now on normal vm entry this is not a problem, since GIF is usually false
      prior to normal vm entry, and this is the value that copied to hsave,
      and then restored, but this is not always the case when the nested state
      is loaded as explained above.
      
      To fix this issue, move svm_set_gif after we restore the L1 control
      state in nested_svm_vmexit, so that even with wrong GIF in the
      saved L1 control area, we still clear GIF as the spec says.
      Signed-off-by: NMaxim Levitsky <mlevitsk@redhat.com>
      Message-Id: <20200827162720.278690-2-mlevitsk@redhat.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      9883764a
  4. 12 9月, 2020 17 次提交
    • S
      openrisc: Fix issue with get_user for 64-bit values · d877322b
      Stafford Horne 提交于
      A build failure was raised by kbuild with the following error.
      
          drivers/android/binder.c: Assembler messages:
          drivers/android/binder.c:3861: Error: unrecognized keyword/register name `l.lwz ?ap,4(r24)'
          drivers/android/binder.c:3866: Error: unrecognized keyword/register name `l.addi ?ap,r0,0'
      
      The issue is with 64-bit get_user() calls on openrisc.  I traced this to
      a problem where in the internally in the get_user macros there is a cast
      to long __gu_val this causes GCC to think the get_user call is 32-bit.
      This binder code is really long and GCC allocates register r30, which
      triggers the issue. The 64-bit get_user asm tries to get the 64-bit pair
      register, which for r30 overflows the general register names and returns
      the dummy register ?ap.
      
      The fix here is to move the temporary variables into the asm macros.  We
      use a 32-bit __gu_tmp for 32-bit and smaller macro and a 64-bit tmp in
      the 64-bit macro.  The cast in the 64-bit macro has a trick of casting
      through __typeof__((x)-(x)) which avoids the below warning.  This was
      barrowed from riscv.
      
          arch/openrisc/include/asm/uaccess.h:240:8: warning: cast to pointer from integer of different size
      
      I tested this in a small unit test to check reading between 64-bit and
      32-bit pointers to 64-bit and 32-bit values in all combinations.  Also I
      ran make C=1 to confirm no new sparse warnings came up.  It all looks
      clean to me.
      
      Link: https://lore.kernel.org/lkml/202008200453.ohnhqkjQ%25lkp@intel.com/Signed-off-by: NStafford Horne <shorne@gmail.com>
      Reviewed-by: NLuc Van Oostenryck <luc.vanoostenryck@gmail.com>
      d877322b
    • V
      x86/kvm: don't forget to ACK async PF IRQ · cc17b225
      Vitaly Kuznetsov 提交于
      Merge commit 26d05b36 ("Merge branch 'kvm-async-pf-int' into HEAD")
      tried to adapt the new interrupt based async PF mechanism to the newly
      introduced IDTENTRY magic but unfortunately it missed the fact that
      DEFINE_IDTENTRY_SYSVEC() doesn't call ack_APIC_irq() on its own and
      all DEFINE_IDTENTRY_SYSVEC() users have to call it manually.
      
      As the result all multi-CPU KVM guest hang on boot when
      KVM_FEATURE_ASYNC_PF_INT is present. The breakage went unnoticed because no
      KVM userspace (e.g. QEMU) currently set it (and thus async PF mechanism
      is currently disabled) but we're about to change that.
      
      Fixes: 26d05b36 ("Merge branch 'kvm-async-pf-int' into HEAD")
      Signed-off-by: NVitaly Kuznetsov <vkuznets@redhat.com>
      Message-Id: <20200908135350.355053-3-vkuznets@redhat.com>
      Tested-by: NIngo Molnar <mingo@kernel.org>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      cc17b225
    • V
      x86/kvm: properly use DEFINE_IDTENTRY_SYSVEC() macro · 244081f9
      Vitaly Kuznetsov 提交于
      DEFINE_IDTENTRY_SYSVEC() already contains irqentry_enter()/
      irqentry_exit().
      Signed-off-by: NVitaly Kuznetsov <vkuznets@redhat.com>
      Message-Id: <20200908135350.355053-2-vkuznets@redhat.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      244081f9
    • W
      KVM: VMX: Don't freeze guest when event delivery causes an APIC-access exit · 99b82a14
      Wanpeng Li 提交于
      According to SDM 27.2.4, Event delivery causes an APIC-access VM exit.
      Don't report internal error and freeze guest when event delivery causes
      an APIC-access exit, it is handleable and the event will be re-injected
      during the next vmentry.
      Signed-off-by: NWanpeng Li <wanpengli@tencent.com>
      Message-Id: <1597827327-25055-2-git-send-email-wanpengli@tencent.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      99b82a14
    • W
      KVM: SVM: avoid emulation with stale next_rip · e42c6828
      Wanpeng Li 提交于
      svm->next_rip is reset in svm_vcpu_run() only after calling
      svm_exit_handlers_fastpath(), which will cause SVM's
      skip_emulated_instruction() to write a stale RIP.
      
      We can move svm_exit_handlers_fastpath towards the end of
      svm_vcpu_run().  To align VMX with SVM, keep svm_complete_interrupts()
      close as well.
      Suggested-by: NSean Christopherson <sean.j.christopherson@intel.com>
      Cc: Paul K. <kronenpj@kronenpj.dyndns.org>
      Reviewed-by: NVitaly Kuznetsov <vkuznets@redhat.com>
      Signed-off-by: NWanpeng Li <wanpengli@tencent.com>
      [Also move vmcb_mark_all_clean before any possible write to the VMCB.
       - Paolo]
      e42c6828
    • J
      drm: xlnx: remove defined but not used 'scaling_factors_666' · 5684daa7
      Jason Yan 提交于
      This addresses the following gcc warning with "make W=1":
      
      drivers/gpu/drm/xlnx/zynqmp_disp.c:245:18: warning:
      ‘scaling_factors_666’ defined but not used [-Wunused-const-variable=]
        245 | static const u32 scaling_factors_666[] = {
            |                  ^~~~~~~~~~~~~~~~~~~
      Reported-by: NHulk Robot <hulkci@huawei.com>
      Signed-off-by: NJason Yan <yanaijie@huawei.com>
      Signed-off-by: NHyun Kwon <hyun.kwon@xilinx.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20200910140630.1191782-1-yanaijie@huawei.com
      5684daa7
    • L
      Merge tag 'ceph-for-5.9-rc5' of git://github.com/ceph/ceph-client · 729e3d09
      Linus Torvalds 提交于
      Pull ceph fix from Ilya Dryomov:
       "Add missing capability checks in rbd, marked for stable"
      
      * tag 'ceph-for-5.9-rc5' of git://github.com/ceph/ceph-client:
        rbd: require global CAP_SYS_ADMIN for mapping and unmapping
      729e3d09
    • L
      Merge branch 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · e9287bd2
      Linus Torvalds 提交于
      Pull i2c updates from Wolfram Sang:
       "Usual driver bugfixes for the I2C subsystem"
      
      * 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
        i2c: algo: pca: Reapply i2c bus settings after reset
        i2c: npcm7xx: Fix timeout calculation
        misc: eeprom: at24: register nvmem only after eeprom is ready to use
      e9287bd2
    • L
      Merge tag 'pm-5.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 566e24ee
      Linus Torvalds 提交于
      Pull power management fixes from Rafael Wysocki:
       "These fix three pieces of documentation and add new CPU IDs to the
        Intel RAPL power capping driver.
      
        Specifics:
      
         - Add CPU IDs of the TigerLake Desktop, RocketLake and AlderLake
           chips to the Intel RAPL power capping driver (Zhang Rui).
      
         - Add the missing energy model performance domain item to the struct
           device kerneldoc comment (Randy Dunlap).
      
         - Fix the struct powercap_control_type kerneldoc comment to match the
           actual definition of that structure and add missing item to the
           struct powercap_zone_ops kerneldoc comment (Amit Kucheria)"
      
      * tag 'pm-5.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        powercap: make documentation reflect code
        PM: <linux/device.h>: fix @em_pd kernel-doc warning
        powercap/intel_rapl: add support for AlderLake
        powercap/intel_rapl: add support for RocketLake
        powercap/intel_rapl: add support for TigerLake Desktop
      566e24ee
    • L
      Merge tag 'block-5.9-2020-09-11' of git://git.kernel.dk/linux-block · 7b8731d9
      Linus Torvalds 提交于
      Pull block fixes from Jens Axboe:
      
       - Fix a regression in bdev partition locking (Christoph)
      
       - NVMe pull request from Christoph:
            - cancel async events before freeing them (David Milburn)
            - revert a broken race fix (James Smart)
            - fix command processing during resets (Sagi Grimberg)
      
       - Fix a kyber crash with requeued flushes (Omar)
      
       - Fix __bio_try_merge_page() same_page error for no merging (Ritesh)
      
      * tag 'block-5.9-2020-09-11' of git://git.kernel.dk/linux-block:
        block: Set same_page to false in __bio_try_merge_page if ret is false
        nvme-fabrics: allow to queue requests for live queues
        block: only call sched requeue_request() for scheduled requests
        nvme-tcp: cancel async events before freeing event struct
        nvme-rdma: cancel async events before freeing event struct
        nvme-fc: cancel async events before freeing event struct
        nvme: Revert: Fix controller creation races with teardown flow
        block: restore a specific error code in bdev_del_partition
      7b8731d9
    • L
      Merge tag 'spi-fix-v5.9-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi · e8878ab8
      Linus Torvalds 提交于
      Pull spi fixes from Mark Brown:
       "There's some driver specific fixes here plus one core fix for memory
        leaks that could be triggered by a potential race condition when
        cleaning up after we have split transfers to fit into what the
        controller can support"
      
      * tag 'spi-fix-v5.9-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi:
        spi: stm32: fix pm_runtime_get_sync() error checking
        spi: Fix memory leak on splited transfers
        spi: spi-cadence-quadspi: Fix mapping of buffers for DMA reads
        spi: stm32: Rate-limit the 'Communication suspended' message
        spi: spi-loopback-test: Fix out-of-bounds read
        spi: spi-cadence-quadspi: Populate get_name() interface
        MAINTAINERS: add myself as maintainer for spi-fsl-dspi driver
      e8878ab8
    • L
      Merge tag 'regulator-fix-v5.9-rc4' of... · 8b6ce251
      Linus Torvalds 提交于
      Merge tag 'regulator-fix-v5.9-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator
      
      Pull regulator fixes from Mark Brown:
       "The biggest set of fixes here is those from Michał Mirosław fixing
        some locking issues with coupled regulators that are triggered in
        cases where a coupled regulator is used by a device involved in
        fs_reclaim like eMMC storage.
      
        These are relatively serious for the affected systems, though the
        circumstances where they trigger are very rare"
      
      * tag 'regulator-fix-v5.9-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator:
        regulator: pwm: Fix machine constraints application
        regulator: core: Fix slab-out-of-bounds in regulator_unlock_recursive()
        regulator: remove superfluous lock in regulator_resolve_coupling()
        regulator: cleanup regulator_ena_gpio_free()
        regulator: plug of_node leak in regulator_register()'s error path
        regulator: push allocation in set_consumer_device_supply() out of lock
        regulator: push allocations in create_regulator() outside of lock
        regulator: push allocation in regulator_ena_gpio_request() out of lock
        regulator: push allocation in regulator_init_coupling() outside of lock
        regulator: fix spelling mistake "Cant" -> "Can't"
        regulator: cros-ec-regulator: Add NULL test for devm_kmemdup call
      8b6ce251
    • V
      KVM: x86: always allow writing '0' to MSR_KVM_ASYNC_PF_EN · d831de17
      Vitaly Kuznetsov 提交于
      Even without in-kernel LAPIC we should allow writing '0' to
      MSR_KVM_ASYNC_PF_EN as we're not enabling the mechanism. In
      particular, QEMU with 'kernel-irqchip=off' fails to start
      a guest with
      
      qemu-system-x86_64: error: failed to set MSR 0x4b564d02 to 0x0
      
      Fixes: 9d3c447c ("KVM: X86: Fix async pf caused null-ptr-deref")
      Reported-by: NDr. David Alan Gilbert <dgilbert@redhat.com>
      Signed-off-by: NVitaly Kuznetsov <vkuznets@redhat.com>
      Message-Id: <20200911093147.484565-1-vkuznets@redhat.com>
      [Actually commit the version proposed by Sean Christopherson. - Paolo]
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      d831de17
    • D
      KVM: SVM: Periodically schedule when unregistering regions on destroy · 7be74942
      David Rientjes 提交于
      There may be many encrypted regions that need to be unregistered when a
      SEV VM is destroyed.  This can lead to soft lockups.  For example, on a
      host running 4.15:
      
      watchdog: BUG: soft lockup - CPU#206 stuck for 11s! [t_virtual_machi:194348]
      CPU: 206 PID: 194348 Comm: t_virtual_machi
      RIP: 0010:free_unref_page_list+0x105/0x170
      ...
      Call Trace:
       [<0>] release_pages+0x159/0x3d0
       [<0>] sev_unpin_memory+0x2c/0x50 [kvm_amd]
       [<0>] __unregister_enc_region_locked+0x2f/0x70 [kvm_amd]
       [<0>] svm_vm_destroy+0xa9/0x200 [kvm_amd]
       [<0>] kvm_arch_destroy_vm+0x47/0x200
       [<0>] kvm_put_kvm+0x1a8/0x2f0
       [<0>] kvm_vm_release+0x25/0x30
       [<0>] do_exit+0x335/0xc10
       [<0>] do_group_exit+0x3f/0xa0
       [<0>] get_signal+0x1bc/0x670
       [<0>] do_signal+0x31/0x130
      
      Although the CLFLUSH is no longer issued on every encrypted region to be
      unregistered, there are no other changes that can prevent soft lockups for
      very large SEV VMs in the latest kernel.
      
      Periodically schedule if necessary.  This still holds kvm->lock across the
      resched, but since this only happens when the VM is destroyed this is
      assumed to be acceptable.
      Signed-off-by: NDavid Rientjes <rientjes@google.com>
      Message-Id: <alpine.DEB.2.23.453.2008251255240.2987727@chino.kir.corp.google.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      7be74942
    • H
      KVM: MIPS: Change the definition of kvm type · 15e9e35c
      Huacai Chen 提交于
      MIPS defines two kvm types:
      
       #define KVM_VM_MIPS_TE          0
       #define KVM_VM_MIPS_VZ          1
      
      In Documentation/virt/kvm/api.rst it is said that "You probably want to
      use 0 as machine type", which implies that type 0 be the "automatic" or
      "default" type. And, in user-space libvirt use the null-machine (with
      type 0) to detect the kvm capability, which returns "KVM not supported"
      on a VZ platform.
      
      I try to fix it in QEMU but it is ugly:
      https://lists.nongnu.org/archive/html/qemu-devel/2020-08/msg05629.html
      
      And Thomas Huth suggests me to change the definition of kvm type:
      https://lists.nongnu.org/archive/html/qemu-devel/2020-09/msg03281.html
      
      So I define like this:
      
       #define KVM_VM_MIPS_AUTO        0
       #define KVM_VM_MIPS_VZ          1
       #define KVM_VM_MIPS_TE          2
      
      Since VZ and TE cannot co-exists, using type 0 on a TE platform will
      still return success (so old user-space tools have no problems on new
      kernels); the advantage is that using type 0 on a VZ platform will not
      return failure. So, the only problem is "new user-space tools use type
      2 on old kernels", but if we treat this as a kernel bug, we can backport
      this patch to old stable kernels.
      Signed-off-by: NHuacai Chen <chenhc@lemote.com>
      Message-Id: <1599734031-28746-1-git-send-email-chenhc@lemote.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      15e9e35c
    • L
      Merge tag 'mmc-v5.9-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc · 063d6a4c
      Linus Torvalds 提交于
      Pull MMC fixes from Ulf Hansson:
       "MMC core:
         - sdio: Restore ~20% performance drop for SDHCI drivers, by using
           mmc_pre_req() and mmc_post_req() for SDIO requests.
      
        MMC host:
         - sdhci-of-esdhc: Fix support for erratum eSDHC7
         - mmc_spi: Allow the driver to be built when CONFIG_HAS_DMA is unset
         - sdhci-msm: Use retries to fix tuning
         - sdhci-acpi: Fix resume for eMMC HS400 mode"
      
      * tag 'mmc-v5.9-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc:
        mmc: sdio: Use mmc_pre_req() / mmc_post_req()
        mmc: sdhci-of-esdhc: Don't walk device-tree on every interrupt
        mmc: mmc_spi: Allow the driver to be built when CONFIG_HAS_DMA is unset
        mmc: sdhci-msm: Add retries when all tuning phases are found valid
        mmc: sdhci-acpi: Clear amd_sdhci_host on reset
      063d6a4c
    • L
      kvm x86/mmu: use KVM_REQ_MMU_SYNC to sync when needed · f6f6195b
      Lai Jiangshan 提交于
      When kvm_mmu_get_page() gets a page with unsynced children, the spt
      pagetable is unsynchronized with the guest pagetable. But the
      guest might not issue a "flush" operation on it when the pagetable
      entry is changed from zero or other cases. The hypervisor has the
      responsibility to synchronize the pagetables.
      
      KVM behaved as above for many years, But commit 8c8560b8
      ("KVM: x86/mmu: Use KVM_REQ_TLB_FLUSH_CURRENT for MMU specific flushes")
      inadvertently included a line of code to change it without giving any
      reason in the changelog. It is clear that the commit's intention was to
      change KVM_REQ_TLB_FLUSH -> KVM_REQ_TLB_FLUSH_CURRENT, so we don't
      needlessly flush other contexts; however, one of the hunks changed
      a nearby KVM_REQ_MMU_SYNC instead.  This patch changes it back.
      
      Link: https://lore.kernel.org/lkml/20200320212833.3507-26-sean.j.christopherson@intel.com/
      Cc: Sean Christopherson <sean.j.christopherson@intel.com>
      Cc: Vitaly Kuznetsov <vkuznets@redhat.com>
      Signed-off-by: NLai Jiangshan <laijs@linux.alibaba.com>
      Message-Id: <20200902135421.31158-1-jiangshanlai@gmail.com>
      fixes: 8c8560b8 ("KVM: x86/mmu: Use KVM_REQ_TLB_FLUSH_CURRENT for MMU specific flushes")
      Cc: stable@vger.kernel.org
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      f6f6195b