Skip to content
  1. Dec 05, 2022
  2. Dec 04, 2022
    • Linus Torvalds's avatar
      Merge tag 'i2c-for-6.1-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · c2bf05db
      Linus Torvalds authored
      Pull i2c fixes from Wolfram Sang:
       "A power state fix in the core for ACPI devices, a regression fix
        regarding bus recovery for the cadence driver, a DMA handling fix for
        the imx driver, and two error path fixes (npcm7xx and qcom-geni)"
      
      * tag 'i2c-for-6.1-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
        i2c: imx: Only DMA messages with I2C_M_DMA_SAFE flag set
        i2c: qcom-geni: fix error return code in geni_i2c_gpi_xfer
        i2c: cadence: Fix regression with bus recovery
        i2c: Restore initial power state if probe fails
        i2c: npcm7xx: Fix error handling in npcm_i2c_init()
      c2bf05db
    • Linus Torvalds's avatar
      Merge tag 'dax-fixes-6.1-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm · 6085bc95
      Linus Torvalds authored
      Pull dax fixes from Dan Williams:
       "A few bug fixes around the handling of "Soft Reserved" memory and
        memory tiering information.
      
        Linux is starting to enounter more real world systems that deploy an
        ACPI HMAT to describe different performance classes of memory, as well
        the "special purpose" (Linux "Soft Reserved") designation from EFI.
      
        These fixes result from that testing.
      
        It has all appeared in -next for a while with no known issues.
      
         - Fix duplicate overlapping device-dax instances for HMAT described
           "Soft Reserved" Memory
      
         - Fix missing node targets in the sysfs representation of memory
           tiers
      
         - Remove a confusing variable initialization"
      
      * tag 'dax-fixes-6.1-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm:
        device-dax: Fix duplicate 'hmem' device registration
        ACPI: HMAT: Fix initiator registration for single-initiator systems
        ACPI: HMAT: remove unnecessary variable initialization
      6085bc95
  3. Dec 03, 2022
    • Linus Torvalds's avatar
      Merge tag 'block-6.1-2022-12-02' of git://git.kernel.dk/linux · 97ee9d1c
      Linus Torvalds authored
      Pull block fixes from Jens Axboe:
       "Just a small NVMe merge for this week, fixing protection of the name
        space list, and a missing clear of a reserved field when unused"
      
      * tag 'block-6.1-2022-12-02' of git://git.kernel.dk/linux:
        nvme: fix SRCU protection of nvme_ns_head list
        nvme-pci: clear the prp2 field when not used
      97ee9d1c
    • Linus Torvalds's avatar
      Merge tag 'pinctrl-v6.1-5' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl · 63050a5c
      Linus Torvalds authored
      Pull pin control fixes from Linus Walleij:
       "Three driver fixes. The Intel fix looks like the most important.
      
         - Fix a potential divide by zero in pinctrl-singe (OMAP and
           HiSilicon)
      
         - Disable IRQs on startup in the Mediatek driver. This is a classic,
           we should be looking out for this more.
      
         - Save and restore pins in 'direct IRQ' mode in the Intel driver,
           this works around firmware bugs"
      
      * tag 'pinctrl-v6.1-5' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl:
        pinctrl: intel: Save and restore pins in "direct IRQ" mode
        pinctrl: meditatek: Startup with the IRQs disabled
        pinctrl: single: Fix potential division by zero
      63050a5c
    • Linus Torvalds's avatar
      Merge tag 'riscv-for-linus-6.1-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux · 0e15c3c7
      Linus Torvalds authored
      Pull RISC-V fixes from Palmer Dabbelt:
      
       - build fix for the NR_CPUS Kconfig SBI version dependency
      
       - fixes to early memory initialization, to fix page permissions in EFI
         and post-initmem-free
      
       - build fix for the VDSO, to avoid trying to profile the VDSO functions
      
       - fixes for kexec crash handling, to fix multi-core and interrupt
         related initialization inside the crash kernel
      
       - fix for a race condition when handling multiple concurrect kernel
         stack overflows
      
      * tag 'riscv-for-linus-6.1-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux:
        riscv: kexec: Fixup crash_smp_send_stop without multi cores
        riscv: kexec: Fixup irq controller broken in kexec crash path
        riscv: mm: Proper page permissions after initmem free
        riscv: vdso: fix section overlapping under some conditions
        riscv: fix race when vmap stack overflow
        riscv: Sync efi page table's kernel mappings before switching
        riscv: Fix NR_CPUS range conditions
      0e15c3c7
    • Linus Torvalds's avatar
      Merge tag 'mmc-v6.1-rc5-2' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc · 2df2adc3
      Linus Torvalds authored
      Pull MMC fixes from Ulf Hansson:
       "MMC core:
         - Fix ambiguous TRIM and DISCARD args
         - Fix removal of debugfs file for mmc_test
      
        MMC host:
         - mtk-sd: Add missing clk_disable_unprepare() in an error path
         - sdhci: Fix I/O voltage switch delay for UHS-I SD cards
         - sdhci-esdhc-imx: Fix CQHCI exit halt state check
         - sdhci-sprd: Fix voltage switch"
      
      * tag 'mmc-v6.1-rc5-2' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc:
        mmc: sdhci-sprd: Fix no reset data and command after voltage switch
        mmc: sdhci: Fix voltage switch delay
        mmc: mtk-sd: Fix missing clk_disable_unprepare in msdc_of_clock_parse()
        mmc: mmc_test: Fix removal of debugfs file
        mmc: sdhci-esdhc-imx: correct CQHCI exit halt state check
        mmc: core: Fix ambiguous TRIM and DISCARD arg
      2df2adc3
    • Linus Torvalds's avatar
      Merge tag 'iommu-fixes-v6.1-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu · f66f62f8
      Linus Torvalds authored
      Pull iommu fixes from Joerg Roedel:
       "Intel VT-d fixes:
      
         - IO/TLB flush fix
      
         - Various pci_dev refcount fixes"
      
      * tag 'iommu-fixes-v6.1-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu:
        iommu/vt-d: Fix PCI device refcount leak in dmar_dev_scope_init()
        iommu/vt-d: Fix PCI device refcount leak in has_external_pci()
        iommu/vt-d: Fix PCI device refcount leak in prq_event_thread()
        iommu/vt-d: Add a fix for devices need extra dtlb flush
      f66f62f8
    • Pawan Gupta's avatar
      x86/bugs: Make sure MSR_SPEC_CTRL is updated properly upon resume from S3 · 66065157
      Pawan Gupta authored
      The "force" argument to write_spec_ctrl_current() is currently ambiguous
      as it does not guarantee the MSR write. This is due to the optimization
      that writes to the MSR happen only when the new value differs from the
      cached value.
      
      This is fine in most cases, but breaks for S3 resume when the cached MSR
      value gets out of sync with the hardware MSR value due to S3 resetting
      it.
      
      When x86_spec_ctrl_current is same as x86_spec_ctrl_base, the MSR write
      is skipped. Which results in SPEC_CTRL mitigations not getting restored.
      
      Move the MSR write from write_spec_ctrl_current() to a new function that
      unconditionally writes to the MSR. Update the callers accordingly and
      rename functions.
      
        [ bp: Rework a bit. ]
      
      Fixes: caa0ff24
      
       ("x86/bugs: Keep a per-CPU IA32_SPEC_CTRL value")
      Suggested-by: default avatarBorislav Petkov <bp@alien8.de>
      Signed-off-by: default avatarPawan Gupta <pawan.kumar.gupta@linux.intel.com>
      Signed-off-by: default avatarBorislav Petkov (AMD) <bp@alien8.de>
      Reviewed-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Cc: <stable@kernel.org>
      Link: https://lore.kernel.org/r/806d39b0bfec2fe8f50dc5446dff20f5bb24a959.1669821572.git.pawan.kumar.gupta@linux.intel.com
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      66065157
    • Zhang Xiaoxu's avatar
      Input: raydium_ts_i2c - fix memory leak in raydium_i2c_send() · 8c9a5993
      Zhang Xiaoxu authored
      There is a kmemleak when test the raydium_i2c_ts with bpf mock device:
      
        unreferenced object 0xffff88812d3675a0 (size 8):
          comm "python3", pid 349, jiffies 4294741067 (age 95.695s)
          hex dump (first 8 bytes):
            11 0e 10 c0 01 00 04 00                          ........
          backtrace:
            [<0000000068427125>] __kmalloc+0x46/0x1b0
            [<0000000090180f91>] raydium_i2c_send+0xd4/0x2bf [raydium_i2c_ts]
            [<000000006e631aee>] raydium_i2c_initialize.cold+0xbc/0x3e4 [raydium_i2c_ts]
            [<00000000dc6fcf38>] raydium_i2c_probe+0x3cd/0x6bc [raydium_i2c_ts]
            [<00000000a310de16>] i2c_device_probe+0x651/0x680
            [<00000000f5a96bf3>] really_probe+0x17c/0x3f0
            [<00000000096ba499>] __driver_probe_device+0xe3/0x170
            [<00000000c5acb4d9>] driver_probe_device+0x49/0x120
            [<00000000264fe082>] __device_attach_driver+0xf7/0x150
            [<00000000f919423c>] bus_for_each_drv+0x114/0x180
            [<00000000e067feca>] __device_attach+0x1e5/0x2d0
            [<0000000054301fc2>] bus_probe_device+0x126/0x140
            [<00000000aad93b22>] device_add+0x810/0x1130
            [<00000000c086a53f>] i2c_new_client_device+0x352/0x4e0
            [<000000003c2c248c>] of_i2c_register_device+0xf1/0x110
            [<00000000ffec4177>] of_i2c_notify+0x100/0x160
        unreferenced object 0xffff88812d3675c8 (size 8):
          comm "python3", pid 349, jiffies 4294741070 (age 95.692s)
          hex dump (first 8 bytes):
            22 00 36 2d 81 88 ff ff                          ".6-....
          backtrace:
            [<0000000068427125>] __kmalloc+0x46/0x1b0
            [<0000000090180f91>] raydium_i2c_send+0xd4/0x2bf [raydium_i2c_ts]
            [<000000001d5c9620>] raydium_i2c_initialize.cold+0x223/0x3e4 [raydium_i2c_ts]
            [<00000000dc6fcf38>] raydium_i2c_probe+0x3cd/0x6bc [raydium_i2c_ts]
            [<00000000a310de16>] i2c_device_probe+0x651/0x680
            [<00000000f5a96bf3>] really_probe+0x17c/0x3f0
            [<00000000096ba499>] __driver_probe_device+0xe3/0x170
            [<00000000c5acb4d9>] driver_probe_device+0x49/0x120
            [<00000000264fe082>] __device_attach_driver+0xf7/0x150
            [<00000000f919423c>] bus_for_each_drv+0x114/0x180
            [<00000000e067feca>] __device_attach+0x1e5/0x2d0
            [<0000000054301fc2>] bus_probe_device+0x126/0x140
            [<00000000aad93b22>] device_add+0x810/0x1130
            [<00000000c086a53f>] i2c_new_client_device+0x352/0x4e0
            [<000000003c2c248c>] of_i2c_register_device+0xf1/0x110
            [<00000000ffec4177>] of_i2c_notify+0x100/0x160
      
      After BANK_SWITCH command from i2c BUS, no matter success or error
      happened, the tx_buf should be freed.
      
      Fixes: 3b384bd6
      
       ("Input: raydium_ts_i2c - do not split tx transactions")
      Signed-off-by: default avatarZhang Xiaoxu <zhangxiaoxu5@huawei.com>
      Link: https://lore.kernel.org/r/20221202103412.2120169-1-zhangxiaoxu5@huawei.com
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      8c9a5993
    • Linus Torvalds's avatar
      Merge tag 'sound-6.1-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · a1e9185d
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "Likely the last piece for 6.1; the only significant fixes are ASoC
        core ops fixes, while others are device-specific (rather minor) fixes
        in ASoC and FireWire drivers.
      
        All appear safe enough to take as a late stage material"
      
      * tag 'sound-6.1-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: dice: fix regression for Lexicon I-ONIX FW810S
        ASoC: cs42l51: Correct PGA Volume minimum value
        ASoC: ops: Correct bounds check for second channel on SX controls
        ASoC: tlv320adc3xxx: Fix build error for implicit function declaration
        ASoC: ops: Check bounds for second channel in snd_soc_put_volsw_sx()
        ASoC: ops: Fix bounds check for _sx controls
        ASoC: fsl_micfil: explicitly clear CHnF flags
        ASoC: fsl_micfil: explicitly clear software reset bit
      a1e9185d
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-2022-12-02' of git://anongit.freedesktop.org/drm/drm · c290db01
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Things do seem to have finally settled down, just four i915 and one
        amdgpu this week. Probably won't have much for next week if you do
        push rc8 out.
      
        i915:
         - Fix dram info readout
         - Remove non-existent pipes from bigjoiner pipe mask
         - Fix negative value passed as remaining time
         - Never return 0 if not all requests retired
      
        amdgpu:
         - VCN fix for vangogh"
      
      * tag 'drm-fixes-2022-12-02' of git://anongit.freedesktop.org/drm/drm:
        drm/amdgpu: enable Vangogh VCN indirect sram mode
        drm/i915: Never return 0 if not all requests retired
        drm/i915: Fix negative value passed as remaining time
        drm/i915: Remove non-existent pipes from bigjoiner pipe mask
        drm/i915/mtl: Fix dram info readout
      c290db01
    • Linus Torvalds's avatar
      Merge tag 'mm-hotfixes-stable-2022-12-02' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm · bdaa78c6
      Linus Torvalds authored
      Pull misc hotfixes from Andrew Morton:
       "15 hotfixes,  11 marked cc:stable.
      
        Only three or four of the latter address post-6.0 issues, which is
        hopefully a sign that things are converging"
      
      * tag 'mm-hotfixes-stable-2022-12-02' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm:
        revert "kbuild: fix -Wimplicit-function-declaration in license_is_gpl_compatible"
        Kconfig.debug: provide a little extra FRAME_WARN leeway when KASAN is enabled
        drm/amdgpu: temporarily disable broken Clang builds due to blown stack-frame
        mm/khugepaged: invoke MMU notifiers in shmem/file collapse paths
        mm/khugepaged: fix GUP-fast interaction by sending IPI
        mm/khugepaged: take the right locks for page table retraction
        mm: migrate: fix THP's mapcount on isolation
        mm: introduce arch_has_hw_nonleaf_pmd_young()
        mm: add dummy pmd_young() for architectures not having it
        mm/damon/sysfs: fix wrong empty schemes assumption under online tuning in damon_sysfs_set_schemes()
        tools/vm/slabinfo-gnuplot: use "grep -E" instead of "egrep"
        nilfs2: fix NULL pointer dereference in nilfs_palloc_commit_free_entry()
        hugetlb: don't delete vma_lock in hugetlb MADV_DONTNEED processing
        madvise: use zap_page_range_single for madvise dontneed
        mm: replace VM_WARN_ON to pr_warn if the node is offline with __GFP_THISNODE
      bdaa78c6
    • Linus Torvalds's avatar
      v4l2: don't fall back to follow_pfn() if pin_user_pages_fast() fails · 6647e76a
      Linus Torvalds authored
      
      
      The V4L2_MEMORY_USERPTR interface is long deprecated and shouldn't be
      used (and is discouraged for any modern v4l drivers).  And Seth Jenkins
      points out that the fallback to VM_PFNMAP/VM_IO is fundamentally racy
      and dangerous.
      
      Note that it's not even a case that should trigger, since any normal
      user pointer logic ends up just using the pin_user_pages_fast() call
      that does the proper page reference counting.  That's not the problem
      case, only if you try to use special device mappings do you have any
      issues.
      
      Normally I'd just remove this during the merge window, but since Seth
      pointed out the problem cases, we really want to know as soon as
      possible if there are actually any users of this odd special case of a
      legacy interface.  Neither Hans nor Mauro seem to think that such
      mis-uses of the old legacy interface should exist.  As Mauro says:
      
       "See, V4L2 has actually 4 streaming APIs:
              - Kernel-allocated mmap (usually referred simply as just mmap);
              - USERPTR mmap;
              - read();
              - dmabuf;
      
        The USERPTR is one of the oldest way to use it, coming from V4L
        version 1 times, and by far the least used one"
      
      And Hans chimed in on the USERPTR interface:
      
       "To be honest, I wouldn't mind if it goes away completely, but that's a
        bit of a pipe dream right now"
      
      but while removing this legacy interface entirely may be a pipe dream we
      can at least try to remove the unlikely (and actively broken) case of
      using special device mappings for USERPTR accesses.
      
      This replaces it with a WARN_ONCE() that we can remove once we've
      hopefully confirmed that no actual users exist.
      
      NOTE! Longer term, this means that a 'struct frame_vector' only ever
      contains proper page pointers, and all the games we have with converting
      them to pages can go away (grep for 'frame_vector_to_pages()' and the
      uses of 'vec->is_pfns').  But this is just the first step, to verify
      that this code really is all dead, and do so as quickly as possible.
      
      Reported-by: default avatarSeth Jenkins <sethjenkins@google.com>
      Acked-by: default avatarHans Verkuil <hverkuil@xs4all.nl>
      Acked-by: default avatarMauro Carvalho Chehab <mchehab@kernel.org>
      Cc: David Hildenbrand <david@redhat.com>
      Cc: Jan Kara <jack@suse.cz>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      6647e76a
  4. Dec 02, 2022
    • Jens Axboe's avatar
      Merge tag 'nvme-6.1-2022-01-02' of git://git.infradead.org/nvme into block-6.1 · d0f411c0
      Jens Axboe authored
      Pull NVMe fixes from Christoph:
      
      "nvme fixes for Linux 6.1
      
       - fix SRCU protection of nvme_ns_head list (Caleb Sander)
       - clear the prp2 field when not used (Lei Rao)"
      
      * tag 'nvme-6.1-2022-01-02' of git://git.infradead.org/nvme:
        nvme: fix SRCU protection of nvme_ns_head list
        nvme-pci: clear the prp2 field when not used
      d0f411c0
    • Xiongfeng Wang's avatar
      iommu/vt-d: Fix PCI device refcount leak in dmar_dev_scope_init() · 4bedbbd7
      Xiongfeng Wang authored
      for_each_pci_dev() is implemented by pci_get_device(). The comment of
      pci_get_device() says that it will increase the reference count for the
      returned pci_dev and also decrease the reference count for the input
      pci_dev @from if it is not NULL.
      
      If we break for_each_pci_dev() loop with pdev not NULL, we need to call
      pci_dev_put() to decrease the reference count. Add the missing
      pci_dev_put() for the error path to avoid reference count leak.
      
      Fixes: 2e455289
      
       ("iommu/vt-d: Unify the way to process DMAR device scope array")
      Signed-off-by: default avatarXiongfeng Wang <wangxiongfeng2@huawei.com>
      Link: https://lore.kernel.org/r/20221121113649.190393-3-wangxiongfeng2@huawei.com
      Signed-off-by: default avatarLu Baolu <baolu.lu@linux.intel.com>
      Signed-off-by: default avatarJoerg Roedel <jroedel@suse.de>
      4bedbbd7
    • Xiongfeng Wang's avatar
      iommu/vt-d: Fix PCI device refcount leak in has_external_pci() · afca9e19
      Xiongfeng Wang authored
      for_each_pci_dev() is implemented by pci_get_device(). The comment of
      pci_get_device() says that it will increase the reference count for the
      returned pci_dev and also decrease the reference count for the input
      pci_dev @from if it is not NULL.
      
      If we break for_each_pci_dev() loop with pdev not NULL, we need to call
      pci_dev_put() to decrease the reference count. Add the missing
      pci_dev_put() before 'return true' to avoid reference count leak.
      
      Fixes: 89a6079d
      
       ("iommu/vt-d: Force IOMMU on for platform opt in hint")
      Signed-off-by: default avatarXiongfeng Wang <wangxiongfeng2@huawei.com>
      Link: https://lore.kernel.org/r/20221121113649.190393-2-wangxiongfeng2@huawei.com
      Signed-off-by: default avatarLu Baolu <baolu.lu@linux.intel.com>
      Signed-off-by: default avatarJoerg Roedel <jroedel@suse.de>
      afca9e19
    • Yang Yingliang's avatar
      iommu/vt-d: Fix PCI device refcount leak in prq_event_thread() · 6927d352
      Yang Yingliang authored
      As comment of pci_get_domain_bus_and_slot() says, it returns a pci device
      with refcount increment, when finish using it, the caller must decrease
      the reference count by calling pci_dev_put(). So call pci_dev_put() after
      using the 'pdev' to avoid refcount leak.
      
      Besides, if the 'pdev' is null or intel_svm_prq_report() returns error,
      there is no need to trace this fault.
      
      Fixes: 06f4b8d0
      
       ("iommu/vt-d: Remove unnecessary SVA data accesses in page fault path")
      Suggested-by: default avatarLu Baolu <baolu.lu@linux.intel.com>
      Signed-off-by: default avatarYang Yingliang <yangyingliang@huawei.com>
      Link: https://lore.kernel.org/r/20221119144028.2452731-1-yangyingliang@huawei.com
      Signed-off-by: default avatarLu Baolu <baolu.lu@linux.intel.com>
      Signed-off-by: default avatarJoerg Roedel <jroedel@suse.de>
      6927d352
    • Jacob Pan's avatar
      iommu/vt-d: Add a fix for devices need extra dtlb flush · e65a6897
      Jacob Pan authored
      
      
      QAT devices on Intel Sapphire Rapids and Emerald Rapids have a defect in
      address translation service (ATS). These devices may inadvertently issue
      ATS invalidation completion before posted writes initiated with
      translated address that utilized translations matching the invalidation
      address range, violating the invalidation completion ordering.
      
      This patch adds an extra device TLB invalidation for the affected devices,
      it is needed to ensure no more posted writes with translated address
      following the invalidation completion. Therefore, the ordering is
      preserved and data-corruption is prevented.
      
      Device TLBs are invalidated under the following six conditions:
      1. Device driver does DMA API unmap IOVA
      2. Device driver unbind a PASID from a process, sva_unbind_device()
      3. PASID is torn down, after PASID cache is flushed. e.g. process
      exit_mmap() due to crash
      4. Under SVA usage, called by mmu_notifier.invalidate_range() where
      VM has to free pages that were unmapped
      5. userspace driver unmaps a DMA buffer
      6. Cache invalidation in vSVA usage (upcoming)
      
      For #1 and #2, device drivers are responsible for stopping DMA traffic
      before unmap/unbind. For #3, iommu driver gets mmu_notifier to
      invalidate TLB the same way as normal user unmap which will do an extra
      invalidation. The dTLB invalidation after PASID cache flush does not
      need an extra invalidation.
      
      Therefore, we only need to deal with #4 and #5 in this patch. #1 is also
      covered by this patch due to common code path with #5.
      
      Tested-by: default avatarYuzhang Luo <yuzhang.luo@intel.com>
      Reviewed-by: default avatarAshok Raj <ashok.raj@intel.com>
      Reviewed-by: default avatarKevin Tian <kevin.tian@intel.com>
      Signed-off-by: default avatarJacob Pan <jacob.jun.pan@linux.intel.com>
      Link: https://lore.kernel.org/r/20221130062449.1360063-1-jacob.jun.pan@linux.intel.com
      Signed-off-by: default avatarLu Baolu <baolu.lu@linux.intel.com>
      Signed-off-by: default avatarJoerg Roedel <jroedel@suse.de>
      e65a6897
    • Dave Airlie's avatar
      Merge tag 'amd-drm-fixes-6.1-2022-12-01' of... · c082fbd6
      Dave Airlie authored
      
      Merge tag 'amd-drm-fixes-6.1-2022-12-01' of https://gitlab.freedesktop.org/agd5f/linux into drm-fixes
      
      amd-drm-fixes-6.1-2022-12-01:
      
      amdgpu:
      - VCN fix for vangogh
      
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      From: Alex Deucher <alexander.deucher@amd.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20221201202015.5931-1-alexander.deucher@amd.com
      c082fbd6
    • Andrew Lunn's avatar
      i2c: imx: Only DMA messages with I2C_M_DMA_SAFE flag set · d36678f7
      Andrew Lunn authored
      Recent changes to the DMA code has resulting in the IMX driver failing
      I2C transfers when the buffer has been vmalloc. Only perform DMA
      transfers if the message has the I2C_M_DMA_SAFE flag set, indicating
      the client is providing a buffer which is DMA safe.
      
      This is a minimal fix for stable. The I2C core provides helpers to
      allocate a bounce buffer. For a fuller fix the master should make use
      of these helpers.
      
      Fixes: 4544b9f2
      
       ("dma-mapping: Add vmap checks to dma_map_single()")
      Signed-off-by: default avatarAndrew Lunn <andrew@lunn.ch>
      Acked-by: default avatarOleksij Rempel <o.rempel@pengutronix.de>
      Signed-off-by: default avatarWolfram Sang <wsa@kernel.org>
      d36678f7
    • Wang Yufen's avatar
      i2c: qcom-geni: fix error return code in geni_i2c_gpi_xfer · 7d8ccf4f
      Wang Yufen authored
      Fix to return a negative error code from the gi2c->err instead of
      0.
      
      Fixes: d8703554
      
       ("i2c: qcom-geni: Add support for GPI DMA")
      Signed-off-by: default avatarWang Yufen <wangyufen@huawei.com>
      Reviewed-by: default avatarTommaso Merciai <tommaso.merciai@amarulasoluitons.com>
      Signed-off-by: default avatarWolfram Sang <wsa@kernel.org>
      7d8ccf4f
    • Carsten Haitzler's avatar
      i2c: cadence: Fix regression with bus recovery · 8bfd4ec7
      Carsten Haitzler authored
      Commit "i2c: cadence: Add standard bus recovery support" breaks for i2c
      devices that have no pinctrl defined. There is no requirement for this
      to exist in the DT. This has worked perfectly well without this before in
      at least 1 real usage case on hardware (Mali Komeda DPU, Cadence i2c to
      talk to a tda99xx phy). Adding the requirement to have pinctrl set up in
      the device tree (or otherwise be found) is a regression where the whole
      i2c device is lost entirely (in this case dropping entire devices which
      then leads to the drm display stack unable to find the phy for display
      output, thus having no drm display device and so on down the chain).
      
      This converts the above commit to an enhancement if pinctrl can be found
      for the i2c device, providing a timeout on read with recovery, but if not,
      do what used to be done rather than a fatal loss of a device.
      
      This restores the mentioned display devices to their working state again.
      
      Fixes: 58b92424
      
       ("i2c: cadence: Add standard bus recovery support")
      Signed-off-by: default avatarCarsten Haitzler <carsten.haitzler@arm.com>
      Reviewed-by: default avatarShubhrajyoti Datta <shubhrajyoti.datta@amd.com>
      Reviewed-by: default avatarMichael Grzeschik <m.grzeschik@pengutronix.de>
      Acked-by: default avatarMichal Simek <michal.simek@amd.com>
      [wsa: added braces to else-branch]
      Signed-off-by: default avatarWolfram Sang <wsa@kernel.org>
      8bfd4ec7
    • Dave Airlie's avatar
      Merge tag 'drm-intel-fixes-2022-12-01' of... · 65a38825
      Dave Airlie authored
      
      Merge tag 'drm-intel-fixes-2022-12-01' of git://anongit.freedesktop.org/drm/drm-intel into drm-fixes
      
      - Fix dram info readout (Radhakrishna Sripada)
      - Remove non-existent pipes from bigjoiner pipe mask (Ville Syrjälä)
      - Fix negative value passed as remaining time (Janusz Krzysztofik)
      - Never return 0 if not all requests retired (Janusz Krzysztofik)
      
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      From: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/Y4hp+a3TJ13t2ZA1@tursulin-desk
      65a38825
    • Steven Rostedt (Google)'s avatar
      error-injection: Add prompt for function error injection · a4412fdd
      Steven Rostedt (Google) authored
      The config to be able to inject error codes into any function annotated
      with ALLOW_ERROR_INJECTION() is enabled when FUNCTION_ERROR_INJECTION is
      enabled.  But unfortunately, this is always enabled on x86 when KPROBES
      is enabled, and there's no way to turn it off.
      
      As kprobes is useful for observability of the kernel, it is useful to
      have it enabled in production environments.  But error injection should
      be avoided.  Add a prompt to the config to allow it to be disabled even
      when kprobes is enabled, and get rid of the "def_bool y".
      
      This is a kernel debug feature (it's in Kconfig.debug), and should have
      never been something enabled by default.
      
      Cc: stable@vger.kernel.org
      Fixes: 540adea3
      
       ("error-injection: Separate error-injection from kprobe")
      Signed-off-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      a4412fdd
    • Leo Liu's avatar
      drm/amdgpu: enable Vangogh VCN indirect sram mode · 9a8cc8ca
      Leo Liu authored
      So that uses PSP to initialize HW.
      
      Fixes: 0c2c02b6
      
       ("drm/amdgpu/vcn: add firmware support for dimgrey_cavefish")
      Signed-off-by: default avatarLeo Liu <leo.liu@amd.com>
      Reviewed-by: default avatarJames Zhu <James.Zhu@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Cc: stable@vger.kernel.org
      9a8cc8ca
    • Palmer Dabbelt's avatar
      RISC-V: Fix a race condition during kernel stack overflow · 39cefc5f
      Palmer Dabbelt authored
      This fixes a concrete bug but is also the basis for some cleanup work,
      so I'm merging it based on the offending commit in order to minimize
      future conflicts.
      
      * commit '7e186433':
        riscv: fix race when vmap stack overflow
      39cefc5f
    • Linus Torvalds's avatar
      Merge tag 'efi-fixes-for-v6.1-4' of git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi · 355479c7
      Linus Torvalds authored
      Pull EFI fix from Ard Biesheuvel:
       "A single revert for some code that I added during this cycle. The code
        is not wrong, but it should be a bit more careful about how to handle
        the shadow call stack pointer, so it is better to revert it for now
        and bring it back later in improved form.
      
        Summary:
      
         - Revert runtime service sync exception recovery on arm64"
      
      * tag 'efi-fixes-for-v6.1-4' of git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi:
        arm64: efi: Revert "Recover from synchronous exceptions ..."
      355479c7
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-v6.1-rc8' of... · e214dd93
      Linus Torvalds authored
      Merge tag 'hwmon-for-v6.1-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
      
      Pull hwmon fixes from Guenter Roeck:
      
       - Fix refcount leak and NULL pointer access in coretemp driver
      
       - Fix UAF in ibmpex driver
      
       - Add missing pci_disable_device() to i5500_temp driver
      
       - Fix calculation in ina3221 driver
      
       - Fix temperature scaling in ltc2947 driver
      
       - Check result of devm_kcalloc call in asus-ec-sensors driver
      
      * tag 'hwmon-for-v6.1-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
        hwmon: (asus-ec-sensors) Add checks for devm_kcalloc
        hwmon: (coretemp) fix pci device refcount leak in nv1a_ram_new()
        hwmon: (coretemp) Check for null before removing sysfs attrs
        hwmon: (ibmpex) Fix possible UAF when ibmpex_register_bmc() fails
        hwmon: (i5500_temp) fix missing pci_disable_device()
        hwmon: (ina3221) Fix shunt sum critical calculation
        hwmon: (ltc2947) fix temperature scaling
      e214dd93
    • Yuan Can's avatar
      hwmon: (asus-ec-sensors) Add checks for devm_kcalloc · 9bdc112b
      Yuan Can authored
      As the devm_kcalloc may return NULL, the return value needs to be checked
      to avoid NULL poineter dereference.
      
      Fixes: d0ddfd24
      
       ("hwmon: (asus-ec-sensors) add driver for ASUS EC")
      Signed-off-by: default avatarYuan Can <yuancan@huawei.com>
      Link: https://lore.kernel.org/r/20221125014329.121560-1-yuancan@huawei.com
      Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
      9bdc112b
    • Yang Yingliang's avatar
      hwmon: (coretemp) fix pci device refcount leak in nv1a_ram_new() · 7dec1453
      Yang Yingliang authored
      As comment of pci_get_domain_bus_and_slot() says, it returns
      a pci device with refcount increment, when finish using it,
      the caller must decrement the reference count by calling
      pci_dev_put(). So call it after using to avoid refcount leak.
      
      Fixes: 14513ee6
      
       ("hwmon: (coretemp) Use PCI host bridge ID to identify CPU if necessary")
      Signed-off-by: default avatarYang Yingliang <yangyingliang@huawei.com>
      Link: https://lore.kernel.org/r/20221118093303.214163-1-yangyingliang@huawei.com
      Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
      7dec1453
    • Phil Auld's avatar
      hwmon: (coretemp) Check for null before removing sysfs attrs · a89ff5f5
      Phil Auld authored
      
      
      If coretemp_add_core() gets an error then pdata->core_data[indx]
      is already NULL and has been kfreed. Don't pass that to
      sysfs_remove_group() as that will crash in sysfs_remove_group().
      
      [Shortened for readability]
      [91854.020159] sysfs: cannot create duplicate filename '/devices/platform/coretemp.0/hwmon/hwmon2/temp20_label'
      <cpu offline>
      [91855.126115] BUG: kernel NULL pointer dereference, address: 0000000000000188
      [91855.165103] #PF: supervisor read access in kernel mode
      [91855.194506] #PF: error_code(0x0000) - not-present page
      [91855.224445] PGD 0 P4D 0
      [91855.238508] Oops: 0000 [#1] PREEMPT SMP PTI
      ...
      [91855.342716] RIP: 0010:sysfs_remove_group+0xc/0x80
      ...
      [91855.796571] Call Trace:
      [91855.810524]  coretemp_cpu_offline+0x12b/0x1dd [coretemp]
      [91855.841738]  ? coretemp_cpu_online+0x180/0x180 [coretemp]
      [91855.871107]  cpuhp_invoke_callback+0x105/0x4b0
      [91855.893432]  cpuhp_thread_fun+0x8e/0x150
      ...
      
      Fix this by checking for NULL first.
      
      Signed-off-by: default avatarPhil Auld <pauld@redhat.com>
      Cc: linux-hwmon@vger.kernel.org
      Cc: Fenghua Yu <fenghua.yu@intel.com>
      Cc: Jean Delvare <jdelvare@suse.com>
      Cc: Guenter Roeck <linux@roeck-us.net>
      Link: https://lore.kernel.org/r/20221117162313.3164803-1-pauld@redhat.com
      Fixes: 199e0de7
      
       ("hwmon: (coretemp) Merge pkgtemp with coretemp")
      Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
      a89ff5f5
  5. Dec 01, 2022
    • Ard Biesheuvel's avatar
      arm64: efi: Revert "Recover from synchronous exceptions ..." · 7572ac3c
      Ard Biesheuvel authored
      This reverts commit 23715a26
      
      , which introduced some code in
      assembler that manipulates both the ordinary and the shadow call stack
      pointer in a way that could potentially be taken advantage of. So let's
      revert it, and do a better job the next time around.
      
      Signed-off-by: default avatarArd Biesheuvel <ardb@kernel.org>
      7572ac3c
    • Conor Dooley's avatar
      Revert "clocksource/drivers/riscv: Events are stopped during CPU suspend" · d9f15a9d
      Conor Dooley authored
      This reverts commit 232ccac1.
      
      On the subject of suspend, the RISC-V SBI spec states:
      
        This does not cover whether any given events actually reach the hart or
        not, just what the hart will do if it receives an event. On PolarFire
        SoC, and potentially other SiFive based implementations, events from the
        RISC-V timer do reach a hart during suspend. This is not the case for the
        implementation on the Allwinner D1 - there timer events are not received
        during suspend.
      
      To fix this, the CLOCK_EVT_FEAT_C3STOP (mis)feature was enabled for the
      timer driver - but this has broken both RCU stall detection and timers
      generally on PolarFire SoC and potentially other SiFive based
      implementations.
      
      If an AXI read to the PCIe controller on PolarFire SoC times out, the
      system will stall, however, with CLOCK_EVT_FEAT_C3STOP active, the system
      just locks up without RCU stalling:
      
      	io scheduler mq-deadline registered
      	io scheduler kyber registered
      	microchip-pcie 2000000000.pcie: host bridge /soc/pcie@2000000000 ranges:
      	microchip-pcie 2000000000.pcie:      MEM 0x2008000000..0x2087ffffff -> 0x0008000000
      	microchip-pcie 2000000000.pcie: sec error in pcie2axi buffer
      	microchip-pcie 2000000000.pcie: ded error in pcie2axi buffer
      	microchip-pcie 2000000000.pcie: axi read request error
      	microchip-pcie 2000000000.pcie: axi read timeout
      	microchip-pcie 2000000000.pcie: sec error in pcie2axi buffer
      	microchip-pcie 2000000000.pcie: ded error in pcie2axi buffer
      	microchip-pcie 2000000000.pcie: sec error in pcie2axi buffer
      	microchip-pcie 2000000000.pcie: ded error in pcie2axi buffer
      	microchip-pcie 2000000000.pcie: sec error in pcie2axi buffer
      	microchip-pcie 2000000000.pcie: ded error in pcie2axi buffer
      	Freeing initrd memory: 7332K
      
      Similarly issues were reported with clock_nanosleep() - with a test app
      that sleeps each cpu for 6, 5, 4, 3 ms respectively, HZ=250 & the blamed
      commit in place, the sleep times are rounded up to the next jiffy:
      
      == CPU: 1 ==      == CPU: 2 ==      == CPU: 3 ==      == CPU: 4 ==
      Mean: 7.974992    Mean: 7.976534    Mean: 7.962591    Mean: 3.952179
      Std Dev: 0.154374 Std Dev: 0.156082 Std Dev: 0.171018 Std Dev: 0.076193
      Hi: 9.472000      Hi: 10.495000     Hi: 8.864000      Hi: 4.736000
      Lo: 6.087000      Lo: 6.380000      Lo: 4.872000      Lo: 3.403000
      Samples: 521      Samples: 521      Samples: 521      Samples: 521
      
      Fortunately, the D1 has a second timer, which is "currently used in
      preference to the RISC-V/SBI timer driver" so a revert here does not
      hurt operation of D1 in its current form.
      
      Ultimately, a DeviceTree property (or node) will be added to encode the
      behaviour of the timers, but until then revert the addition of
      CLOCK_EVT_FEAT_C3STOP.
      
      Fixes: 232ccac1
      
       ("clocksource/drivers/riscv: Events are stopped during CPU suspend")
      Signed-off-by: default avatarConor Dooley <conor.dooley@microchip.com>
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Reviewed-by: default avatarPalmer Dabbelt <palmer@rivosinc.com>
      Acked-by: default avatarPalmer Dabbelt <palmer@rivosinc.com>
      Acked-by: default avatarSamuel Holland <samuel@sholland.org>
      Link: https://lore.kernel.org/linux-riscv/YzYTNQRxLr7Q9JR0@spud/
      Link: https://github.com/riscv-non-isa/riscv-sbi-doc/issues/98/
      Link: https://lore.kernel.org/linux-riscv/bf6d3b1f-f703-4a25-833e-972a44a04114@sholland.org/
      Link: https://lore.kernel.org/r/20221122121620.3522431-1-conor.dooley@microchip.com
      d9f15a9d
    • Wenchao Chen's avatar
      mmc: sdhci-sprd: Fix no reset data and command after voltage switch · dd30dcfa
      Wenchao Chen authored
      After switching the voltage, no reset data and command will cause
      CMD2 timeout.
      
      Fixes: 29ca763f
      
       ("mmc: sdhci-sprd: Add pin control support for voltage switch")
      Signed-off-by: default avatarWenchao Chen <wenchao.chen@unisoc.com>
      Acked-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
      Reviewed-by: default avatarBaolin Wang <baolin.wang@linux.alibaba.com>
      Cc: stable@vger.kernel.org
      Link: https://lore.kernel.org/r/20221130121328.25553-1-wenchao.chen@unisoc.com
      Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
      dd30dcfa
    • Linus Torvalds's avatar
      Merge tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux · 063c0e77
      Linus Torvalds authored
      Pull clk fixes from Stephen Boyd:
       "A set of clk driver fixes that resolve issues for various SoCs.
      
        Most of these are incorrect clk data, like bad parent descriptions.
        When the clk tree is improperly described things don't work, like USB
        and UFS controllers, because clk frequencies are wonky. Here are the
        extra details:
      
         - Fix the parent of UFS reference clks on Qualcomm SC8280XP so that
           UFS works properly
      
         - Fix the clk ID for USB on AT91 RM9200 so the USB driver continues
           to probe
      
         - Stop using of_device_get_match_data() on the wrong device for a
           Samsung Exynos driver so it gets the proper clk data
      
         - Fix ExynosAutov9 binding
      
         - Fix the parent of the div4 clk on Exynos7885
      
         - Stop calling runtime PM APIs from the Qualcomm GDSC driver directly
           as it leads to a lockdep splat and is just plain wrong because it
           violates runtime PM semantics by calling runtime PM APIs when the
           device has been runtime PM disabled"
      
      * tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux:
        clk: qcom: gcc-sc8280xp: add cxo as parent for three ufs ref clks
        ARM: at91: rm9200: fix usb device clock id
        clk: samsung: Revert "clk: samsung: exynos-clkout: Use of_device_get_match_data()"
        dt-bindings: clock: exynosautov9: fix reference to CMU_FSYS1
        clk: qcom: gdsc: Remove direct runtime PM calls
        clk: samsung: exynos7885: Correct "div4" clock parents
      063c0e77