1. 05 Jun, 2024 1 commit
    • Sean Christopherson's avatar
      KVM: x86: Remove VMX support for virtualizing guest MTRR memtypes · 0a7b7355
      Sean Christopherson authored
      Remove KVM's support for virtualizing guest MTRR memtypes, as full MTRR
      adds no value, negatively impacts guest performance, and is a maintenance
      burden due to it's complexity and oddities.
      
      KVM's approach to virtualizating MTRRs make no sense, at all.  KVM *only*
      honors guest MTRR memtypes if EPT is enabled *and* the guest has a device
      that may perform non-coherent DMA access.  From a hardware virtualization
      perspective of guest MTRRs, there is _nothing_ special about EPT.  Legacy
      shadowing paging doesn't magically account for guest MTRRs, nor does NPT.
      
      Unwinding and deciphering KVM's murky history, the MTRR virtualization
      code appears to be the result of misdiagnosed issues when EPT + VT-d with
      passthrough devices was enabled years and years ago.  And importantly, the
      underlying bugs that were fudged around by honoring guest MTRR memtypes
      have since been fixed (though rather poorly in some cases).
      
      The zapping GFNs logic in the MTRR virtualization code came from:
      
        commit efdfe536
        Author: Xiao Guangrong <guangrong.xiao@linux.intel.com>
        Date:   Wed May 13 14:42:27 2015 +0800
      
          KVM: MMU: fix MTRR update
      
          Currently, whenever guest MTRR registers are changed
          kvm_mmu_reset_context is called to switch to the new root shadow page
          table, however, it's useless since:
          1) the cache type is not cached into shadow page's attribute so that
             the original root shadow page will be reused
      
          2) the cache type is set on the last spte, that means we should sync
             the last sptes when MTRR is changed
      
          This patch fixs this issue by drop all the spte in the gfn range which
          is being updated by MTRR
      
      which was a fix for:
      
        commit 0bed3b56
        Author:     Sheng Yang <sheng@linux.intel.com>
        AuthorDate: Thu Oct 9 16:01:54 2008 +0800
        Commit:     Avi Kivity <avi@redhat.com>
        CommitDate: Wed Dec 31 16:51:44 2008 +0200
      
            KVM: Improve MTRR structure
      
            As well as reset mmu context when set MTRR.
      
      which was part of a "MTRR/PAT support for EPT" series that also added:
      
      +       if (mt_mask) {
      +               mt_mask = get_memory_type(vcpu, gfn) <<
      +                         kvm_x86_ops->get_mt_mask_shift();
      +               spte |= mt_mask;
      +       }
      
      where get_memory_type() was a truly gnarly helper to retrieve the guest
      MTRR memtype for a given memtype.  And *very* subtly, at the time of that
      change, KVM *always* set VMX_EPT_IGMT_BIT,
      
              kvm_mmu_set_base_ptes(VMX_EPT_READABLE_MASK |
                      VMX_EPT_WRITABLE_MASK |
                      VMX_EPT_DEFAULT_MT << VMX_EPT_MT_EPTE_SHIFT |
                      VMX_EPT_IGMT_BIT);
      
      which came in via:
      
        commit 928d4bf7
        Author:     Sheng Yang <sheng@linux.intel.com>
        AuthorDate: Thu Nov 6 14:55:45 2008 +0800
        Commit:     Avi Kivity <avi@redhat.com>
        CommitDate: Tue Nov 11 21:00:37 2008 +0200
      
            KVM: VMX: Set IGMT bit in EPT entry
      
            There is a potential issue that, when guest using pagetable without vmexit when
            EPT enabled, guest would use PAT/PCD/PWT bits to index PAT msr for it's memory,
            which would be inconsistent with host side and would cause host MCE due to
            inconsistent cache attribute.
      
            The patch set IGMT bit in EPT entry to ignore guest PAT and use WB as default
            memory type to protect host (notice that all memory mapped by KVM should be WB).
      
      Note the CommitDates!  The AuthorDates strongly suggests Sheng Yang added
      the whole "ignoreIGMT things as a bug fix for issues that were detected
      during EPT + VT-d + passthrough enabling, but it was applied earlier
      because it was a generic fix.
      
      Jumping back to 0bed3b56 ("KVM: Improve MTRR structure"), the other
      relevant code, or rather lack thereof, is the handling of *host* MMIO.
      That fix came in a bit later, but given the author and timing, it's safe
      to say it was all part of the same EPT+VT-d enabling mess.
      
        commit 2aaf69dc
        Author:     Sheng Yang <sheng@linux.intel.com>
        AuthorDate: Wed Jan 21 16:52:16 2009 +0800
        Commit:     Avi Kivity <avi@redhat.com>
        CommitDate: Sun Feb 15 02:47:37 2009 +0200
      
          KVM: MMU: Map device MMIO as UC in EPT
      
          Software are not allow to access device MMIO using cacheable memory type, the
          patch limit MMIO region with UC and WC(guest can select WC using PAT and
          PCD/PWT).
      
      In addition to the host MMIO and IGMT issues, KVM's MTRR virtualization
      was obviously never tested on NPT until much later, which lends further
      credence to the theory/argument that this was all the result of
      misdiagnosed issues.
      
      Discussion from the EPT+MTRR enabling thread[*] more or less confirms that
      Sheng Yang was trying to resolve issues with passthrough MMIO.
      
       * Sheng Yang
        : Do you mean host(qemu) would access this memory and if we set it to guest
        : MTRR, host access would be broken? We would cover this in our shadow MTRR
        : patch, for we encountered this in video ram when doing some experiment with
        : VGA assignment.
      
      And in the same thread, there's also what appears to be confirmation of
      Intel running into issues with Windows XP related to a guest device driver
      mapping DMA with WC in the PAT.
      
       * Avi Kavity
        : Sheng Yang wrote:
        : > Yes... But it's easy to do with assigned devices' mmio, but what if guest
        : > specific some non-mmio memory's memory type? E.g. we have met one issue in
        : > Xen, that a assigned-device's XP driver specific one memory region as buffer,
        : > and modify the memory type then do DMA.
        : >
        : > Only map MMIO space can be first step, but I guess we can modify assigned
        : > memory region memory type follow guest's?
        : >
        :
        : With ept/npt, we can't, since the memory type is in the guest's
        : pagetable entries, and these are not accessible.
      
      [*] https://lore.kernel.org/all/1223539317-32379-1-git-send-email-sheng@linux.intel.com
      
      So, for the most part, what likely happened is that 15 years ago, a few
      engineers (a) fixed a #MC problem by ignoring guest PAT and (b) initially
      "fixed" passthrough device MMIO by emulating *guest* MTRRs.  Except for
      the below case, everything since then has been a result of those two
      intertwined changes.
      
      The one exception, which is actually yet more confirmation of all of the
      above, is the revert of Paolo's attempt at "full" virtualization of guest
      MTRRs:
      
        commit 606decd6
        Author: Paolo Bonzini <pbonzini@redhat.com>
        Date:   Thu Oct 1 13:12:47 2015 +0200
      
          Revert "KVM: x86: apply guest MTRR virtualization on host reserved pages"
      
          This reverts commit fd717f11.
          It was reported to cause Machine Check Exceptions (bug 104091).
      
      ...
      
        commit fd717f11
        Author: Paolo Bonzini <pbonzini@redhat.com>
        Date:   Tue Jul 7 14:38:13 2015 +0200
      
          KVM: x86: apply guest MTRR virtualization on host reserved pages
      
          Currently guest MTRR is avoided if kvm_is_reserved_pfn returns true.
          However, the guest could prefer a different page type than UC for
          such pages. A good example is that pass-throughed VGA frame buffer is
          not always UC as host expected.
      
          This patch enables full use of virtual guest MTRRs.
      
      I.e. Paolo tried to add back KVM's behavior before "Map device MMIO as UC
      in EPT" and got the same result: machine checks, likely due to the guest
      MTRRs not being trustworthy/sane at all times.
      
      Note, Paolo also tried to enable MTRR virtualization on SVM+NPT, but that
      too got reverted.  Unfortunately, it doesn't appear that anyone ever found
      a smoking gun, i.e. exactly why emulating guest MTRRs via NPT PAT caused
      extremely slow boot times doesn't appear to have a definitive root cause.
      
        commit fc07e76a
        Author: Paolo Bonzini <pbonzini@redhat.com>
        Date:   Thu Oct 1 13:20:22 2015 +0200
      
          Revert "KVM: SVM: use NPT page attributes"
      
          This reverts commit 3c2e7f7d.
          Initializing the mapping from MTRR to PAT values was reported to
          fail nondeterministically, and it also caused extremely slow boot
          (due to caching getting disabled---bug 103321) with assigned devices.
      
      ...
      
        commit 3c2e7f7d
        Author: Paolo Bonzini <pbonzini@redhat.com>
        Date:   Tue Jul 7 14:32:17 2015 +0200
      
          KVM: SVM: use NPT page attributes
      
          Right now, NPT page attributes are not used, and the final page
          attribute depends solely on gPAT (which however is not synced
          correctly), the guest MTRRs and the guest page attributes.
      
          However, we can do better by mimicking what is done for VMX.
          In the absence of PCI passthrough, the guest PAT can be ignored
          and the page attributes can be just WB.  If passthrough is being
          used, instead, keep respecting the guest PAT, and emulate the guest
          MTRRs through the PAT field of the nested page tables.
      
          The only snag is that WP memory cannot be emulated correctly,
          because Linux's default PAT setting only includes the other types.
      
      In short, honoring guest MTRRs for VMX was initially a workaround of
      sorts for KVM ignoring guest PAT *and* for KVM not forcing UC for host
      MMIO.  And while there *are* known cases where honoring guest MTRRs is
      desirable, e.g. passthrough VGA frame buffers, the desired behavior in
      that case is to get WC instead of UC, i.e. at this point it's for
      performance, not correctness.
      
      Furthermore, the complete absence of MTRR virtualization on NPT and
      shadow paging proves that, while KVM theoretically can do better, it's
      by no means necessary for correctnesss.
      
      Lastly, since kernels mostly rely on firmware to do MTRR setup, and the
      host typically provides guest firmware, honoring guest MTRRs is effectively
      honoring *host* userspace memtypes, which is also backwards.  I.e. it
      would be far better for host userspace to communicate its desired memtype
      directly to KVM (or perhaps indirectly via VMAs in the host kernel), not
      through guest MTRRs.
      Tested-by: default avatarXiangfei Ma <xiangfeix.ma@intel.com>
      Tested-by: default avatarYongwei Ma <yongwei.ma@intel.com>
      Link: https://lore.kernel.org/r/20240309010929.1403984-2-seanjc@google.comSigned-off-by: default avatarSean Christopherson <seanjc@google.com>
      0a7b7355
  2. 02 Jun, 2024 8 commits
  3. 01 Jun, 2024 6 commits
  4. 31 May, 2024 25 commits
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-2024-06-01' of https://gitlab.freedesktop.org/drm/kernel · cc8ed4d0
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "This is the weekly fixes. Lots of small fixes across the board, one
        BUG_ON fix in shmem seems most important, otherwise amdgpu, i915, xe
        mostly with small fixes to all the other drivers.
      
        shmem:
         - fix BUG_ON in COW handling
         - warn when trying to pin imported objects
      
        buddy:
         - fix page size handling
      
        dma-buf:
         - sw-sync: Don't interfere with IRQ handling
         - fix kthreads-handling error path
      
        i915:
         - fix a race in audio component by registering it later
         - make DPT object unshrinkable to avoid shrinking when framebuffer
           has not shrunk
         - fix CCS id calculation to fix a perf regression
         - fix selftest caching mode
         - fix FIELD_PREP compiler warnings
         - fix indefinite wait for GT wakeref release
         - revert overeager multi-gt pm reference removal
      
        xe:
         - pcode polling timeout change
         - fix for deadlocks for faulting VMs
         - error-path lock imbalance fix
      
        amdgpu:
         - RAS fix
         - fix colorspace property for MST connectors
         - fix for PCIe DPM
         - silence UBSAN warning
         - GPUVM robustness fix
         - partition fix
         - drop deprecated I2C_CLASS_SPD
      
        amdkfd:
         - revert unused changes for certain 11.0.3 devices
         - simplify APU VRAM handling
      
        lima:
         - fix dma_resv-related deadlock in object pin
      
        msm:
         - remove build-time dependency on Python 3.9
      
        nouveau:
         - nvif: Fix possible integer overflow
      
        panel:
         - lg-sw43408: Select DP helpers; Declare backlight ops as static
         - sitronix-st7789v: Various fixes for jt240mhqs_hwt_ek_e3 panel
      
        panfrost:
         - fix dma_resv-related deadlock in object pin"
      
      * tag 'drm-fixes-2024-06-01' of https://gitlab.freedesktop.org/drm/kernel: (35 commits)
        drm/msm: remove python 3.9 dependency for compiling msm
        drm/panel: sitronix-st7789v: fix display size for jt240mhqs_hwt_ek_e3 panel
        drm/panel: sitronix-st7789v: tweak timing for jt240mhqs_hwt_ek_e3 panel
        drm/panel: sitronix-st7789v: fix timing for jt240mhqs_hwt_ek_e3 panel
        drm/amd/pm: remove deprecated I2C_CLASS_SPD support from newly added SMU_14_0_2
        drm/amdgpu: Make CPX mode auto default in NPS4
        drm/amdkfd: simplify APU VRAM handling
        Revert "drm/amdkfd: fix gfx_target_version for certain 11.0.3 devices"
        drm/amdgpu: fix dereference null return value for the function amdgpu_vm_pt_parent
        drm/amdgpu: silence UBSAN warning
        drm/amdgpu: Adjust logic in amdgpu_device_partner_bandwidth()
        drm/i915: Fix audio component initialization
        drm/i915/dpt: Make DPT object unshrinkable
        drm/i915/gt: Fix CCS id's calculation for CCS mode setting
        drm/panel/lg-sw43408: mark sw43408_backlight_ops as static
        drm/i915/selftests: Set always_coherent to false when reading from CPU
        drm/panel/lg-sw43408: select CONFIG_DRM_DISPLAY_DP_HELPER
        drm/i915/guc: avoid FIELD_PREP warning
        drm/i915/gt: Disarm breadcrumbs if engines are already idle
        Revert "drm/i915: Remove extra multi-gt pm-references"
        ...
      cc8ed4d0
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-v6.10-rc2' of... · 1b907b83
      Linus Torvalds authored
      Merge tag 'hwmon-for-v6.10-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
      
      Pull hwmon fixes from Guenter Roeck:
      
       - sttcs: Fix property spelling
      
       - intel-m10-bmc-hwmon: Fix multiplier for N6000 board power sensor
      
       - ltc2992: Fix memory leak
      
       - dell-smm: Add Dell G15 5511 to fan control whitelist
      
      * tag 'hwmon-for-v6.10-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
        hwmon: (shtc1) Fix property misspelling
        hwmon: (intel-m10-bmc-hwmon) Fix multiplier for N6000 board power sensor
        hwmon: (ltc2992) Fix memory leak in ltc2992_parse_dt()
        hwmon: (dell-smm) Add Dell G15 5511 to fan control whitelist
      1b907b83
    • Linus Torvalds's avatar
      Merge tag 'mailbox-fixes-v6.10-rc1' of... · b7087cb3
      Linus Torvalds authored
      Merge tag 'mailbox-fixes-v6.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jassibrar/mailbox
      
      Pull mailbox fix from Jassi Brar:
      
       - zynqmp-ipi: fix linker error on some configurations
      
      * tag 'mailbox-fixes-v6.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jassibrar/mailbox:
        mailbox: zynqmp-ipi: drop irq_to_desc() call
      b7087cb3
    • Linus Torvalds's avatar
      Merge tag 'spi-fix-v6.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi · d5931dd0
      Linus Torvalds authored
      Pull spi fixes from Mark Brown:
       "A series of fixes that came in since the merge window, the main thing
        being the fixes Andy did for DMA sync where we were calling into the
        DMA API in suprising ways and causing issues as a result, the main
        thing being confusing the IOMMU code.
      
        We've also got some fairly important fixes for the stm32 driver, it
        supports a wide range of hardware and some optimisations that were
        done recently have broken on some systems, and a fix to prevent
        glitched signals on the bus in the cadence driver"
      
      * tag 'spi-fix-v6.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi:
        spi: stm32: Don't warn about spurious interrupts
        spi: Assign dummy scatterlist to unidirectional transfers
        spi: cadence: Ensure data lines set to low during dummy-cycle period
        spi: stm32: Revert change that enabled controller before asserting CS
        spi: Check if transfer is mapped before calling DMA sync APIs
        spi: Don't mark message DMA mapped when no transfer in it is
      d5931dd0
    • Linus Torvalds's avatar
      Merge tag 'regulator-fix-v6.10-rc1' of... · 28add42d
      Linus Torvalds authored
      Merge tag 'regulator-fix-v6.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator
      
      Pull regulator fix from Mark Brown:
       "One fix that came in since -rc1, fixing misuse of a local variable in
        the DT parsing code in the RTQ2208 driver"
      
      * tag 'regulator-fix-v6.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator:
        regulator: rtq2208: Fix invalid memory access when devm_of_regulator_put_matches is called
      28add42d
    • Linus Torvalds's avatar
      Merge tag 'regmap-fix-v6.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap · b7c05622
      Linus Torvalds authored
      Pull regmap fix from Mark Brown:
       "The I2C bus was not taking account of the register and any padding
        bytes when handling maximum write sizes supported by an I2C adaptor,
        this patch from Jim Wylder fixes that"
      
      * tag 'regmap-fix-v6.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap:
        regmap-i2c: Subtract reg size from max_write
      b7c05622
    • Linus Torvalds's avatar
      Merge tag 'block-6.10-20240530' of git://git.kernel.dk/linux · 0f9a7517
      Linus Torvalds authored
      Pull block fixes from Jens Axboe:
      
       - NVMe fixes via Keith:
            - Removing unused fields (Kanchan)
            - Large folio offsets support (Kundan)
            - Multipath NUMA node initialiazation fix (Nilay)
            - Multipath IO stats accounting fixes (Keith)
            - Circular lockdep fix (Keith)
            - Target race condition fix (Sagi)
            - Target memory leak fix (Sagi)
      
       - bcache fixes
      
       - null_blk fixes (Damien)
      
       - Fix regression in io.max due to throttle low removal (Waiman)
      
       - DM limit table fixes (Christoph)
      
       - SCSI and block limit fixes (Christoph)
      
       - zone fixes (Damien)
      
       - Misc fixes (Christoph, Hannes, hexue)
      
      * tag 'block-6.10-20240530' of git://git.kernel.dk/linux: (25 commits)
        blk-throttle: Fix incorrect display of io.max
        block: Fix zone write plugging handling of devices with a runt zone
        block: Fix validation of zoned device with a runt zone
        null_blk: Do not allow runt zone with zone capacity smaller then zone size
        nvmet: fix a possible leak when destroy a ctrl during qp establishment
        nvme: use srcu for iterating namespace list
        bcache: code cleanup in __bch_bucket_alloc_set()
        bcache: call force_wake_up_gc() if necessary in check_should_bypass()
        bcache: allow allocator to invalidate bucket in gc
        block: check for max_hw_sectors underflow
        block: stack max_user_sectors
        sd: also set max_user_sectors when setting max_sectors
        null_blk: Print correct max open zones limit in null_init_zoned_dev()
        block: delete redundant function declaration
        null_blk: Fix return value of nullb_device_power_store()
        dm: make dm_set_zones_restrictions work on the queue limits
        dm: remove dm_check_zoned
        dm: move setting zoned_enabled to dm_table_set_restrictions
        block: remove blk_queue_max_integrity_segments
        nvme: adjust multiples of NVME_CTRL_PAGE_SIZE in offset
        ...
      0f9a7517
    • Linus Torvalds's avatar
      Merge tag 'io_uring-6.10-20240530' of git://git.kernel.dk/linux · 6d541d66
      Linus Torvalds authored
      Pull io_uring fixes from Jens Axboe:
       "A couple of minor fixes for issues introduced in the 6.10 merge window:
      
         - Ensure that all read/write ops have an appropriate cleanup handler
           set (Breno)
      
         - Regression for applications still doing multiple mmaps even if
           FEAT_SINGLE_MMAP is set (me)
      
         - Move kmsg inquiry setting above any potential failure point,
           avoiding a spurious NONEMPTY flag setting on early error (me)"
      
      * tag 'io_uring-6.10-20240530' of git://git.kernel.dk/linux:
        io_uring/net: assign kmsg inq/flags before buffer selection
        io_uring/rw: Free iovec before cleaning async data
        io_uring: don't attempt to mmap larger than what the user asks for
      6d541d66
    • Kees Cook's avatar
      kunit/fortify: Remove __kmalloc_node() test · 99a6087d
      Kees Cook authored
      __kmalloc_node() is considered an "internal" function to the Slab, so
      drop it from explicit testing.
      
      Link: https://lore.kernel.org/r/20240531185703.work.588-kees@kernel.orgSigned-off-by: default avatarKees Cook <kees@kernel.org>
      99a6087d
    • Linus Torvalds's avatar
      Merge tag 'dma-mapping-6.10-2024-05-31' of git://git.infradead.org/users/hch/dma-mapping · b0504965
      Linus Torvalds authored
      Pull dma-mapping fixes from Christoph Hellwig:
      
       - dma-mapping benchmark error handling fixes (Fedor Pchelkin)
      
       - correct a config symbol reference in the DMA API documentation (Lukas
         Bulwahn)
      
      * tag 'dma-mapping-6.10-2024-05-31' of git://git.infradead.org/users/hch/dma-mapping:
        Documentation/core-api: correct reference to SWIOTLB_DYNAMIC
        dma-mapping: benchmark: handle NUMA_NO_NODE correctly
        dma-mapping: benchmark: fix node id validation
        dma-mapping: benchmark: avoid needless copy_to_user if benchmark fails
        dma-mapping: benchmark: fix up kthread-related error handling
      b0504965
    • Linus Torvalds's avatar
      Merge tag 'sound-6.10-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 7d88cc8e
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "Lots of small fixes:
      
         - A race fix for debugfs handling in ALSA core
      
         - A series of corrections for MIDI2 core format conversions
      
         - ASoC Intel fixes for 16 bit DMIC config
      
         - Updates for missing module parameters in ASoC code
      
         - HD-audio quirk, Cirrus codec fix, etc minor fixes"
      
      * tag 'sound-6.10-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (26 commits)
        ALSA: seq: ump: Fix swapped song position pointer data
        ASoC: SOF: ipc4-topology: Adjust the params based on DAI formats
        ASoC: SOF: ipc4-topology: Improve readability of sof_ipc4_prepare_dai_copier()
        ASoC: SOF: ipc4-topology/pcm: Rename sof_ipc4_copier_is_single_format()
        ASoC: SOF: ipc4-topology: Print out the channel count in sof_ipc4_dbg_audio_format
        ASoC: SOF: ipc4-topology: Add support for NHLT with 16-bit only DMIC blob
        ALSA: seq: Fix yet another spot for system message conversion
        ALSA: ump: Set default protocol when not given explicitly
        ALSA: ump: Don't accept an invalid UMP protocol number
        ASoC: SOF: ipc4-topology: Fix input format query of process modules without base extension
        ASoC: Intel: sof-sdw: fix missing SPI_MASTER dependency
        ALSA: pcm: fix typo in comment
        ALSA: ump: Don't clear bank selection after sending a program change
        ALSA: seq: Fix incorrect UMP type for system messages
        ALSA/hda: intel-dsp-config: reduce log verbosity
        ALSA: seq: Don't clear bank selection at event -> UMP MIDI2 conversion
        ALSA: seq: Fix missing bank setup between MIDI1/MIDI2 UMP conversion
        ASoC: SOF: add missing MODULE_DESCRIPTION()
        ASoC: SOF: reorder MODULE_ definitions
        ASoC: SOF: AMD: group all module related information
        ...
      7d88cc8e
    • Linus Torvalds's avatar
      Merge tag 'platform-drivers-x86-v6.10-2' of... · 87895a64
      Linus Torvalds authored
      Merge tag 'platform-drivers-x86-v6.10-2' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86
      
      Pull x86 platform driver fixes from Hans de Goede:
      
       - a use-after-free bugfix
      
       - Kconfig fixes for randconfig builds
      
       - allow setting touchscreen_dmi quirks from the cmdline for debugging
      
       - touchscreen_dmi quirks for two new laptop/tablet models
      
      * tag 'platform-drivers-x86-v6.10-2' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86:
        platform/x86: touchscreen_dmi: Add info for the EZpad 6s Pro
        platform/x86: touchscreen_dmi: Add info for GlobalSpace SolT IVW 11.6" tablet
        platform/x86: touchscreen_dmi: Add support for setting touchscreen properties from cmdline
        platform/x86: thinkpad_acpi: Select INPUT_SPARSEKMAP in Kconfig
        platform/x86: x86-android-tablets: Add "select LEDS_CLASS"
        platform/x86: ISST: fix use-after-free in tpmi_sst_dev_remove()
      87895a64
    • Linus Torvalds's avatar
      Merge tag 'riscv-for-linus-6.10-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux · c6cc9799
      Linus Torvalds authored
      Pull RISC-V fixes from Palmer Dabbelt:
      
       - A fix to avoid pt_regs aliasing with idle thread stacks on secondary
         harts.
      
       - HAVE_ARCH_HUGE_VMAP is enabled on XIP kernels, which fixes boot
         issues on XIP systems with huge pages.
      
       - An update to the uABI documentation clarifying that only scalar
         misaligned accesses were grandfathered in as supported, as the vector
         extension did not exist at the time the uABI was frozen.
      
       - A fix for the recently-added byte/half atomics to avoid losing the
         fully ordered decorations.
      
      * tag 'riscv-for-linus-6.10-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux:
        riscv: Fix fully ordered LR/SC xchg[8|16]() implementations
        Documentation: RISC-V: uabi: Only scalar misaligned loads are supported
        riscv: enable HAVE_ARCH_HUGE_VMAP for XIP kernel
        riscv: prevent pt_regs corruption for secondary idle threads
      c6cc9799
    • Linus Torvalds's avatar
      Merge tag 'bcachefs-2024-05-30' of https://evilpiepirate.org/git/bcachefs · ff9bce3d
      Linus Torvalds authored
      Pull bcachefs fixes from Kent Overstreet:
       "Assorted odds and ends...
      
         - two downgrade fixes
      
         - a couple snapshot deletion and repair fixes, thanks to noradtux for
           finding these and providing the image to debug them
      
         - a couple assert fixes
      
         - convert to folio helper, from Matthew
      
         - some improved error messages
      
         - bit of code reorganization (just moving things around); doing this
           while things are quiet so I'm not rebasing fixes past reorgs
      
         - don't return -EROFS on inconsistency error in recovery, this
           confuses util-linux and has it retry the mount
      
         - fix failure to return error on misaligned dio write; reported as an
           issue with coreutils shred"
      
      * tag 'bcachefs-2024-05-30' of https://evilpiepirate.org/git/bcachefs: (21 commits)
        bcachefs: Fix failure to return error on misaligned dio write
        bcachefs: Don't return -EROFS from mount on inconsistency error
        bcachefs: Fix uninitialized var warning
        bcachefs: Split out sb-errors_format.h
        bcachefs: Split out journal_seq_blacklist_format.h
        bcachefs: Split out replicas_format.h
        bcachefs: Split out disk_groups_format.h
        bcachefs: split out sb-downgrade_format.h
        bcachefs: split out sb-members_format.h
        bcachefs: Better fsck error message for key version
        bcachefs: btree_gc can now handle unknown btrees
        bcachefs: add missing MODULE_DESCRIPTION()
        bcachefs: Fix setting of downgrade recovery passes/errors
        bcachefs: Run check_key_has_snapshot in snapshot_delete_keys()
        bcachefs: Refactor delete_dead_snapshots()
        bcachefs: Fix locking assert
        bcachefs: Fix lookup_first_inode() when inode_generations are present
        bcachefs: Plumb bkey into __btree_err()
        bcachefs: Use copy_folio_from_iter_atomic()
        bcachefs: Fix sb-downgrade validation
        ...
      ff9bce3d
    • Thomas Gleixner's avatar
      x86/topology/intel: Unlock CPUID before evaluating anything · 0c2f6d04
      Thomas Gleixner authored
      Intel CPUs have a MSR bit to limit CPUID enumeration to leaf two. If
      this bit is set by the BIOS then CPUID evaluation including topology
      enumeration does not work correctly as the evaluation code does not try
      to analyze any leaf greater than two.
      
      This went unnoticed before because the original topology code just
      repeated evaluation several times and managed to overwrite the initial
      limited information with the correct one later. The new evaluation code
      does it once and therefore ends up with the limited and wrong
      information.
      
      Cure this by unlocking CPUID right before evaluating anything which
      depends on the maximum CPUID leaf being greater than two instead of
      rereading stuff after unlock.
      
      Fixes: 22d63660 ("x86/cpu: Use common topology code for Intel")
      Reported-by: default avatarPeter Schneider <pschneider1968@googlemail.com>
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Signed-off-by: default avatarBorislav Petkov (AMD) <bp@alien8.de>
      Tested-by: default avatarPeter Schneider <pschneider1968@googlemail.com>
      Cc: <stable@kernel.org>
      Link: https://lore.kernel.org/r/fd3f73dc-a86f-4bcf-9c60-43556a21eb42@googlemail.com
      0c2f6d04
    • Arnd Bergmann's avatar
      mailbox: zynqmp-ipi: drop irq_to_desc() call · d551ce15
      Arnd Bergmann authored
      irq_to_desc() is not exported to loadable modules, so this driver now
      fails to link in some configurations:
      
      ERROR: modpost: "irq_to_desc" [drivers/mailbox/zynqmp-ipi-mailbox.ko] undefined!
      
      I can't see a purpose for this call, since the return value is unused
      and probably left over from some code refactoring.
      
      Address the link failure by just removing the line.
      
      Fixes: 6ffb1635 ("mailbox: zynqmp: handle SGI for shared IPI")
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Tested-by: default avatarTanmay Shah <tanmay.shah@amd.com>
      Signed-off-by: default avatarJassi Brar <jassisinghbrar@gmail.com>
      d551ce15
    • Kees Cook's avatar
      mailmap: update entry for Kees Cook · 4e173c82
      Kees Cook authored
      I'm tired of gmail breaking DKIM. Switch everything over to my
      @kernel.org alias instead.
      Signed-off-by: default avatarKees Cook <kees@kernel.org>
      4e173c82
    • Kees Cook's avatar
      scsi: mpt3sas: Avoid possible run-time warning with long manufacturer strings · adb77bba
      Kees Cook authored
      The prior strscpy() replacement of strncpy() here expected the
      manufacture_reply strings to be NUL-terminated, but it is possible
      they are not, as the code pattern here shows, e.g., edev->vendor_id
      being exactly 1 character larger than manufacture_reply->vendor_id,
      and the replaced strncpy() was copying only up to the size of the
      source character array. Replace this with memtostr(), which is the
      unambiguous way to convert a maybe not-NUL-terminated character array
      into a NUL-terminated string.
      
      Fixes: b7e9712a ("scsi: mpt3sas: Replace deprecated strncpy() with strscpy()")
      Signed-off-by: default avatarKees Cook <keescook@chromium.org>
      Tested-by: default avatarMarco Patalano <mpatalan@redhat.com>
      Reviewed-by: default avatarEwan D. Milne <emilne@redhat.com>
      Reviewed-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      Link: https://lore.kernel.org/r/20240410023155.2100422-3-keescook@chromium.orgSigned-off-by: default avatarKees Cook <kees@kernel.org>
      adb77bba
    • Steve French's avatar
      cifs: fix creating sockets when using sfu mount options · 518549c1
      Steve French authored
      When running fstest generic/423 with sfu mount option, it
      was being skipped due to inability to create sockets:
      
        generic/423  [not run] cifs does not support mknod/mkfifo
      
      which can also be easily reproduced with their af_unix tool:
      
        ./src/af_unix /mnt1/socket-two bind: Operation not permitted
      
      Fix sfu mount option to allow creating and reporting sockets.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
      518549c1
    • Mickaël Salaün's avatar
      selftests/landlock: Add layout1.refer_mount_root · 0055f53a
      Mickaël Salaün authored
      Add tests to check error codes when linking or renaming a mount root
      directory.  This previously triggered a kernel warning, but it is fixed
      with the previous commit.
      
      Cc: Günther Noack <gnoack@google.com>
      Cc: Paul Moore <paul@paul-moore.com>
      Link: https://lore.kernel.org/r/20240516181935.1645983-3-mic@digikod.netSigned-off-by: default avatarMickaël Salaün <mic@digikod.net>
      0055f53a
    • Mickaël Salaün's avatar
      landlock: Fix d_parent walk · 88da52cc
      Mickaël Salaün authored
      The WARN_ON_ONCE() in collect_domain_accesses() can be triggered when
      trying to link a root mount point.  This cannot work in practice because
      this directory is mounted, but the VFS check is done after the call to
      security_path_link().
      
      Do not use source directory's d_parent when the source directory is the
      mount point.
      
      Cc: Günther Noack <gnoack@google.com>
      Cc: Paul Moore <paul@paul-moore.com>
      Cc: stable@vger.kernel.org
      Reported-by: syzbot+bf4903dc7e12b18ebc87@syzkaller.appspotmail.com
      Fixes: b91c3e4e ("landlock: Add support for file reparenting with LANDLOCK_ACCESS_FS_REFER")
      Closes: https://lore.kernel.org/r/000000000000553d3f0618198200@google.com
      Link: https://lore.kernel.org/r/20240516181935.1645983-2-mic@digikod.net
      [mic: Fix commit message]
      Signed-off-by: default avatarMickaël Salaün <mic@digikod.net>
      88da52cc
    • Niklas Cassel's avatar
      ata: libata-core: Add ATA_HORKAGE_NOLPM for Apacer AS340 · 3cb648c4
      Niklas Cassel authored
      Commit 7627a0ed ("ata: ahci: Drop low power policy board type")
      dropped the board_ahci_low_power board type, and instead enables LPM if:
      -The AHCI controller reports that it supports LPM (Partial/Slumber), and
      -CONFIG_SATA_MOBILE_LPM_POLICY != 0, and
      -The port is not defined as external in the per port PxCMD register, and
      -The port is not defined as hotplug capable in the per port PxCMD
       register.
      
      Partial and Slumber LPM states can either be initiated by HIPM or DIPM.
      
      For HIPM (host initiated power management) to get enabled, both the AHCI
      controller and the drive have to report that they support HIPM.
      
      For DIPM (device initiated power management) to get enabled, only the
      drive has to report that it supports DIPM. However, the HBA will reject
      device requests to enter LPM states which the HBA does not support.
      
      The problem is that Apacer AS340 drives do not handle low power modes
      correctly. The problem was most likely not seen before because no one
      had used this drive with a AHCI controller with LPM enabled.
      
      Add a quirk so that we do not enable LPM for this drive, since we see
      command timeouts if we do (even though the drive claims to support DIPM).
      
      Fixes: 7627a0ed ("ata: ahci: Drop low power policy board type")
      Cc: stable@vger.kernel.org
      Reported-by: default avatarTim Teichmann <teichmanntim@outlook.de>
      Closes: https://lore.kernel.org/linux-ide/87bk4pbve8.ffs@tglx/Reviewed-by: default avatarMika Westerberg <mika.westerberg@linux.intel.com>
      Reviewed-by: default avatarDamien Le Moal <dlemoal@kernel.org>
      Signed-off-by: default avatarNiklas Cassel <cassel@kernel.org>
      3cb648c4
    • Niklas Cassel's avatar
      ata: libata-core: Add ATA_HORKAGE_NOLPM for AMD Radeon S3 SSD · 47388036
      Niklas Cassel authored
      Commit 7627a0ed ("ata: ahci: Drop low power policy board type")
      dropped the board_ahci_low_power board type, and instead enables LPM if:
      -The AHCI controller reports that it supports LPM (Partial/Slumber), and
      -CONFIG_SATA_MOBILE_LPM_POLICY != 0, and
      -The port is not defined as external in the per port PxCMD register, and
      -The port is not defined as hotplug capable in the per port PxCMD
       register.
      
      Partial and Slumber LPM states can either be initiated by HIPM or DIPM.
      
      For HIPM (host initiated power management) to get enabled, both the AHCI
      controller and the drive have to report that they support HIPM.
      
      For DIPM (device initiated power management) to get enabled, only the
      drive has to report that it supports DIPM. However, the HBA will reject
      device requests to enter LPM states which the HBA does not support.
      
      The problem is that AMD Radeon S3 SSD drives do not handle low power modes
      correctly. The problem was most likely not seen before because no one
      had used this drive with a AHCI controller with LPM enabled.
      
      Add a quirk so that we do not enable LPM for this drive, since we see
      command timeouts if we do (even though the drive claims to support both
      HIPM and DIPM).
      
      Fixes: 7627a0ed ("ata: ahci: Drop low power policy board type")
      Cc: stable@vger.kernel.org
      Reported-by: default avatarDoru Iorgulescu <doru.iorgulescu1@gmail.com>
      Closes: https://bugzilla.kernel.org/show_bug.cgi?id=218832Reviewed-by: default avatarMika Westerberg <mika.westerberg@linux.intel.com>
      Reviewed-by: default avatarDamien Le Moal <dlemoal@kernel.org>
      Signed-off-by: default avatarNiklas Cassel <cassel@kernel.org>
      47388036
    • Niklas Cassel's avatar
      ata: libata-core: Add ATA_HORKAGE_NOLPM for Crucial CT240BX500SSD1 · 86aaa7e9
      Niklas Cassel authored
      Commit 7627a0ed ("ata: ahci: Drop low power policy board type")
      dropped the board_ahci_low_power board type, and instead enables LPM if:
      -The AHCI controller reports that it supports LPM (Partial/Slumber), and
      -CONFIG_SATA_MOBILE_LPM_POLICY != 0, and
      -The port is not defined as external in the per port PxCMD register, and
      -The port is not defined as hotplug capable in the per port PxCMD
       register.
      
      Partial and Slumber LPM states can either be initiated by HIPM or DIPM.
      
      For HIPM (host initiated power management) to get enabled, both the AHCI
      controller and the drive have to report that they support HIPM.
      
      For DIPM (device initiated power management) to get enabled, only the
      drive has to report that it supports DIPM. However, the HBA will reject
      device requests to enter LPM states which the HBA does not support.
      
      The problem is that Crucial CT240BX500SSD1 drives do not handle low power
      modes correctly. The problem was most likely not seen before because no
      one had used this drive with a AHCI controller with LPM enabled.
      
      Add a quirk so that we do not enable LPM for this drive, since we see
      command timeouts if we do (even though the drive claims to support DIPM).
      
      Fixes: 7627a0ed ("ata: ahci: Drop low power policy board type")
      Cc: stable@vger.kernel.org
      Reported-by: default avatarAarrayy <lp610mh@gmail.com>
      Closes: https://bugzilla.kernel.org/show_bug.cgi?id=218832Reviewed-by: default avatarMika Westerberg <mika.westerberg@linux.intel.com>
      Reviewed-by: default avatarDamien Le Moal <dlemoal@kernel.org>
      Signed-off-by: default avatarNiklas Cassel <cassel@kernel.org>
      86aaa7e9
    • Phil Auld's avatar
      sched/x86: Export 'percpu arch_freq_scale' · d40605a6
      Phil Auld authored
      Commit:
      
        7bc26384 ("sched/topology: Consolidate and clean up access to a CPU's max compute capacity")
      
      removed rq->cpu_capacity_orig in favor of using arch_scale_freq_capacity()
      calls. Export the underlying percpu symbol on x86 so that external trace
      point helper modules can be made to work again.
      Signed-off-by: default avatarPhil Auld <pauld@redhat.com>
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Link: https://lore.kernel.org/r/20240530181548.2039216-1-pauld@redhat.com
      d40605a6