1. 11 Sep, 2021 1 commit
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · 765092e4
      Linus Torvalds authored
      Pull input updates from Dmitry Torokhov:
      
       - several device tree bindings for input devices have been converted to
         yaml
      
       - dropped no longer used ixp4xx-beeper and CSR Prima2 PWRC drivers
      
       - analog joystick has been converted to use ktime API and no longer
         warn about low resolution timers
      
       - a few driver fixes
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (24 commits)
        Input: analog - always use ktime functions
        Input: mms114 - support MMS134S
        Input: elan_i2c - reduce the resume time for controller in Whitebox
        Input: edt-ft5x06 - added case for EDT EP0110M09
        Input: adc-keys - drop bogus __refdata annotation
        Input: Fix spelling mistake in Kconfig "useable" -> "usable"
        Input: Fix spelling mistake in Kconfig "Modul" -> "Module"
        Input: remove dead CSR Prima2 PWRC driver
        Input: adp5589-keys - use the right header
        Input: adp5588-keys - use the right header
        dt-bindings: input: tsc2005: Convert to YAML schema
        Input: ep93xx_keypad - prepare clock before using it
        dt-bindings: input: sun4i-lradc: Add wakeup-source
        dt-bindings: input: Convert Regulator Haptic binding to a schema
        dt-bindings: input: Convert Pixcir Touchscreen binding to a schema
        dt-bindings: input: Convert ChipOne ICN8318 binding to a schema
        Input: pm8941-pwrkey - fix comma vs semicolon issue
        dt-bindings: power: reset: qcom-pon: Convert qcom PON binding to yaml
        dt-bindings: input: pm8941-pwrkey: Convert pm8941 power key binding to yaml
        dt-bindings: power: reset: Change 'additionalProperties' to true
        ...
      765092e4
  2. 10 Sep, 2021 15 commits
    • Linus Torvalds's avatar
      Merge tag 'acpi-5.15-rc1-3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 926de8c4
      Linus Torvalds authored
      Pull more ACPI updates from Rafael Wysocki:
       "These prevent a confusing PRMT-related message from being printed,
        drop an unnecessary header file include and update the list of ACPICA
        maintainers.
      
        Specifics:
      
         - Prevent a message about missing PRMT from being printed on systems
           that do not support PRM, which are the majority now (Aubrey Li).
      
         - Drop unnecessary header include from scan.c (Kari Argillander).
      
         - Update the list of ACPICA maintainers after recent departure of one
           of them (Rafael Wysocki)"
      
      * tag 'acpi-5.15-rc1-3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        ACPICA: Update the list of maintainers
        ACPI: PRM: Find PRMT table before parsing it
        ACPI: scan: Remove unneeded header linux/nls.h
      926de8c4
    • Linus Torvalds's avatar
      Merge tag 'pm-5.15-rc1-3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · d6498af5
      Linus Torvalds authored
      Pull more power management updates from Rafael Wysocki:
       "These improve hybrid processors support in intel_pstate, fix an issue
        in the core devices PM code, clean up the handling of dedicated wake
        IRQs, update the Energy Model documentation and update MAINTAINERS.
      
        Specifics:
      
         - Make the HWP performance levels calibration on hybrid processors in
           intel_pstate more straightforward (Rafael Wysocki).
      
         - Prevent the PM core from leaving devices in suspend after a failing
           system-wide suspend transition in some cases when driver PM flags
           are used (Prasad Sodagudi).
      
         - Drop unused function argument from the dedicated wake IRQs handling
           code (Sergey Shtylyov).
      
         - Fix up Energy Model kerneldoc comments and include them in the
           Energy Model documentation (Lukasz Luba).
      
         - Use my kernel.org address in MAINTAINERS insead of the personal one
           (Rafael Wysocki)"
      
      * tag 'pm-5.15-rc1-3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        MAINTAINERS: Change Rafael's e-mail address
        PM: sleep: core: Avoid setting power.must_resume to false
        Documentation: power: include kernel-doc in Energy Model doc
        PM: EM: fix kernel-doc comments
        cpufreq: intel_pstate: hybrid: Rework HWP calibration
        ACPI: CPPC: Introduce cppc_get_nominal_perf()
        PM: sleep: wakeirq: drop useless parameter from dev_pm_attach_wake_irq()
      d6498af5
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · e99f23c5
      Linus Torvalds authored
      Pull arm64 fixes from Catalin Marinas:
      
       - Limit the linear region to 51-bit when KVM is running in nVHE mode.
      
         Otherwise, depending on the placement of the ID map, kernel-VA to
         hyp-VA translations may produce addresses that either conflict with
         other HYP mappings or generate addresses outside of the 52-bit
         addressable range.
      
       - Instruct kmemleak not to scan the memory reserved for kdump as this
         range is removed from the kernel linear map and therefore not
         accessible.
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64: kdump: Skip kmemleak scan reserved memory for kdump
        arm64: mm: limit linear region to 51 bits for KVM in nVHE mode
      e99f23c5
    • Linus Torvalds's avatar
      Merge tag 'for-5.15/parisc-3' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux · 23ef827c
      Linus Torvalds authored
      Pull parisc fixes from Helge Deller:
      
       - Build warning fixes in Makefile and Dino PCI driver
      
       - Fix when sched_clock is marked unstable
      
       - Drop strnlen_user() in favour of generic version
      
       - Prevent kernel to write outside userspace signal stack
      
       - Remove CONFIG_SET_FS including KERNEL_DS and USER_DS from parisc and
         switch to __get/put_kernel_nofault()
      
      * tag 'for-5.15/parisc-3' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
        parisc: Implement __get/put_kernel_nofault()
        parisc: Mark sched_clock unstable only if clocks are not syncronized
        parisc: Move pci_dev_is_behind_card_dino to where it is used
        parisc: Reduce sigreturn trampoline to 3 instructions
        parisc: Check user signal stack trampoline is inside TASK_SIZE
        parisc: Drop useless debug info and comments from signal.c
        parisc: Drop strnlen_user() in favour of generic version
        parisc: Add missing FORCE prerequisite in Makefile
      23ef827c
    • Linus Torvalds's avatar
      Merge tag 'iommu-fixes-v5.15-rc0' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu · 589e5cab
      Linus Torvalds authored
      Pull iommu fixes from Joerg Roedel:
      
       - Intel VT-d:
           - PASID leakage in intel_svm_unbind_mm()
           - Deadlock in intel_svm_drain_prq()
      
       - AMD IOMMU: Fixes for an unhandled page-fault bug when AVIC is used
         for a KVM guest.
      
       - Make CONFIG_IOMMU_DEFAULT_DMA_LAZY architecture instead of IOMMU
         driver dependent
      
      * tag 'iommu-fixes-v5.15-rc0' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu:
        iommu: Clarify default domain Kconfig
        iommu/vt-d: Fix a deadlock in intel_svm_drain_prq()
        iommu/vt-d: Fix PASID leak in intel_svm_unbind_mm()
        iommu/amd: Remove iommu_init_ga()
        iommu/amd: Relocate GAMSup check to early_enable_iommus
      589e5cab
    • Linus Torvalds's avatar
      Merge tag 'char-misc-5.15-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc · 5ffc06eb
      Linus Torvalds authored
      Pull habanalabs updates from Greg KH:
       "Here is another round of misc driver patches for 5.15-rc1.
      
        In here is only updates for the Habanalabs driver. This request is
        late because the previously-objected-to dma-buf patches are all
        removed and some fixes that you and others found are now included in
        here as well.
      
        All of these have been in linux-next for well over a week with no
        reports of problems, and they are all self-contained to only this one
        driver. Full details are in the shortlog"
      
      * tag 'char-misc-5.15-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (61 commits)
        habanalabs/gaudi: hwmon default card name
        habanalabs: add support for f/w reset
        habanalabs/gaudi: block ICACHE_BASE_ADDERESS_HIGH in TPC
        habanalabs: cannot sleep while holding spinlock
        habanalabs: never copy_from_user inside spinlock
        habanalabs: remove unnecessary device status check
        habanalabs: disable IRQ in user interrupts spinlock
        habanalabs: add "in device creation" status
        habanalabs/gaudi: invalidate PMMU mem cache on init
        habanalabs/gaudi: size should be printed in decimal
        habanalabs/gaudi: define DC POWER for secured PMC
        habanalabs/gaudi: unmask out of bounds SLM access interrupt
        habanalabs: add userptr_lookup node in debugfs
        habanalabs/gaudi: fetch TPC/MME ECC errors from F/W
        habanalabs: modify multi-CS to wait on stream masters
        habanalabs/gaudi: add monitored SOBs to state dump
        habanalabs/gaudi: restore user registers when context opens
        habanalabs/gaudi: increase boot fit timeout
        habanalabs: update to latest firmware headers
        habanalabs/gaudi: minimize number of register reads
        ...
      5ffc06eb
    • Rafael J. Wysocki's avatar
      Merge branches 'acpi-scan' and 'acpi-prm' · 8fbc1c5b
      Rafael J. Wysocki authored
      * acpi-scan:
        ACPI: scan: Remove unneeded header linux/nls.h
      
      * acpi-prm:
        ACPI: PRM: Find PRMT table before parsing it
      8fbc1c5b
    • Rafael J. Wysocki's avatar
      Merge branches 'pm-cpufreq', 'pm-sleep' and 'pm-em' · be2d2433
      Rafael J. Wysocki authored
      * pm-cpufreq:
        cpufreq: intel_pstate: hybrid: Rework HWP calibration
        ACPI: CPPC: Introduce cppc_get_nominal_perf()
      
      * pm-sleep:
        PM: sleep: core: Avoid setting power.must_resume to false
        PM: sleep: wakeirq: drop useless parameter from dev_pm_attach_wake_irq()
      
      * pm-em:
        Documentation: power: include kernel-doc in Energy Model doc
        PM: EM: fix kernel-doc comments
      be2d2433
    • Linus Torvalds's avatar
      Merge tag 'drm-next-2021-09-10' of git://anongit.freedesktop.org/drm/drm · a668acb8
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Just an initial bunch of fixes for the merge window, amdgpu is most of
        them with a few ttm fixes and an fbdev avoid multiply overflow fix.
      
        core:
         - Make some dma-buf config options depend on DMA_SHARED_BUFFER
         - Handle multiplication overflow of fbdev xres/yres in the core
      
        ttm:
         - Fix ttm_bo_move_memcpy() when ttm_resource is subclassed
         - Fix ttm deadlock if target BO isn't idle
         - ttm build fix
         - ttm docs fix
      
        dma-buf:
         - config option fixes
      
        fbdev:
         - limit resolutions to avoid int overflow
      
        i915:
         - stddef change.
      
        amdgpu:
         - Misc cleanups, typo fixes
         - EEPROM fix
         - Add some new PCI IDs
         - Scatter/Gather display support for Yellow Carp
         - PCIe DPM fix for RKL platforms
         - RAS fix
      
        amdkfd:
         - SVM fix
      
        vc4:
         - static function fix
      
        mgag200:
         - fix uninit var
      
        panfrost:
         - lock_region fixes"
      
      * tag 'drm-next-2021-09-10' of git://anongit.freedesktop.org/drm/drm: (36 commits)
        drm/ttm: Fix a deadlock if the target BO is not idle during swap
        fbmem: don't allow too huge resolutions
        dma-buf: DMABUF_SYSFS_STATS should depend on DMA_SHARED_BUFFER
        dma-buf: DMABUF_DEBUG should depend on DMA_SHARED_BUFFER
        drm/i915: use linux/stddef.h due to "isystem: trim/fixup stdarg.h and other headers"
        dma-buf: DMABUF_MOVE_NOTIFY should depend on DMA_SHARED_BUFFER
        drm/amdkfd: drop process ref count when xnack disable
        drm/amdgpu: enable more pm sysfs under SRIOV 1-VF mode
        drm/amdgpu: fix fdinfo race with process exit
        drm/amdgpu: Fix a deadlock if previous GEM object allocation fails
        drm/amdgpu: stop scheduler when calling hw_fini (v2)
        drm/amdgpu: Clear RAS interrupt status on aldebaran
        drm/amd/display: Initialize lt_settings on instantiation
        drm/amd/display: cleanup idents after a revert
        drm/amd/display: Fix memory leak reported by coverity
        drm/ttm: Fix ttm_bo_move_memcpy() for subclassed struct ttm_resource
        drm/amdgpu/swsmu: fix spelling mistake "minimun" -> "minimum"
        drm/amdgpu: Disable PCIE_DPM on Intel RKL Platform
        drm/amdgpu: show both cmd id and name when psp cmd failed
        drm/amd/display: setup system context for APUs
        ...
      a668acb8
    • Amir Goldstein's avatar
      fsnotify: fix sb_connectors leak · 4396a731
      Amir Goldstein authored
      Fix a leak in s_fsnotify_connectors counter in case of a race between
      concurrent add of new fsnotify mark to an object.
      
      The task that lost the race fails to drop the counter before freeing
      the unused connector.
      
      Following umount() hangs in fsnotify_sb_delete()/wait_var_event(),
      because s_fsnotify_connectors never drops to zero.
      
      Fixes: ec44610f ("fsnotify: count all objects with attached connectors")
      Reported-by: default avatarMurphy Zhou <jencce.kernel@gmail.com>
      Link: https://lore.kernel.org/linux-fsdevel/20210907063338.ycaw6wvhzrfsfdlp@xzhoux.usersys.redhat.com/Signed-off-by: default avatarAmir Goldstein <amir73il@gmail.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      4396a731
    • Rafael J. Wysocki's avatar
      MAINTAINERS: Change Rafael's e-mail address · 3d53afea
      Rafael J. Wysocki authored
      I have been slow to respond to messages going to rjw@rjwysocki.net
      recently, so change it to rafael@kernel.org (which works better for
      me) in MAINTAINERS.
      Signed-off-by: default avatarRafael J. Wysocki <rafael@kernel.org>
      3d53afea
    • Rafael J. Wysocki's avatar
      ACPICA: Update the list of maintainers · 22d692ba
      Rafael J. Wysocki authored
      Erik Kaneda will not be maintaining ACPICA any more, so drop his
      address (which doesn't work any more anyway) from the maintainer
      list.
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      22d692ba
    • Chen Wandun's avatar
      arm64: kdump: Skip kmemleak scan reserved memory for kdump · 85f58eb1
      Chen Wandun authored
      Trying to boot with kdump + kmemleak, command will result in a crash:
      "echo scan > /sys/kernel/debug/kmemleak"
      
      crashkernel reserved: 0x0000000007c00000 - 0x0000000027c00000 (512 MB)
      Kernel command line: BOOT_IMAGE=(hd1,gpt2)/vmlinuz-5.14.0-rc5-next-20210809+ root=/dev/mapper/ao-root ro rd.lvm.lv=ao/root rd.lvm.lv=ao/swap crashkernel=512M
      Unable to handle kernel paging request at virtual address ffff000007c00000
      Mem abort info:
        ESR = 0x96000007
        EC = 0x25: DABT (current EL), IL = 32 bits
        SET = 0, FnV = 0
        EA = 0, S1PTW = 0
        FSC = 0x07: level 3 translation fault
      Data abort info:
        ISV = 0, ISS = 0x00000007
        CM = 0, WnR = 0
      swapper pgtable: 64k pages, 48-bit VAs, pgdp=00002024f0d80000
      [ffff000007c00000] pgd=1800205ffffd0003, p4d=1800205ffffd0003, pud=1800205ffffd0003, pmd=1800205ffffc0003, pte=0068000007c00f06
      Internal error: Oops: 96000007 [#1] SMP
      pstate: 804000c9 (Nzcv daIF +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
      pc : scan_block+0x98/0x230
      lr : scan_block+0x94/0x230
      sp : ffff80008d6cfb70
      x29: ffff80008d6cfb70 x28: 0000000000000000 x27: 0000000000000000
      x26: 00000000000000c0 x25: 0000000000000001 x24: 0000000000000000
      x23: ffffa88a6b18b398 x22: ffff000007c00ff9 x21: ffffa88a6ac7fc40
      x20: ffffa88a6af6a830 x19: ffff000007c00000 x18: 0000000000000000
      x17: 0000000000000000 x16: 0000000000000000 x15: ffffffffffffffff
      x14: ffffffff00000000 x13: ffffffffffffffff x12: 0000000000000020
      x11: 0000000000000000 x10: 0000000001080000 x9 : ffffa88a6951c77c
      x8 : ffffa88a6a893988 x7 : ffff203ff6cfb3c0 x6 : ffffa88a6a52b3c0
      x5 : ffff203ff6cfb3c0 x4 : 0000000000000000 x3 : 0000000000000000
      x2 : 0000000000000001 x1 : ffff20226cb56a40 x0 : 0000000000000000
      Call trace:
       scan_block+0x98/0x230
       scan_gray_list+0x120/0x270
       kmemleak_scan+0x3a0/0x648
       kmemleak_write+0x3ac/0x4c8
       full_proxy_write+0x6c/0xa0
       vfs_write+0xc8/0x2b8
       ksys_write+0x70/0xf8
       __arm64_sys_write+0x24/0x30
       invoke_syscall+0x4c/0x110
       el0_svc_common+0x9c/0x190
       do_el0_svc+0x30/0x98
       el0_svc+0x28/0xd8
       el0t_64_sync_handler+0x90/0xb8
       el0t_64_sync+0x180/0x184
      
      The reserved memory for kdump will be looked up by kmemleak, this area
      will be set invalid when kdump service is bring up. That will result in
      crash when kmemleak scan this area.
      
      Fixes: a7259df7 ("memblock: make memblock_find_in_range method private")
      Signed-off-by: default avatarChen Wandun <chenwandun@huawei.com>
      Reviewed-by: default avatarKefeng Wang <wangkefeng.wang@huawei.com>
      Reviewed-by: default avatarMike Rapoport <rppt@linux.ibm.com>
      Reviewed-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      Link: https://lore.kernel.org/r/20210910064844.3827813-1-chenwandun@huawei.comSigned-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      85f58eb1
    • xinhui pan's avatar
      drm/ttm: Fix a deadlock if the target BO is not idle during swap · 70982eef
      xinhui pan authored
      The ret value might be -EBUSY, caller will think lru lock is still
      locked but actually NOT. So return -ENOSPC instead. Otherwise we hit
      list corruption.
      
      ttm_bo_cleanup_refs might fail too if BO is not idle. If we return 0,
      caller(ttm_tt_populate -> ttm_global_swapout ->ttm_device_swapout) will
      be stuck as we actually did not free any BO memory. This usually happens
      when the fence is not signaled for a long time.
      Signed-off-by: default avatarxinhui pan <xinhui.pan@amd.com>
      Reviewed-by: default avatarChristian König <christian.koenig@amd.com>
      Fixes: ebd59851 ("drm/ttm: move swapout logic around v3")
      Link: https://patchwork.freedesktop.org/patch/msgid/20210907040832.1107747-1-xinhui.pan@amd.comSigned-off-by: default avatarChristian König <christian.koenig@amd.com>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      70982eef
    • Dave Airlie's avatar
      Merge tag 'drm-misc-next-fixes-2021-09-09' of... · b011522c
      Dave Airlie authored
      Merge tag 'drm-misc-next-fixes-2021-09-09' of git://anongit.freedesktop.org/drm/drm-misc into drm-next
      
      drm-misc-next-fixes for v5.15:
      - Make some dma-buf config options depend on DMA_SHARED_BUFFER.
      - Handle multiplication overflow of fbdev xres/yres in the core.
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      From: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/37c5fe2e-5be8-45c3-286b-d8d536a5cef2@linux.intel.com
      b011522c
  3. 09 Sep, 2021 24 commits
    • Linus Torvalds's avatar
      Merge tag '5.15-rc-ksmbd-part2' of git://git.samba.org/ksmbd · bf9f243f
      Linus Torvalds authored
      Pull ksmbd fixes from Steve French:
      
       - various fixes pointed out by coverity, and a minor cleanup patch
      
       - id mapping and ownership fixes
      
       - an smbdirect fix
      
      * tag '5.15-rc-ksmbd-part2' of git://git.samba.org/ksmbd:
        ksmbd: fix control flow issues in sid_to_id()
        ksmbd: fix read of uninitialized variable ret in set_file_basic_info
        ksmbd: add missing assignments to ret on ndr_read_int64 read calls
        ksmbd: add validation for ndr read/write functions
        ksmbd: remove unused ksmbd_file_table_flush function
        ksmbd: smbd: fix dma mapping error in smb_direct_post_send_data
        ksmbd: Reduce error log 'speed is unknown' to debug
        ksmbd: defer notify_change() call
        ksmbd: remove setattr preparations in set_file_basic_info()
        ksmbd: ensure error is surfaced in set_file_basic_info()
        ndr: fix translation in ndr_encode_posix_acl()
        ksmbd: fix translation in sid_to_id()
        ksmbd: fix subauth 0 handling in sid_to_id()
        ksmbd: fix translation in acl entries
        ksmbd: fix translation in ksmbd_acls_fattr()
        ksmbd: fix translation in create_posix_rsp_buf()
        ksmbd: fix translation in smb2_populate_readdir_entry()
        ksmbd: fix lookup on idmapped mounts
      bf9f243f
    • Linus Torvalds's avatar
      Merge tag 'for-5.15-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux · 8dde2086
      Linus Torvalds authored
      Pull btrfs fixes from David Sterba:
      
       - fix max_inline mount option limit on 64k page system
      
       - lockdep fixes:
           - update bdev time in a safer way
           - move bdev put outside of sb write section when removing device
           - fix possible deadlock when mounting seed/sprout filesystem
      
       - zoned mode: fix split extent accounting
      
       - minor include fixup
      
      * tag 'for-5.15-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux:
        btrfs: zoned: fix double counting of split ordered extent
        btrfs: fix lockdep warning while mounting sprout fs
        btrfs: delay blkdev_put until after the device remove
        btrfs: update the bdev time directly when closing
        btrfs: use correct header for div_u64 in misc.h
        btrfs: fix upper limit for max_inline for page size 64K
      8dde2086
    • Linus Torvalds's avatar
      Merge tag 'sound-fix-5.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · ae79394a
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "A collection of small fixes that have been gathered before rc1,
        including a few regression fixes for the problem in the previous pull
        request"
      
      * tag 'sound-fix-5.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: gus: Fix repeated probe for ISA interwave card
        ALSA: gus: Fix repeated probes of snd_gus_create()
        ALSA: vx222: fix null-ptr-deref
        ASoC: rockchip: i2s: Fix concurrency between tx/rx
        ASoC: mt8195: correct the dts parsing logic about DPTX and HDMITX
        ASoC: Intel: boards: Fix CONFIG_SND_SOC_SDW_MOCKUP select
        ASoC: dt-bindings: fsl_rpmsg: Add compatible string for i.MX8ULP
        ALSA: usb-audio: Add registration quirk for JBL Quantum 800
        ASoC: rt5682: fix headset background noise when S3 state
        ASoC: dt-bindings: mt8195: remove dependent headers in the example
        ASoC: mediatek: SND_SOC_MT8195 should depend on ARCH_MEDIATEK
        ASoC: samsung: s3c24xx_simtec: fix spelling mistake "devicec" -> "device"
        ASoC: audio-graph: respawn Platform Support
        ASoC: mediatek: mt8195: add MTK_PMIC_WRAP dependency
      ae79394a
    • Helge Deller's avatar
      parisc: Implement __get/put_kernel_nofault() · 67102872
      Helge Deller authored
      Remove CONFIG_SET_FS from parisc, so we need to add
      __get_kernel_nofault() and __put_kernel_nofault(), define
      HAVE_GET_KERNEL_NOFAULT and remove set_fs(), get_fs(), load_sr2(),
      thread_info->addr_limit, KERNEL_DS and USER_DS.
      
      The nice side-effect of this patch is that we now can directly access
      userspace via sr3 without the need to use a temporary sr2 which is
      either copied from sr3 or set to zero (for kernel space).
      Signed-off-by: default avatarHelge Deller <deller@gmx.de>
      Suggested-by: default avatarArnd Bergmann <arnd@kernel.org>
      67102872
    • Linus Torvalds's avatar
      Merge tag 'for-linus-5.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml · d6c338a7
      Linus Torvalds authored
      Pull UML updates from Richard Weinberger:
      
       - Support for VMAP_STACK
      
       - Support for splice_write in hostfs
      
       - Fixes for virt-pci
      
       - Fixes for virtio_uml
      
       - Various fixes
      
      * tag 'for-linus-5.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml:
        um: fix stub location calculation
        um: virt-pci: fix uapi documentation
        um: enable VMAP_STACK
        um: virt-pci: don't do DMA from stack
        hostfs: support splice_write
        um: virtio_uml: fix memory leak on init failures
        um: virtio_uml: include linux/virtio-uml.h
        lib/logic_iomem: fix sparse warnings
        um: make PCI emulation driver init/exit static
      d6c338a7
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm · 35776f10
      Linus Torvalds authored
      Pull ARM development updates from Russell King:
      
       - Rename "mod_init" and "mod_exit" so that initcall debug output is
         actually useful (Randy Dunlap)
      
       - Update maintainers entries for linux-arm-kernel to indicate it is
         moderated for non-subscribers (Randy Dunlap)
      
       - Move install rules to arch/arm/Makefile (Masahiro Yamada)
      
       - Drop unnecessary ARCH_NR_GPIOS definition (Linus Walleij)
      
       - Don't warn about atags_to_fdt() stack size (David Heidelberg)
      
       - Speed up unaligned copy_{from,to}_kernel_nofault (Arnd Bergmann)
      
       - Get rid of set_fs() usage (Arnd Bergmann)
      
       - Remove checks for GCC prior to v4.6 (Geert Uytterhoeven)
      
      * tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm:
        ARM: 9118/1: div64: Remove always-true __div64_const32_is_OK() duplicate
        ARM: 9117/1: asm-generic: div64: Remove always-true __div64_const32_is_OK()
        ARM: 9116/1: unified: Remove check for gcc < 4
        ARM: 9110/1: oabi-compat: fix oabi epoll sparse warning
        ARM: 9113/1: uaccess: remove set_fs() implementation
        ARM: 9112/1: uaccess: add __{get,put}_kernel_nofault
        ARM: 9111/1: oabi-compat: rework fcntl64() emulation
        ARM: 9114/1: oabi-compat: rework sys_semtimedop emulation
        ARM: 9108/1: oabi-compat: rework epoll_wait/epoll_pwait emulation
        ARM: 9107/1: syscall: always store thread_info->abi_syscall
        ARM: 9109/1: oabi-compat: add epoll_pwait handler
        ARM: 9106/1: traps: use get_kernel_nofault instead of set_fs()
        ARM: 9115/1: mm/maccess: fix unaligned copy_{from,to}_kernel_nofault
        ARM: 9105/1: atags_to_fdt: don't warn about stack size
        ARM: 9103/1: Drop ARCH_NR_GPIOS definition
        ARM: 9102/1: move theinstall rules to arch/arm/Makefile
        ARM: 9100/1: MAINTAINERS: mark all linux-arm-kernel@infradead list as moderated
        ARM: 9099/1: crypto: rename 'mod_init' & 'mod_exit' functions to be module-specific
      35776f10
    • Linus Torvalds's avatar
      Merge tag 'trace-v5.15-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace · 43175623
      Linus Torvalds authored
      Pull more tracing updates from Steven Rostedt:
      
       - Add migrate-disable counter to tracing header
      
       - Fix error handling in event probes
      
       - Fix missed unlock in osnoise in error path
      
       - Fix merge issue with tools/bootconfig
      
       - Clean up bootconfig data when init memory is removed
      
       - Fix bootconfig to loop only on subkeys
      
       - Have kernel command lines override bootconfig options
      
       - Increase field counts for synthetic events
      
       - Have histograms dynamic allocate event elements to save space
      
       - Fixes in testing and documentation
      
      * tag 'trace-v5.15-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
        tracing/boot: Fix to loop on only subkeys
        selftests/ftrace: Exclude "(fault)" in testing add/remove eprobe events
        tracing: Dynamically allocate the per-elt hist_elt_data array
        tracing: synth events: increase max fields count
        tools/bootconfig: Show whole test command for each test case
        bootconfig: Fix missing return check of xbc_node_compose_key function
        tools/bootconfig: Fix tracing_on option checking in ftrace2bconf.sh
        docs: bootconfig: Add how to use bootconfig for kernel parameters
        init/bootconfig: Reorder init parameter from bootconfig and cmdline
        init: bootconfig: Remove all bootconfig data when the init memory is removed
        tracing/osnoise: Fix missed cpus_read_unlock() in start_per_cpu_kthreads()
        tracing: Fix some alloc_event_probe() error handling bugs
        tracing: Add migrate-disabled counter to tracing output.
      43175623
    • Linus Torvalds's avatar
      Merge tag 's390-5.15-2' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · f154c806
      Linus Torvalds authored
      Pull more s390 updates from Heiko Carstens:
       "Except for the xpram device driver removal it is all about fixes and
        cleanups.
      
         - Fix topology update on cpu hotplug, so notifiers see expected
           masks. This bug was uncovered with SCHED_CORE support.
      
         - Fix stack unwinding so that the correct number of entries are
           omitted like expected by common code. This fixes KCSAN selftests.
      
         - Add kmemleak annotation to stack_alloc to avoid false positive
           kmemleak warnings.
      
         - Avoid layering violation in common I/O code and don't unregister
           subchannel from child-drivers.
      
         - Remove xpram device driver for which no real use case exists since
           the kernel is 64 bit only. Also all hypervisors got required
           support removed in the meantime, which means the xpram device
           driver is dead code.
      
         - Fix -ENODEV handling of clp_get_state in our PCI code.
      
         - Enable KFENCE in debug defconfig.
      
         - Cleanup hugetlbfs s390 specific Kconfig dependency.
      
         - Quite a lot of trivial fixes to get rid of "W=1" warnings, and and
           other simple cleanups"
      
      * tag 's390-5.15-2' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
        hugetlbfs: s390 is always 64bit
        s390/ftrace: remove incorrect __va usage
        s390/zcrypt: remove incorrect kernel doc indicators
        scsi: zfcp: fix kernel doc comments
        s390/sclp: add __nonstring annotation
        s390/hmcdrv_ftp: fix kernel doc comment
        s390: remove xpram device driver
        s390/pci: read clp_list_pci_req only once
        s390/pci: fix clp_get_state() handling of -ENODEV
        s390/cio: fix kernel doc comment
        s390/ctrlchar: fix kernel doc comment
        s390/con3270: use proper type for tasklet function
        s390/cpum_cf: move array from header to C file
        s390/mm: fix kernel doc comments
        s390/topology: fix topology information when calling cpu hotplug notifiers
        s390/unwind: use current_frame_address() to unwind current task
        s390/configs: enable CONFIG_KFENCE in debug_defconfig
        s390/entry: make oklabel within CHKSTG macro local
        s390: add kmemleak annotation in stack_alloc()
        s390/cio: dont unregister subchannel from child-drivers
      f154c806
    • Linus Torvalds's avatar
      Merge branch 'work.gfs2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 7b871c77
      Linus Torvalds authored
      Pull gfs2 setattr updates from Al Viro:
       "Make it possible for filesystems to use a generic 'may_setattr()' and
        switch gfs2 to using it"
      
      * 'work.gfs2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        gfs2: Switch to may_setattr in gfs2_setattr
        fs: Move notify_change permission checks into may_setattr
      7b871c77
    • Linus Torvalds's avatar
      Merge branch 'work.init' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · e2e694b9
      Linus Torvalds authored
      Pull root filesystem type handling updates from Al Viro:
       "Teach init/do_mounts.c to handle non-block filesystems, hopefully
        preventing even more special-cased kludges (such as root=/dev/nfs,
        etc)"
      
      * 'work.init' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        fs: simplify get_filesystem_list / get_all_fs_names
        init: allow mounting arbitrary non-blockdevice filesystems as root
        init: split get_fs_names
      e2e694b9
    • Linus Torvalds's avatar
      Merge branch 'work.iov_iter' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 7b7699c0
      Linus Torvalds authored
      Pull iov_iter fixes from Al Viro:
       "Fixes for io-uring handling of iov_iter reexpands"
      
      * 'work.iov_iter' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        io_uring: reexpand under-reexpanded iters
        iov_iter: track truncated size
      7b7699c0
    • Linus Torvalds's avatar
      Merge tag 'cxl-for-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/cxl/cxl · 70868a18
      Linus Torvalds authored
      Pull CXL (Compute Express Link) updates from Dan Williams:
      
       - Fix detection of CXL host bridges to filter out disabled ACPI0016
         devices in the ACPI DSDT.
      
       - Fix kernel lockdown integration to disable raw commands when raw PCI
         access is disabled.
      
       - Fix a broken debug message.
      
       - Add support for "Get Partition Info". I.e. enumerate the split
         between volatile and persistent capacity on bi-modal CXL memory
         expanders.
      
       - Re-factor the core by subject area. This is a work in progress.
      
       - Prepare libnvdimm to understand CXL labels in addition to EFI labels.
         This is a work in progress.
      
      * tag 'cxl-for-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/cxl/cxl: (25 commits)
        cxl/registers: Fix Documentation warning
        cxl/pmem: Fix Documentation warning
        cxl/uapi: Fix defined but not used warnings
        cxl/pci: Fix debug message in cxl_probe_regs()
        cxl/pci: Fix lockdown level
        cxl/acpi: Do not add DSDT disabled ACPI0016 host bridge ports
        libnvdimm/labels: Add claim class helpers
        libnvdimm/labels: Add type-guid helpers
        libnvdimm/labels: Add blk special cases for nlabel and position helpers
        libnvdimm/labels: Add blk isetcookie set / validation helpers
        libnvdimm/labels: Add a checksum calculation helper
        libnvdimm/labels: Introduce label setter helpers
        libnvdimm/labels: Add isetcookie validation helper
        libnvdimm/labels: Introduce getters for namespace label fields
        cxl/mem: Adjust ram/pmem range to represent DPA ranges
        cxl/mem: Account for partitionable space in ram/pmem ranges
        cxl/pci: Store memory capacity values
        cxl/pci: Simplify register setup
        cxl/pci: Ignore unknown register block types
        cxl/core: Move memdev management to core
        ...
      70868a18
    • Linus Torvalds's avatar
      Merge tag 'libnvdimm-for-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm · 2e5fd489
      Linus Torvalds authored
      Pull libnvdimm updates from Dan Williams:
      
       - Fix a race condition in the teardown path of raw mode pmem
         namespaces.
      
       - Cleanup the code that filesystems use to detect filesystem-dax
         capabilities of their underlying block device.
      
      * tag 'libnvdimm-for-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm:
        dax: remove bdev_dax_supported
        xfs: factor out a xfs_buftarg_is_dax helper
        dax: stub out dax_supported for !CONFIG_FS_DAX
        dax: remove __generic_fsdax_supported
        dax: move the dax_read_lock() locking into dax_supported
        dax: mark dax_get_by_host static
        dm: use fs_dax_get_by_bdev instead of dax_get_by_host
        dax: stop using bdevname
        fsdax: improve the FS_DAX Kconfig description and help text
        libnvdimm/pmem: Fix crash triggered when I/O in-flight during unbind
      2e5fd489
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma · 4b105f4a
      Linus Torvalds authored
      Pull rdma fixes from Jason Gunthorpe:
       "I don't usually send a second PR in the merge window, but the fix to
        mlx5 is significant enough that it should start going through the
        process ASAP. Along with it comes some of the usual -rc stuff that
        would normally wait for a -rc2 or so.
      
        Summary:
      
        Important error case regression fixes in mlx5:
      
         - Wrong size used when computing the error path smaller allocation
           request leads to corruption
      
         - Confusing but ultimately harmless alignment mis-calculation
      
        Static checker warning fixes:
      
         - NULL pointer subtraction in qib
      
         - kcalloc in bnxt_re
      
         - Missing static on global variable in hfi1"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma:
        IB/hfi1: make hist static
        RDMA/bnxt_re: Prefer kcalloc over open coded arithmetic
        IB/qib: Fix null pointer subtraction compiler warning
        RDMA/mlx5: Fix xlt_chunk_align calculation
        RDMA/mlx5: Fix number of allocated XLT entries
      4b105f4a
    • Linus Torvalds's avatar
      Merge tag 'dmaengine-5.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine · 0aa25160
      Linus Torvalds authored
      Pull dmaengine updates from Vinod Koul:
       "New drivers/devices
         - Support for Renesas RZ/G2L dma controller
         - New driver for AMD PTDMA controller
      
        Updates:
         - Big pile of idxd updates
         - Updates for Altera driver, stm32-dma, dw etc"
      
      * tag 'dmaengine-5.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine: (83 commits)
        dmaengine: sh: fix some NULL dereferences
        dmaengine: sh: Fix unused initialization of pointer lmdesc
        MAINTAINERS: Fix AMD PTDMA DRIVER entry
        dmaengine: ptdma: remove PT_OFFSET to avoid redefnition
        dmaengine: ptdma: Add debugfs entries for PTDMA
        dmaengine: ptdma: register PTDMA controller as a DMA resource
        dmaengine: ptdma: Initial driver for the AMD PTDMA
        dmaengine: fsl-dpaa2-qdma: Fix spelling mistake "faile" -> "failed"
        dmaengine: idxd: remove interrupt disable for dev_lock
        dmaengine: idxd: remove interrupt disable for cmd_lock
        dmaengine: idxd: fix setting up priv mode for dwq
        dmaengine: xilinx_dma: Set DMA mask for coherent APIs
        dmaengine: ti: k3-psil-j721e: Add entry for CSI2RX
        dmaengine: sh: Add DMAC driver for RZ/G2L SoC
        dmaengine: Extend the dma_slave_width for 128 bytes
        dt-bindings: dma: Document RZ/G2L bindings
        dmaengine: ioat: depends on !UML
        dmaengine: idxd: set descriptor allocation size to threshold for swq
        dmaengine: idxd: make submit failure path consistent on desc freeing
        dmaengine: idxd: remove interrupt flag for completion list spinlock
        ...
      0aa25160
    • Ard Biesheuvel's avatar
      arm64: mm: limit linear region to 51 bits for KVM in nVHE mode · 88053ec8
      Ard Biesheuvel authored
      KVM in nVHE mode divides up its VA space into two equal halves, and
      picks the half that does not conflict with the HYP ID map to map its
      linear region. This worked fine when the kernel's linear map itself was
      guaranteed to cover precisely as many bits of VA space, but this was
      changed by commit f4693c27 ("arm64: mm: extend linear region for
      52-bit VA configurations").
      
      The result is that, depending on the placement of the ID map, kernel-VA
      to hyp-VA translations may produce addresses that either conflict with
      other HYP mappings (including the ID map itself) or generate addresses
      outside of the 52-bit addressable range, neither of which is likely to
      lead to anything useful.
      
      Given that 52-bit capable cores are guaranteed to implement VHE, this
      only affects configurations such as pKVM where we opt into non-VHE mode
      even if the hardware is VHE capable. So just for these configurations,
      let's limit the kernel linear map to 51 bits and work around the
      problem.
      
      Fixes: f4693c27 ("arm64: mm: extend linear region for 52-bit VA configurations")
      Signed-off-by: default avatarArd Biesheuvel <ardb@kernel.org>
      Link: https://lore.kernel.org/r/20210826165613.60774-1-ardb@kernel.orgSigned-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      88053ec8
    • Robin Murphy's avatar
      iommu: Clarify default domain Kconfig · 8cc63319
      Robin Murphy authored
      Although strictly it is the AMD and Intel drivers which have an existing
      expectation of lazy behaviour by default, it ends up being rather
      unintuitive to describe this literally in Kconfig. Express it instead as
      an architecture dependency, to clarify that it is a valid config-time
      decision. The end result is the same since virtio-iommu doesn't support
      lazy mode and thus falls back to strict at runtime regardless.
      
      The per-architecture disparity is a matter of historical expectations:
      the AMD and Intel drivers have been lazy by default since 2008, and
      changing that gets noticed by people asking where their I/O throughput
      has gone. Conversely, Arm-based systems with their wider assortment of
      IOMMU drivers mostly only support strict mode anyway; only the Arm SMMU
      drivers have later grown support for passthrough and lazy mode, for
      users who wanted to explicitly trade off isolation for performance.
      These days, reducing the default level of isolation in a way which may
      go unnoticed by users who expect otherwise hardly seems worth risking
      for the sake of one line of Kconfig, so here's where we are.
      Reported-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: default avatarRobin Murphy <robin.murphy@arm.com>
      Link: https://lore.kernel.org/r/69a0c6f17b000b54b8333ee42b3124c1d5a869e2.1631105737.git.robin.murphy@arm.comSigned-off-by: default avatarJoerg Roedel <jroedel@suse.de>
      8cc63319
    • Fenghua Yu's avatar
      iommu/vt-d: Fix a deadlock in intel_svm_drain_prq() · 6ef05051
      Fenghua Yu authored
      pasid_mutex and dev->iommu->param->lock are held while unbinding mm is
      flushing IO page fault workqueue and waiting for all page fault works to
      finish. But an in-flight page fault work also need to hold the two locks
      while unbinding mm are holding them and waiting for the work to finish.
      This may cause an ABBA deadlock issue as shown below:
      
      	idxd 0000:00:0a.0: unbind PASID 2
      	======================================================
      	WARNING: possible circular locking dependency detected
      	5.14.0-rc7+ #549 Not tainted [  186.615245] ----------
      	dsa_test/898 is trying to acquire lock:
      	ffff888100d854e8 (&param->lock){+.+.}-{3:3}, at:
      	iopf_queue_flush_dev+0x29/0x60
      	but task is already holding lock:
      	ffffffff82b2f7c8 (pasid_mutex){+.+.}-{3:3}, at:
      	intel_svm_unbind+0x34/0x1e0
      	which lock already depends on the new lock.
      
      	the existing dependency chain (in reverse order) is:
      
      	-> #2 (pasid_mutex){+.+.}-{3:3}:
      	       __mutex_lock+0x75/0x730
      	       mutex_lock_nested+0x1b/0x20
      	       intel_svm_page_response+0x8e/0x260
      	       iommu_page_response+0x122/0x200
      	       iopf_handle_group+0x1c2/0x240
      	       process_one_work+0x2a5/0x5a0
      	       worker_thread+0x55/0x400
      	       kthread+0x13b/0x160
      	       ret_from_fork+0x22/0x30
      
      	-> #1 (&param->fault_param->lock){+.+.}-{3:3}:
      	       __mutex_lock+0x75/0x730
      	       mutex_lock_nested+0x1b/0x20
      	       iommu_report_device_fault+0xc2/0x170
      	       prq_event_thread+0x28a/0x580
      	       irq_thread_fn+0x28/0x60
      	       irq_thread+0xcf/0x180
      	       kthread+0x13b/0x160
      	       ret_from_fork+0x22/0x30
      
      	-> #0 (&param->lock){+.+.}-{3:3}:
      	       __lock_acquire+0x1134/0x1d60
      	       lock_acquire+0xc6/0x2e0
      	       __mutex_lock+0x75/0x730
      	       mutex_lock_nested+0x1b/0x20
      	       iopf_queue_flush_dev+0x29/0x60
      	       intel_svm_drain_prq+0x127/0x210
      	       intel_svm_unbind+0xc5/0x1e0
      	       iommu_sva_unbind_device+0x62/0x80
      	       idxd_cdev_release+0x15a/0x200 [idxd]
      	       __fput+0x9c/0x250
      	       ____fput+0xe/0x10
      	       task_work_run+0x64/0xa0
      	       exit_to_user_mode_prepare+0x227/0x230
      	       syscall_exit_to_user_mode+0x2c/0x60
      	       do_syscall_64+0x48/0x90
      	       entry_SYSCALL_64_after_hwframe+0x44/0xae
      
      	other info that might help us debug this:
      
      	Chain exists of:
      	  &param->lock --> &param->fault_param->lock --> pasid_mutex
      
      	 Possible unsafe locking scenario:
      
      	       CPU0                    CPU1
      	       ----                    ----
      	  lock(pasid_mutex);
      				       lock(&param->fault_param->lock);
      				       lock(pasid_mutex);
      	  lock(&param->lock);
      
      	 *** DEADLOCK ***
      
      	2 locks held by dsa_test/898:
      	 #0: ffff888100cc1cc0 (&group->mutex){+.+.}-{3:3}, at:
      	 iommu_sva_unbind_device+0x53/0x80
      	 #1: ffffffff82b2f7c8 (pasid_mutex){+.+.}-{3:3}, at:
      	 intel_svm_unbind+0x34/0x1e0
      
      	stack backtrace:
      	CPU: 2 PID: 898 Comm: dsa_test Not tainted 5.14.0-rc7+ #549
      	Hardware name: Intel Corporation Kabylake Client platform/KBL S
      	DDR4 UD IMM CRB, BIOS KBLSE2R1.R00.X050.P01.1608011715 08/01/2016
      	Call Trace:
      	 dump_stack_lvl+0x5b/0x74
      	 dump_stack+0x10/0x12
      	 print_circular_bug.cold+0x13d/0x142
      	 check_noncircular+0xf1/0x110
      	 __lock_acquire+0x1134/0x1d60
      	 lock_acquire+0xc6/0x2e0
      	 ? iopf_queue_flush_dev+0x29/0x60
      	 ? pci_mmcfg_read+0xde/0x240
      	 __mutex_lock+0x75/0x730
      	 ? iopf_queue_flush_dev+0x29/0x60
      	 ? pci_mmcfg_read+0xfd/0x240
      	 ? iopf_queue_flush_dev+0x29/0x60
      	 mutex_lock_nested+0x1b/0x20
      	 iopf_queue_flush_dev+0x29/0x60
      	 intel_svm_drain_prq+0x127/0x210
      	 ? intel_pasid_tear_down_entry+0x22e/0x240
      	 intel_svm_unbind+0xc5/0x1e0
      	 iommu_sva_unbind_device+0x62/0x80
      	 idxd_cdev_release+0x15a/0x200
      
      pasid_mutex protects pasid and svm data mapping data. It's unnecessary
      to hold pasid_mutex while flushing the workqueue. To fix the deadlock
      issue, unlock pasid_pasid during flushing the workqueue to allow the works
      to be handled.
      
      Fixes: d5b9e4bf ("iommu/vt-d: Report prq to io-pgfault framework")
      Reported-and-tested-by: default avatarDave Jiang <dave.jiang@intel.com>
      Signed-off-by: default avatarFenghua Yu <fenghua.yu@intel.com>
      Link: https://lore.kernel.org/r/20210826215918.4073446-1-fenghua.yu@intel.comSigned-off-by: default avatarLu Baolu <baolu.lu@linux.intel.com>
      Link: https://lore.kernel.org/r/20210828070622.2437559-3-baolu.lu@linux.intel.com
      [joro: Removed timing information from kernel log messages]
      Signed-off-by: default avatarJoerg Roedel <jroedel@suse.de>
      6ef05051
    • Fenghua Yu's avatar
      iommu/vt-d: Fix PASID leak in intel_svm_unbind_mm() · a21518cb
      Fenghua Yu authored
      The mm->pasid will be used in intel_svm_free_pasid() after load_pasid()
      during unbinding mm. Clearing it in load_pasid() will cause PASID cannot
      be freed in intel_svm_free_pasid().
      
      Additionally mm->pasid was updated already before load_pasid() during pasid
      allocation. No need to update it again in load_pasid() during binding mm.
      Don't update mm->pasid to avoid the issues in both binding mm and unbinding
      mm.
      
      Fixes: 40483774 ("iommu/vt-d: Use iommu_sva_alloc(free)_pasid() helpers")
      Reported-and-tested-by: default avatarDave Jiang <dave.jiang@intel.com>
      Co-developed-by: default avatarJacob Pan <jacob.jun.pan@linux.intel.com>
      Signed-off-by: default avatarJacob Pan <jacob.jun.pan@linux.intel.com>
      Signed-off-by: default avatarFenghua Yu <fenghua.yu@intel.com>
      Link: https://lore.kernel.org/r/20210826215918.4073446-1-fenghua.yu@intel.comSigned-off-by: default avatarLu Baolu <baolu.lu@linux.intel.com>
      Link: https://lore.kernel.org/r/20210828070622.2437559-2-baolu.lu@linux.intel.comSigned-off-by: default avatarJoerg Roedel <jroedel@suse.de>
      a21518cb
    • Suravee Suthikulpanit's avatar
      iommu/amd: Remove iommu_init_ga() · eb03f2d2
      Suravee Suthikulpanit authored
      Since the function has been simplified and only call iommu_init_ga_log(),
      remove the function and replace with iommu_init_ga_log() instead.
      Signed-off-by: default avatarSuravee Suthikulpanit <suravee.suthikulpanit@amd.com>
      Link: https://lore.kernel.org/r/20210820202957.187572-4-suravee.suthikulpanit@amd.com
      Fixes: 8bda0cfb ("iommu/amd: Detect and initialize guest vAPIC log")
      Signed-off-by: default avatarJoerg Roedel <jroedel@suse.de>
      eb03f2d2
    • Wei Huang's avatar
      iommu/amd: Relocate GAMSup check to early_enable_iommus · c3811a50
      Wei Huang authored
      Currently, iommu_init_ga() checks and disables IOMMU VAPIC support
      (i.e. AMD AVIC support in IOMMU) when GAMSup feature bit is not set.
      However it forgets to clear IRQ_POSTING_CAP from the previously set
      amd_iommu_irq_ops.capability.
      
      This triggers an invalid page fault bug during guest VM warm reboot
      if AVIC is enabled since the irq_remapping_cap(IRQ_POSTING_CAP) is
      incorrectly set, and crash the system with the following kernel trace.
      
          BUG: unable to handle page fault for address: 0000000000400dd8
          RIP: 0010:amd_iommu_deactivate_guest_mode+0x19/0xbc
          Call Trace:
           svm_set_pi_irte_mode+0x8a/0xc0 [kvm_amd]
           ? kvm_make_all_cpus_request_except+0x50/0x70 [kvm]
           kvm_request_apicv_update+0x10c/0x150 [kvm]
           svm_toggle_avic_for_irq_window+0x52/0x90 [kvm_amd]
           svm_enable_irq_window+0x26/0xa0 [kvm_amd]
           vcpu_enter_guest+0xbbe/0x1560 [kvm]
           ? avic_vcpu_load+0xd5/0x120 [kvm_amd]
           ? kvm_arch_vcpu_load+0x76/0x240 [kvm]
           ? svm_get_segment_base+0xa/0x10 [kvm_amd]
           kvm_arch_vcpu_ioctl_run+0x103/0x590 [kvm]
           kvm_vcpu_ioctl+0x22a/0x5d0 [kvm]
           __x64_sys_ioctl+0x84/0xc0
           do_syscall_64+0x33/0x40
           entry_SYSCALL_64_after_hwframe+0x44/0xae
      
      Fixes by moving the initializing of AMD IOMMU interrupt remapping mode
      (amd_iommu_guest_ir) earlier before setting up the
      amd_iommu_irq_ops.capability with appropriate IRQ_POSTING_CAP flag.
      
      [joro:	Squashed the two patches and limited
      	check_features_on_all_iommus() to CONFIG_IRQ_REMAP
      	to fix a compile warning.]
      Signed-off-by: default avatarWei Huang <wei.huang2@amd.com>
      Co-developed-by: default avatarSuravee Suthikulpanit <suravee.suthikulpanit@amd.com>
      Signed-off-by: default avatarSuravee Suthikulpanit <suravee.suthikulpanit@amd.com>
      Link: https://lore.kernel.org/r/20210820202957.187572-2-suravee.suthikulpanit@amd.com
      Link: https://lore.kernel.org/r/20210820202957.187572-3-suravee.suthikulpanit@amd.com
      Fixes: 8bda0cfb ("iommu/amd: Detect and initialize guest vAPIC log")
      Signed-off-by: default avatarJoerg Roedel <jroedel@suse.de>
      c3811a50
    • Helge Deller's avatar
      parisc: Mark sched_clock unstable only if clocks are not syncronized · d97180ad
      Helge Deller authored
      We check at runtime if the cr16 clocks are stable across CPUs. Only mark
      the sched_clock unstable by calling clear_sched_clock_stable() if we
      know that we run on a system which isn't syncronized across CPUs.
      Signed-off-by: default avatarHelge Deller <deller@gmx.de>
      d97180ad
    • Guenter Roeck's avatar
      parisc: Move pci_dev_is_behind_card_dino to where it is used · 907872ba
      Guenter Roeck authored
      parisc build test images fail to compile with the following error.
      
      drivers/parisc/dino.c:160:12: error:
      	'pci_dev_is_behind_card_dino' defined but not used
      
      Move the function just ahead of its only caller to avoid the error.
      
      Fixes: 5fa16591 ("parisc: Disable HP HSC-PCI Cards to prevent kernel crash")
      Cc: Helge Deller <deller@gmx.de>
      Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
      Signed-off-by: default avatarHelge Deller <deller@gmx.de>
      907872ba
    • Helge Deller's avatar
      parisc: Reduce sigreturn trampoline to 3 instructions · e4f2006f
      Helge Deller authored
      We can move the INSN_LDI_R20 instruction into the branch delay slot.
      Signed-off-by: default avatarHelge Deller <deller@gmx.de>
      e4f2006f