1. 04 Oct, 2024 18 commits
    • Linus Torvalds's avatar
      Merge tag 'pm-6.12-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 5d18081d
      Linus Torvalds authored
      Pull power management fixes from Rafael Wysocki:
       "These fix two cpufreq issues, one in the core and one in the
        intel_pstate driver:
      
         - Fix CPU device node reference counting in the cpufreq core (Miquel
           Sabaté Solà)
      
         - Turn the spinlock used by the intel_pstate driver in hard IRQ
           context into a raw one to prevent the driver from crashing when
           PREEMPT_RT is enabled (Uwe Kleine-König)"
      
      * tag 'pm-6.12-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        cpufreq: Avoid a bad reference count on CPU node
        cpufreq: intel_pstate: Make hwp_notify_lock a raw spinlock
      5d18081d
    • Linus Torvalds's avatar
      Merge tag 'gpio-fixes-for-v6.12-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux · cc70ce8f
      Linus Torvalds authored
      Pull gpio fixes from Bartosz Golaszewski:
      
       - fix a potential NULL-pointer dereference in gpiolib core
      
       - fix a probe() regression from the v6.12 merge window and an older bug
         leading to missed interrupts in gpio-davinci
      
      * tag 'gpio-fixes-for-v6.12-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux:
        gpiolib: Fix potential NULL pointer dereference in gpiod_get_label()
        gpio: davinci: Fix condition for irqchip registration
        gpio: davinci: fix lazy disable
      cc70ce8f
    • Linus Torvalds's avatar
      Merge tag 'sound-6.12-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 2f91ff27
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "Slightly high amount of changes in this round, partly because of my
        vacation in the last weeks. But all changes are small and nothing
        looks worrisome.
      
        The biggest LOCs is MAINTAINERS updates, and there is a core change
        for card-ID string creation for non-ASCII inputs. Others are rather
        device-specific, such as new quirks and device IDs for ASoC, usual
        HD-audio and USB-audio quirks and fixes, as well as regression fixes
        in HD-audio HDMI audio and Conexant codec"
      
      * tag 'sound-6.12-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (39 commits)
        ALSA: hda/conexant: Fix conflicting quirk for System76 Pangolin
        ALSA: line6: add hw monitor volume control to POD HD500X
        ALSA: gus: Fix some error handling paths related to get_bpos() usage
        ALSA: hda: Add missing parameter description for snd_hdac_stream_timecounter_init()
        ALSA: usb-audio: Add native DSD support for Luxman D-08u
        ALSA: core: add isascii() check to card ID generator
        MAINTAINERS: ALSA: use linux-sound@vger.kernel.org list
        Revert "ALSA: hda: Conditionally use snooping for AMD HDMI"
        ASoC: intel: sof_sdw: Add check devm_kasprintf() returned value
        ASoC: imx-card: Set card.owner to avoid a warning calltrace if SND=m
        ASoC: dt-bindings: davinci-mcasp: Fix interrupts property
        ASoC: qcom: sm8250: add qrb4210-rb2-sndcard compatible string
        ASoC: dt-bindings: qcom,sm8250: add qrb4210-rb2-sndcard
        ALSA: hda: fix trigger_tstamp_latched
        ALSA: hda/realtek: Add a quirk for HP Pavilion 15z-ec200
        ALSA: hda/generic: Drop obsoleted obey_preferred_dacs flag
        ALSA: hda/generic: Unconditionally prefer preferred_dacs pairs
        ALSA: silence integer wrapping warning
        ASoC: Intel: soc-acpi: arl: Fix some missing empty terminators
        ASoC: Intel: soc-acpi-intel-rpl-match: add missing empty item
        ...
      2f91ff27
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-2024-10-04' of https://gitlab.freedesktop.org/drm/kernel · fe6fcece
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Weekly fixes, xe and amdgpu lead the way, with panthor, and few core
        components getting various fixes. Nothing seems too out of the
        ordinary.
      
        atomic:
         - Use correct type when reading damage rectangles
      
        display:
         - Fix kernel docs
      
        dp-mst:
         - Fix DSC decompression detection
      
        hdmi:
         - Fix infoframe size
      
        sched:
         - Update maintainers
         - Fix race condition whne queueing up jobs
         - Fix locking in drm_sched_entity_modify_sched()
         - Fix pointer deref if entity queue changes
      
        sysfb:
         - Disable sysfb if framebuffer parent device is unknown
      
        amdgpu:
         - DML2 fix
         - DSC fix
         - Dispclk fix
         - eDP HDR fix
         - IPS fix
         - TBT fix
      
        i915:
         - One fix for bitwise and logical "and" mixup in PM code
      
        xe:
         - Restore pci state on resume
         - Fix locking on submission, queue and vm
         - Fix UAF on queue destruction
         - Fix resource release on freq init error path
         - Use rw_semaphore to reduce contention on ASID->VM lookup
         - Fix steering for media on Xe2_HPM
         - Tuning updates to Xe2
         - Resume TDR after GT reset to prevent jobs running forever
         - Move id allocation to avoid userspace using a guessed number to
           trigger UAF
         - Fix OA stream close preventing pbatch buffers to complete
         - Fix NPD when migrating memory on LNL
         - Fix memory leak when aborting binds
      
        panthor:
         - Fix locking
         - Set FOP_UNSIGNED_OFFSET in fops instance
         - Acquire lock in panthor_vm_prepare_map_op_ctx()
         - Avoid uninitialized variable in tick_ctx_cleanup()
         - Do not block scheduler queue if work is pending
         - Do not add write fences to the shared BOs
      
        vbox:
         - Fix VLA handling"
      
      * tag 'drm-fixes-2024-10-04' of https://gitlab.freedesktop.org/drm/kernel: (41 commits)
        drm/xe: Fix memory leak when aborting binds
        drm/xe: Prevent null pointer access in xe_migrate_copy
        drm/xe/oa: Don't reset OAC_CONTEXT_ENABLE on OA stream close
        drm/xe/queue: move xa_alloc to prevent UAF
        drm/xe/vm: move xa_alloc to prevent UAF
        drm/xe: Clean up VM / exec queue file lock usage.
        drm/xe: Resume TDR after GT reset
        drm/xe/xe2: Add performance tuning for L3 cache flushing
        drm/xe/xe2: Extend performance tuning to media GT
        drm/xe/mcr: Use Xe2_LPM steering tables for Xe2_HPM
        drm/xe: Use helper for ASID -> VM in GPU faults and access counters
        drm/xe: Convert to USM lock to rwsem
        drm/xe: use devm_add_action_or_reset() helper
        drm/xe: fix UAF around queue destruction
        drm/xe/guc_submit: add missing locking in wedged_fini
        drm/xe: Restore pci state upon resume
        drm/amd/display: Fix system hang while resume with TBT monitor
        drm/amd/display: Enable idle workqueue for more IPS modes
        drm/amd/display: Add HDR workaround for specific eDP
        drm/amd/display: avoid set dispclk to 0
        ...
      fe6fcece
    • Linus Torvalds's avatar
      Merge tag 'block-6.12-20241004' of git://git.kernel.dk/linux · 360c1f1f
      Linus Torvalds authored
      Pull block fixes from Jens Axboe:
      
       - Fix another use-after-free in aoe
      
       - Fixup wrong nested non-saving irq disable/restore in blk-iocost
      
       - Fixup a kerneldoc complaint introduced by a merge window patch
      
      * tag 'block-6.12-20241004' of git://git.kernel.dk/linux:
        aoe: fix the potential use-after-free problem in more places
        blk_iocost: remove some duplicate irq disable/enables
        block: fix blk_rq_map_integrity_sg kernel-doc
      360c1f1f
    • Linus Torvalds's avatar
      Merge tag 'io_uring-6.12-20241004' of git://git.kernel.dk/linux · 43454e83
      Linus Torvalds authored
      Pull io_uring fixes from Jens Axboe:
      
       - Fix an error path memory leak, if one part fails to allocate.
         Obviously not something that'll generally hit without error
         injection.
      
       - Fix an io_req_flags_t cast to make sparse happier.
      
       - Improve the recv multishot termination. Not a bug now, but could be
         one in the future. This makes it do the same thing that recvmsg does
         in terms of when to terminate a request or not.
      
      * tag 'io_uring-6.12-20241004' of git://git.kernel.dk/linux:
        io_uring/net: harden multishot termination case for recv
        io_uring: fix casts to io_req_flags_t
        io_uring: fix memory leak when cache init fail
      43454e83
    • Linus Torvalds's avatar
      Merge tag 'fsnotify_for_v6.12-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs · e02f08e2
      Linus Torvalds authored
      Pull fsnotify fixes from Jan Kara:
       "Fixes for an inotify deadlock and a data race in fsnotify"
      
      * tag 'fsnotify_for_v6.12-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
        inotify: Fix possible deadlock in fsnotify_destroy_mark
        fsnotify: Avoid data race between fsnotify_recalc_mask() and fsnotify_object_watched()
      e02f08e2
    • Linus Torvalds's avatar
      Merge tag 'fs_for_v6.12-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs · 4770119d
      Linus Torvalds authored
      Pull UDF fixes from Jan Kara:
       "A couple of UDF error handling fixes for issues spotted by syzbot"
      
      * tag 'fs_for_v6.12-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
        udf: fix uninit-value use in udf_get_fileshortad
        udf: refactor inode_bmap() to handle error
        udf: refactor udf_next_aext() to handle error
        udf: refactor udf_current_aext() to handle error
      4770119d
    • Linus Torvalds's avatar
      Merge tag 'ceph-for-6.12-rc2' of https://github.com/ceph/ceph-client · a3a37691
      Linus Torvalds authored
      Pull ceph fixes from Ilya Dryomov:
       "A fix from Patrick for a variety of CephFS lockup scenarios caused by
        a regression in cap handling which sneaked in through the netfs helper
        library in 5.18 (marked for stable) and an unrelated one-line cleanup"
      
      * tag 'ceph-for-6.12-rc2' of https://github.com/ceph/ceph-client:
        ceph: fix cap ref leak via netfs init_request
        ceph: use struct_size() helper in __ceph_pool_perm_get()
      a3a37691
    • Linus Torvalds's avatar
      Merge tag 'for-6.12-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux · 79eb2c07
      Linus Torvalds authored
      Pull btrfs fixes from David Sterba:
      
       - in incremental send, fix invalid clone operation for file that got
         its size decreased
      
       - fix __counted_by() annotation of send path cache entries, we do not
         store the terminating NUL
      
       - fix a longstanding bug in relocation (and quite hard to hit by
         chance), drop back reference cache that can get out of sync after
         transaction commit
      
       - wait for fixup worker kthread before finishing umount
      
       - add missing raid-stripe-tree extent for NOCOW files, zoned mode
         cannot have NOCOW files but RST is meant to be a standalone feature
      
       - handle transaction start error during relocation, avoid potential
         NULL pointer dereference of relocation control structure (reported by
         syzbot)
      
       - disable module-wide rate limiting of debug level messages
      
       - minor fix to tracepoint definition (reported by checkpatch.pl)
      
      * tag 'for-6.12-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux:
        btrfs: disable rate limiting when debug enabled
        btrfs: wait for fixup workers before stopping cleaner kthread during umount
        btrfs: fix a NULL pointer dereference when failed to start a new trasacntion
        btrfs: send: fix invalid clone operation for file that got its size decreased
        btrfs: tracepoints: end assignment with semicolon at btrfs_qgroup_extent event class
        btrfs: drop the backref cache during relocation if we commit
        btrfs: also add stripe entries for NOCOW writes
        btrfs: send: fix buffer overflow detection when copying path to cache entry
      79eb2c07
    • Linus Torvalds's avatar
      Merge tag 'v6.12-rc1-smb3-client-fixes' of git://git.samba.org/sfrench/cifs-2.6 · b7a838ee
      Linus Torvalds authored
      Pull smb client fixes from Steve French:
      
       - statfs fix (e.g. when limited access to root directory of share)
      
       - special file handling fixes: fix packet validation to avoid buffer
         overflow for reparse points, fixes for symlink path parsing (one for
         reparse points, and one for SFU use case), and fix for cleanup after
         failed SET_REPARSE operation.
      
       - fix for SMB2.1 signing bug introduced by recent patch to NFS symlink
         path, and NFS reparse point validation
      
       - comment cleanup
      
      * tag 'v6.12-rc1-smb3-client-fixes' of git://git.samba.org/sfrench/cifs-2.6:
        cifs: Do not convert delimiter when parsing NFS-style symlinks
        cifs: Validate content of NFS reparse point buffer
        cifs: Fix buffer overflow when parsing NFS reparse points
        smb: client: Correct typos in multiple comments across various files
        smb: client: use actual path when queryfs
        cifs: Remove intermediate object of failed create reparse call
        Revert "smb: client: make SHA-512 TFM ephemeral"
        smb: Update comments about some reparse point tags
        cifs: Check for UTF-16 null codepoint in SFU symlink target location
      b7a838ee
    • Linus Torvalds's avatar
      Merge tag 'pull-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 6cca1195
      Linus Torvalds authored
      Pull close_range() fix from Al Viro:
       "Fix the logic in descriptor table trimming"
      
      * tag 'pull-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        close_range(): fix the logics in descriptor table trimming
      6cca1195
    • Takashi Iwai's avatar
      ALSA: hda/conexant: Fix conflicting quirk for System76 Pangolin · b3ebb007
      Takashi Iwai authored
      We received a regression report for System76 Pangolin (pang14) due to
      the recent fix for Tuxedo Sirius devices to support the top speaker.
      The reason was the conflicting PCI SSID, as often seen.
      
      As a workaround, now the codec SSID is checked and the quirk is
      applied conditionally only to Sirius devices.
      
      Fixes: 4178d78c ("ALSA: hda/conexant: Add pincfg quirk to enable top speakers on Sirius devices")
      Reported-by: default avatarChristian Heusel <christian@heusel.eu>
      Reported-by: default avatarJerry <jerryluo225@gmail.com>
      Closes: https://lore.kernel.org/c930b6a6-64e5-498f-b65a-1cd5e0a1d733@heusel.eu
      Link: https://patch.msgid.link/20241004082602.29016-1-tiwai@suse.deSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      b3ebb007
    • Hans P. Moller's avatar
      ALSA: line6: add hw monitor volume control to POD HD500X · 703235a2
      Hans P. Moller authored
      Add hw monitor volume control for POD HD500X. This is done adding
      LINE6_CAP_HWMON_CTL to the capabilities
      Signed-off-by: default avatarHans P. Moller <hmoller@uc.cl>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      Link: https://patch.msgid.link/20241003232828.5819-1-hmoller@uc.cl
      703235a2
    • Christophe JAILLET's avatar
      ALSA: gus: Fix some error handling paths related to get_bpos() usage · 9df39a87
      Christophe JAILLET authored
      If get_bpos() fails, it is likely that the corresponding error code should
      be returned.
      
      Fixes: a6970bb1 ("ALSA: gus: Convert to the new PCM ops")
      Signed-off-by: default avatarChristophe JAILLET <christophe.jaillet@wanadoo.fr>
      Link: https://patch.msgid.link/d9ca841edad697154afa97c73a5d7a14919330d9.1727984008.git.christophe.jaillet@wanadoo.frSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      9df39a87
    • Dave Airlie's avatar
      Merge tag 'drm-xe-fixes-2024-10-03' of https://gitlab.freedesktop.org/drm/xe/kernel into drm-fixes · 5b272bf7
      Dave Airlie authored
      Driver Changes:
      - Restore pci state on resume (Rodrigo Vivi)
      - Fix locking on submission, queue and vm (Matthew Auld, Matthew Brost)
      - Fix UAF on queue destruction (Matthew Auld)
      - Fix resource release on freq init error path (He Lugang)
      - Use rw_semaphore to reduce contention on ASID->VM lookup (Matthew Brost)
      - Fix steering for media on Xe2_HPM (Gustavo Sousa)
      - Tuning updates to Xe2 (Gustavo Sousa)
      - Resume TDR after GT reset to prevent jobs running forever (Matthew Brost)
      - Move id allocation to avoid userspace using a guessed number
        to trigger UAF (Matthew Auld, Matthew Brost)
      - Fix OA stream close preventing pbatch buffers to complete (José)
      - Fix NPD when migrating memory on LNL (Zhanjun Dong)
      - Fix memory leak when aborting binds (Matthew Brost)
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      From: Lucas De Marchi <lucas.demarchi@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/2fiv63yanlal5mpw3mxtotte6yvkvtex74c7mkjxca4bazlyja@o4iejcfragxy
      5b272bf7
    • Linus Torvalds's avatar
      Merge tag 'rust-fixes-6.12' of https://github.com/Rust-for-Linux/linux · 0c559323
      Linus Torvalds authored
      Pull Rust fixes from Miguel Ojeda:
       "Toolchain and infrastructure:
      
         - Fix/improve a couple 'depends on' on the newly added CFI/KASAN
           suppport to avoid build errors/warnings
      
         - Fix ARCH_SLAB_MINALIGN multiple definition error for RISC-V under
           !CONFIG_MMU
      
         - Clean upcoming (Rust 1.83.0) Clippy warnings
      
        'kernel' crate:
      
         - 'sync' module: fix soundness issue by requiring 'T: Sync' for
           'LockedBy::access'; and fix helpers build error under PREEMPT_RT
      
         - Fix trivial sorting issue ('rustfmtcheck') on the v6.12 Rust merge"
      
      * tag 'rust-fixes-6.12' of https://github.com/Rust-for-Linux/linux:
        rust: kunit: use C-string literals to clean warning
        cfi: encode cfi normalized integers + kasan/gcov bug in Kconfig
        rust: KASAN+RETHUNK requires rustc 1.83.0
        rust: cfi: fix `patchable-function-entry` starting version
        rust: mutex: fix __mutex_init() usage in case of PREEMPT_RT
        rust: fix `ARCH_SLAB_MINALIGN` multiple definition error
        rust: sync: require `T: Sync` for `LockedBy::access`
        rust: kernel: sort Rust modules
      0c559323
    • Linus Torvalds's avatar
      Merge tag 'pull-fixes.ufs' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 263a25de
      Linus Torvalds authored
      Pull ufs fix from Al Viro:
       "Fix ufs_rename() braino introduced this cycle.
      
        The 'folio_release_kmap(dir_folio, new_dir)' in ufs_rename() part of
        folio conversion should've been getting a pointer to ufs directory
        entry within the page, rather than a pointer to directory struct
        inode..."
      
      * tag 'pull-fixes.ufs' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        ufs_rename(): fix bogus argument of folio_release_kmap()
      263a25de
  2. 03 Oct, 2024 22 commits
    • Johannes Weiner's avatar
      sched: psi: fix bogus pressure spikes from aggregation race · 3840cbe2
      Johannes Weiner authored
      Brandon reports sporadic, non-sensical spikes in cumulative pressure
      time (total=) when reading cpu.pressure at a high rate. This is due to
      a race condition between reader aggregation and tasks changing states.
      
      While it affects all states and all resources captured by PSI, in
      practice it most likely triggers with CPU pressure, since scheduling
      events are so frequent compared to other resource events.
      
      The race context is the live snooping of ongoing stalls during a
      pressure read. The read aggregates per-cpu records for stalls that
      have concluded, but will also incorporate ad-hoc the duration of any
      active state that hasn't been recorded yet. This is important to get
      timely measurements of ongoing stalls. Those ad-hoc samples are
      calculated on-the-fly up to the current time on that CPU; since the
      stall hasn't concluded, it's expected that this is the minimum amount
      of stall time that will enter the per-cpu records once it does.
      
      The problem is that the path that concludes the state uses a CPU clock
      read that is not synchronized against aggregators; the clock is read
      outside of the seqlock protection. This allows aggregators to race and
      snoop a stall with a longer duration than will actually be recorded.
      
      With the recorded stall time being less than the last snapshot
      remembered by the aggregator, a subsequent sample will underflow and
      observe a bogus delta value, resulting in an erratic jump in pressure.
      
      Fix this by moving the clock read of the state change into the seqlock
      protection. This ensures no aggregation can snoop live stalls past the
      time that's recorded when the state concludes.
      Reported-by: default avatarBrandon Duffany <brandon@buildbuddy.io>
      Link: https://bugzilla.kernel.org/show_bug.cgi?id=219194
      Link: https://lore.kernel.org/lkml/20240827121851.GB438928@cmpxchg.org/
      Fixes: df774306 ("psi: Reduce calls to sched_clock() in psi")
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarJohannes Weiner <hannes@cmpxchg.org>
      Reviewed-by: default avatarChengming Zhou <chengming.zhou@linux.dev>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      3840cbe2
    • Lad Prabhakar's avatar
      gpiolib: Fix potential NULL pointer dereference in gpiod_get_label() · 7b99b5ab
      Lad Prabhakar authored
      In `gpiod_get_label()`, it is possible that `srcu_dereference_check()` may
      return a NULL pointer, leading to a scenario where `label->str` is accessed
      without verifying if `label` itself is NULL.
      
      This patch adds a proper NULL check for `label` before accessing
      `label->str`. The check for `label->str != NULL` is removed because
      `label->str` can never be NULL if `label` is not NULL.
      
      This fixes the issue where the label name was being printed as `(efault)`
      when dumping the sysfs GPIO file when `label == NULL`.
      
      Fixes: 5a646e03 ("gpiolib: Return label, if set, for IRQ only line")
      Fixes: a86d2769 ("gpiolib: fix the speed of descriptor label setting with SRCU")
      Signed-off-by: default avatarLad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
      Link: https://lore.kernel.org/r/20241003131351.472015-1-prabhakar.mahadev-lad.rj@bp.renesas.comSigned-off-by: default avatarBartosz Golaszewski <bartosz.golaszewski@linaro.org>
      7b99b5ab
    • Pali Rohár's avatar
      cifs: Do not convert delimiter when parsing NFS-style symlinks · d3a49f60
      Pali Rohár authored
      NFS-style symlinks have target location always stored in NFS/UNIX form
      where backslash means the real UNIX backslash and not the SMB path
      separator.
      
      So do not mangle slash and backslash content of NFS-style symlink during
      readlink() syscall as it is already in the correct Linux form.
      
      This fixes interoperability of NFS-style symlinks with backslashes created
      by Linux NFS3 client throw Windows NFS server and retrieved by Linux SMB
      client throw Windows SMB server, where both Windows servers exports the
      same directory.
      
      Fixes: d5ecebc4 ("smb3: Allow query of symlinks stored as reparse points")
      Acked-by: default avatarPaulo Alcantara (Red Hat) <pc@manguebit.com>
      Signed-off-by: default avatarPali Rohár <pali@kernel.org>
      Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
      d3a49f60
    • Pali Rohár's avatar
      cifs: Validate content of NFS reparse point buffer · 556ac52b
      Pali Rohár authored
      Symlink target location stored in DataBuffer is encoded in UTF-16. So check
      that symlink DataBuffer length is non-zero and even number. And check that
      DataBuffer does not contain UTF-16 null codepoint because Linux cannot
      process symlink with null byte.
      
      DataBuffer for char and block devices is 8 bytes long as it contains two
      32-bit numbers (major and minor). Add check for this.
      
      DataBuffer buffer for sockets and fifos zero-length. Add checks for this.
      Signed-off-by: default avatarPali Rohár <pali@kernel.org>
      Reviewed-by: default avatarPaulo Alcantara (Red Hat) <pc@manguebit.com>
      Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
      556ac52b
    • Pali Rohár's avatar
      cifs: Fix buffer overflow when parsing NFS reparse points · e2a8910a
      Pali Rohár authored
      ReparseDataLength is sum of the InodeType size and DataBuffer size.
      So to get DataBuffer size it is needed to subtract InodeType's size from
      ReparseDataLength.
      
      Function cifs_strndup_from_utf16() is currentlly accessing buf->DataBuffer
      at position after the end of the buffer because it does not subtract
      InodeType size from the length. Fix this problem and correctly subtract
      variable len.
      
      Member InodeType is present only when reparse buffer is large enough. Check
      for ReparseDataLength before accessing InodeType to prevent another invalid
      memory access.
      
      Major and minor rdev values are present also only when reparse buffer is
      large enough. Check for reparse buffer size before calling reparse_mkdev().
      
      Fixes: d5ecebc4 ("smb3: Allow query of symlinks stored as reparse points")
      Reviewed-by: default avatarPaulo Alcantara (Red Hat) <pc@manguebit.com>
      Signed-off-by: default avatarPali Rohár <pali@kernel.org>
      Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
      e2a8910a
    • Linus Torvalds's avatar
      Merge tag 'net-6.12-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net · 8c245fe7
      Linus Torvalds authored
      Pull networking fixes from Paolo Abeni:
       "Including fixes from ieee802154, bluetooth and netfilter.
      
        Current release - regressions:
      
         - eth: mlx5: fix wrong reserved field in hca_cap_2 in mlx5_ifc
      
         - eth: am65-cpsw: fix forever loop in cleanup code
      
        Current release - new code bugs:
      
         - eth: mlx5: HWS, fixed double-free in error flow of creating SQ
      
        Previous releases - regressions:
      
         - core: avoid potential underflow in qdisc_pkt_len_init() with UFO
      
         - core: test for not too small csum_start in virtio_net_hdr_to_skb()
      
         - vrf: revert "vrf: remove unnecessary RCU-bh critical section"
      
         - bluetooth:
             - fix uaf in l2cap_connect
             - fix possible crash on mgmt_index_removed
      
         - dsa: improve shutdown sequence
      
         - eth: mlx5e: SHAMPO, fix overflow of hd_per_wq
      
         - eth: ip_gre: fix drops of small packets in ipgre_xmit
      
        Previous releases - always broken:
      
         - core: fix gso_features_check to check for both
           dev->gso_{ipv4_,}max_size
      
         - core: fix tcp fraglist segmentation after pull from frag_list
      
         - netfilter: nf_tables: prevent nf_skb_duplicated corruption
      
         - sctp: set sk_state back to CLOSED if autobind fails in
           sctp_listen_start
      
         - mac802154: fix potential RCU dereference issue in
           mac802154_scan_worker
      
         - eth: fec: restart PPS after link state change"
      
      * tag 'net-6.12-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (48 commits)
        sctp: set sk_state back to CLOSED if autobind fails in sctp_listen_start
        dt-bindings: net: xlnx,axi-ethernet: Add missing reg minItems
        doc: net: napi: Update documentation for napi_schedule_irqoff
        net/ncsi: Disable the ncsi work before freeing the associated structure
        net: phy: qt2025: Fix warning: unused import DeviceId
        gso: fix udp gso fraglist segmentation after pull from frag_list
        bridge: mcast: Fail MDB get request on empty entry
        vrf: revert "vrf: Remove unnecessary RCU-bh critical section"
        net: ethernet: ti: am65-cpsw: Fix forever loop in cleanup code
        net: phy: realtek: Check the index value in led_hw_control_get
        ppp: do not assume bh is held in ppp_channel_bridge_input()
        selftests: rds: move include.sh to TEST_FILES
        net: test for not too small csum_start in virtio_net_hdr_to_skb()
        net: gso: fix tcp fraglist segmentation after pull from frag_list
        ipv4: ip_gre: Fix drops of small packets in ipgre_xmit
        net: stmmac: dwmac4: extend timeout for VLAN Tag register busy bit check
        net: add more sanity checks to qdisc_pkt_len_init()
        net: avoid potential underflow in qdisc_pkt_len_init() with UFO
        net: ethernet: ti: cpsw_ale: Fix warning on some platforms
        net: microchip: Make FDMA config symbol invisible
        ...
      8c245fe7
    • Linus Torvalds's avatar
      Merge tag 'v6.12-rc1-ksmbd-fixes' of git://git.samba.org/ksmbd · 9c02404b
      Linus Torvalds authored
      Pull smb server fixes from Steve French:
      
       - small cleanup patches leveraging struct size to improve access bounds checking
      
      * tag 'v6.12-rc1-ksmbd-fixes' of git://git.samba.org/ksmbd:
        ksmbd: Use struct_size() to improve smb_direct_rdma_xmit()
        ksmbd: Annotate struct copychunk_ioctl_req with __counted_by_le()
        ksmbd: Use struct_size() to improve get_file_alternate_info()
      9c02404b
    • Linus Torvalds's avatar
      Merge tag 'vfs-6.12-rc2.fixes.2' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs · 20c2474f
      Linus Torvalds authored
      Pull vfs fixes from Christian Brauner:
       "vfs:
      
         - Ensure that iter_folioq_get_pages() advances to the next slot
           otherwise it will end up using the same folio with an out-of-bound
           offset.
      
        iomap:
      
         - Dont unshare delalloc extents which can't be reflinked, and thus
           can't be shared.
      
         - Constrain the file range passed to iomap_file_unshare() directly in
           iomap instead of requiring the callers to do it.
      
        netfs:
      
         - Use folioq_count instead of folioq_nr_slot to prevent an
           unitialized value warning in netfs_clear_buffer().
      
         - Fix missing wakeup after issuing writes by scheduling the write
           collector only if all the subrequest queues are empty and thus no
           writes are pending.
      
         - Fix two minor documentation bugs"
      
      * tag 'vfs-6.12-rc2.fixes.2' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs:
        iomap: constrain the file range passed to iomap_file_unshare
        iomap: don't bother unsharing delalloc extents
        netfs: Fix missing wakeup after issuing writes
        Documentation: add missing folio_queue entry
        folio_queue: fix documentation
        netfs: Fix a KMSAN uninit-value error in netfs_clear_buffer
        iov_iter: fix advancing slot in iter_folioq_get_pages()
      20c2474f
    • Xin Long's avatar
      sctp: set sk_state back to CLOSED if autobind fails in sctp_listen_start · 8beee4d8
      Xin Long authored
      In sctp_listen_start() invoked by sctp_inet_listen(), it should set the
      sk_state back to CLOSED if sctp_autobind() fails due to whatever reason.
      
      Otherwise, next time when calling sctp_inet_listen(), if sctp_sk(sk)->reuse
      is already set via setsockopt(SCTP_REUSE_PORT), sctp_sk(sk)->bind_hash will
      be dereferenced as sk_state is LISTENING, which causes a crash as bind_hash
      is NULL.
      
        KASAN: null-ptr-deref in range [0x0000000000000000-0x0000000000000007]
        RIP: 0010:sctp_inet_listen+0x7f0/0xa20 net/sctp/socket.c:8617
        Call Trace:
         <TASK>
         __sys_listen_socket net/socket.c:1883 [inline]
         __sys_listen+0x1b7/0x230 net/socket.c:1894
         __do_sys_listen net/socket.c:1902 [inline]
      
      Fixes: 5e8f3f70 ("sctp: simplify sctp listening code")
      Reported-by: syzbot+f4e0f821e3a3b7cee51d@syzkaller.appspotmail.com
      Signed-off-by: default avatarXin Long <lucien.xin@gmail.com>
      Acked-by: default avatarMarcelo Ricardo Leitner <marcelo.leitner@gmail.com>
      Link: https://patch.msgid.link/a93e655b3c153dc8945d7a812e6d8ab0d52b7aa0.1727729391.git.lucien.xin@gmail.comSigned-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      8beee4d8
    • Ravikanth Tuniki's avatar
      dt-bindings: net: xlnx,axi-ethernet: Add missing reg minItems · c6929644
      Ravikanth Tuniki authored
      Add missing reg minItems as based on current binding document
      only ethernet MAC IO space is a supported configuration.
      
      There is a bug in schema, current examples contain 64-bit
      addressing as well as 32-bit addressing. The schema validation
      does pass incidentally considering one 64-bit reg address as
      two 32-bit reg address entries. If we change axi_ethernet_eth1
      example node reg addressing to 32-bit schema validation reports:
      
      Documentation/devicetree/bindings/net/xlnx,axi-ethernet.example.dtb:
      ethernet@40000000: reg: [[1073741824, 262144]] is too short
      
      To fix it add missing reg minItems constraints and to make things clearer
      stick to 32-bit addressing in examples.
      
      Fixes: cbb1ca6d ("dt-bindings: net: xlnx,axi-ethernet: convert bindings document to yaml")
      Signed-off-by: default avatarRavikanth Tuniki <ravikanth.tuniki@amd.com>
      Signed-off-by: default avatarRadhey Shyam Pandey <radhey.shyam.pandey@amd.com>
      Acked-by: default avatarConor Dooley <conor.dooley@microchip.com>
      Link: https://patch.msgid.link/1727723615-2109795-1-git-send-email-radhey.shyam.pandey@amd.comSigned-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      c6929644
    • Sean Anderson's avatar
      doc: net: napi: Update documentation for napi_schedule_irqoff · b63ad06d
      Sean Anderson authored
      Since commit 8380c81d ("net: Treat __napi_schedule_irqoff() as
      __napi_schedule() on PREEMPT_RT"), napi_schedule_irqoff will do the
      right thing if IRQs are threaded. Therefore, there is no need to use
      IRQF_NO_THREAD.
      Signed-off-by: default avatarSean Anderson <sean.anderson@linux.dev>
      Reviewed-by: default avatarBagas Sanjaya <bagasdotme@gmail.com>
      Reviewed-by: default avatarSebastian Andrzej Siewior <bigeasy@linutronix.de>
      Link: https://patch.msgid.link/20240930153955.971657-1-sean.anderson@linux.devSigned-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      b63ad06d
    • Paolo Abeni's avatar
      Merge tag 'nf-24-10-02' of git://git.kernel.org/pub/scm/linux/kernel/git/netfilter/nf · 1127c73a
      Paolo Abeni authored
      Pablo Neira Ayuso says:
      
      ====================
      Netfilter fixes for net
      
      The following patchset contains Netfilter fixes for net:
      
      1) Fix incorrect documentation in uapi/linux/netfilter/nf_tables.h
         regarding flowtable hooks, from Phil Sutter.
      
      2) Fix nft_audit.sh selftests with newer nft binaries, due to different
         (valid) audit output, also from Phil.
      
      3) Disable BH when duplicating packets via nf_dup infrastructure,
         otherwise race on nf_skb_duplicated for locally generated traffic.
         From Eric.
      
      4) Missing return in callback of selftest C program, from zhang jiao.
      
      netfilter pull request 24-10-02
      
      * tag 'nf-24-10-02' of git://git.kernel.org/pub/scm/linux/kernel/git/netfilter/nf:
        selftests: netfilter: Add missing return value
        netfilter: nf_tables: prevent nf_skb_duplicated corruption
        selftests: netfilter: Fix nft_audit.sh for newer nft binaries
        netfilter: uapi: NFTA_FLOWTABLE_HOOK is NLA_NESTED
      ====================
      
      Link: https://patch.msgid.link/20241002202421.1281311-1-pablo@netfilter.orgSigned-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      1127c73a
    • Darrick J. Wong's avatar
      iomap: constrain the file range passed to iomap_file_unshare · a311a08a
      Darrick J. Wong authored
      File contents can only be shared (i.e. reflinked) below EOF, so it makes
      no sense to try to unshare ranges beyond EOF.  Constrain the file range
      parameters here so that we don't have to do that in the callers.
      
      Fixes: 5f4e5752 ("fs: add iomap_file_dirty")
      Signed-off-by: default avatarDarrick J. Wong <djwong@kernel.org>
      Link: https://lore.kernel.org/r/20241002150213.GC21853@frogsfrogsfrogsReviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Reviewed-by: default avatarBrian Foster <bfoster@redhat.com>
      Signed-off-by: default avatarChristian Brauner <brauner@kernel.org>
      a311a08a
    • Darrick J. Wong's avatar
      iomap: don't bother unsharing delalloc extents · f7a4874d
      Darrick J. Wong authored
      If unshare encounters a delalloc reservation in the srcmap, that means
      that the file range isn't shared because delalloc reservations cannot be
      reflinked.  Therefore, don't try to unshare them.
      Signed-off-by: default avatarDarrick J. Wong <djwong@kernel.org>
      Link: https://lore.kernel.org/r/20241002150040.GB21853@frogsfrogsfrogsReviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Reviewed-by: default avatarBrian Foster <bfoster@redhat.com>
      Signed-off-by: default avatarChristian Brauner <brauner@kernel.org>
      f7a4874d
    • Eddie James's avatar
      net/ncsi: Disable the ncsi work before freeing the associated structure · a0ffa68c
      Eddie James authored
      The work function can run after the ncsi device is freed, resulting
      in use-after-free bugs or kernel panic.
      
      Fixes: 2d283bdd ("net/ncsi: Resource management")
      Signed-off-by: default avatarEddie James <eajames@linux.ibm.com>
      Link: https://patch.msgid.link/20240925155523.1017097-1-eajames@linux.ibm.comSigned-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      a0ffa68c
    • Patrick Donnelly's avatar
      ceph: fix cap ref leak via netfs init_request · ccda9910
      Patrick Donnelly authored
      Log recovered from a user's cluster:
      
          <7>[ 5413.970692] ceph:  get_cap_refs 00000000958c114b ret 1 got Fr
          <7>[ 5413.970695] ceph:  start_read 00000000958c114b, no cache cap
          ...
          <7>[ 5473.934609] ceph:   my wanted = Fr, used = Fr, dirty -
          <7>[ 5473.934616] ceph:  revocation: pAsLsXsFr -> pAsLsXs (revoking Fr)
          <7>[ 5473.934632] ceph:  __ceph_caps_issued 00000000958c114b cap 00000000f7784259 issued pAsLsXs
          <7>[ 5473.934638] ceph:  check_caps 10000000e68.fffffffffffffffe file_want - used Fr dirty - flushing - issued pAsLsXs revoking Fr retain pAsLsXsFsr  AUTHONLY NOINVAL FLUSH_FORCE
      
      The MDS subsequently complains that the kernel client is late releasing
      caps.
      
      Approximately, a series of changes to this code by commits 49870056
      ("ceph: convert ceph_readpages to ceph_readahead"), 2de16041
      ("netfs: Change ->init_request() to return an error code") and
      a5c9dc44 ("ceph: Make ceph_init_request() check caps on readahead")
      resulted in subtle resource cleanup to be missed. The main culprit is
      the change in error handling in 2de16041 which meant that a failure
      in init_request() would no longer cause cleanup to be called. That
      would prevent the ceph_put_cap_refs() call which would cleanup the
      leaked cap ref.
      
      Cc: stable@vger.kernel.org
      Fixes: a5c9dc44 ("ceph: Make ceph_init_request() check caps on readahead")
      Link: https://tracker.ceph.com/issues/67008Signed-off-by: default avatarPatrick Donnelly <pdonnell@redhat.com>
      Reviewed-by: default avatarIlya Dryomov <idryomov@gmail.com>
      Signed-off-by: default avatarIlya Dryomov <idryomov@gmail.com>
      ccda9910
    • Thorsten Blum's avatar
      ceph: use struct_size() helper in __ceph_pool_perm_get() · 7264745d
      Thorsten Blum authored
      Use struct_size() to calculate the number of bytes to be allocated.
      Signed-off-by: default avatarThorsten Blum <thorsten.blum@toblux.com>
      Reviewed-by: default avatarIlya Dryomov <idryomov@gmail.com>
      Signed-off-by: default avatarIlya Dryomov <idryomov@gmail.com>
      7264745d
    • Takashi Iwai's avatar
      ALSA: hda: Add missing parameter description for snd_hdac_stream_timecounter_init() · 3e880027
      Takashi Iwai authored
      Add the missing description for the new parameter "start" of
      snd_hdac_stream_timecounter_init() in the previous patch.
      
      Fixes: df521561 ("ALSA: hda: fix trigger_tstamp_latched")
      Reported-by: default avatarkernel test robot <lkp@intel.com>
      Closes: https://lore.kernel.org/oe-kbuild-all/202410031300.ecLmATNd-lkp@intel.com/
      Link: https://patch.msgid.link/20241003072420.8932-1-tiwai@suse.deSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      3e880027
    • Jan Lalinsky's avatar
      ALSA: usb-audio: Add native DSD support for Luxman D-08u · 6b0bde5d
      Jan Lalinsky authored
      Add native DSD support for Luxman D-08u DAC, by adding the PID/VID 1852:5062.
      This makes DSD playback work, and also sound quality when playing PCM files
      is improved, crackling sounds are gone.
      Signed-off-by: default avatarJan Lalinsky <lalinsky@c4.cz>
      Cc: <stable@vger.kernel.org>
      Link: https://patch.msgid.link/20241003030811.2655735-1-lalinsky@c4.czSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      6b0bde5d
    • Jaroslav Kysela's avatar
    • Matthew Brost's avatar
      drm/xe: Fix memory leak when aborting binds · a6f3b252
      Matthew Brost authored
      Make sure to call xe_pt_update_ops_fini in xe_pt_update_ops_abort to
      free any memory the bind allocated.
      
      Caught by kmemleak when running Vulkan CTS tests on LNL. The leak
      seems to happen only when there's some kind of failure happening, like
      the lack of memory. Example output:
      
      unreferenced object 0xffff9120bdf62000 (size 8192):
        comm "deqp-vk", pid 115008, jiffies 4310295728
        hex dump (first 32 bytes):
          00 00 00 00 00 00 00 00 1b 05 f9 28 01 00 00 40  ...........(...@
          00 00 00 00 00 00 00 00 1b 15 f9 28 01 00 00 40  ...........(...@
        backtrace (crc 7a56be79):
          [<ffffffff86dd81f0>] __kmalloc_cache_noprof+0x310/0x3d0
          [<ffffffffc08e8211>] xe_pt_new_shared.constprop.0+0x81/0xb0 [xe]
          [<ffffffffc08e8309>] xe_pt_insert_entry+0xb9/0x140 [xe]
          [<ffffffffc08eab6d>] xe_pt_stage_bind_entry+0x12d/0x5b0 [xe]
          [<ffffffffc08ecbca>] xe_pt_walk_range+0xea/0x280 [xe]
          [<ffffffffc08eccea>] xe_pt_walk_range+0x20a/0x280 [xe]
          [<ffffffffc08eccea>] xe_pt_walk_range+0x20a/0x280 [xe]
          [<ffffffffc08eccea>] xe_pt_walk_range+0x20a/0x280 [xe]
          [<ffffffffc08eccea>] xe_pt_walk_range+0x20a/0x280 [xe]
          [<ffffffffc08e9eff>] xe_pt_stage_bind.constprop.0+0x25f/0x580 [xe]
          [<ffffffffc08eb21a>] bind_op_prepare+0xea/0x6e0 [xe]
          [<ffffffffc08ebab8>] xe_pt_update_ops_prepare+0x1c8/0x440 [xe]
          [<ffffffffc08ffbf3>] ops_execute+0x143/0x850 [xe]
          [<ffffffffc0900b64>] vm_bind_ioctl_ops_execute+0x244/0x800 [xe]
          [<ffffffffc0906467>] xe_vm_bind_ioctl+0x1877/0x2370 [xe]
          [<ffffffffc05e92b3>] drm_ioctl_kernel+0xb3/0x110 [drm]
      unreferenced object 0xffff9120bdf72000 (size 8192):
        comm "deqp-vk", pid 115008, jiffies 4310295728
        hex dump (first 32 bytes):
          6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b  kkkkkkkkkkkkkkkk
          6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b  kkkkkkkkkkkkkkkk
        backtrace (crc 23b2f0b5):
          [<ffffffff86dd81f0>] __kmalloc_cache_noprof+0x310/0x3d0
          [<ffffffffc08e8211>] xe_pt_new_shared.constprop.0+0x81/0xb0 [xe]
          [<ffffffffc08e8453>] xe_pt_stage_unbind_post_descend+0xb3/0x150 [xe]
          [<ffffffffc08ecd26>] xe_pt_walk_range+0x246/0x280 [xe]
          [<ffffffffc08eccea>] xe_pt_walk_range+0x20a/0x280 [xe]
          [<ffffffffc08eccea>] xe_pt_walk_range+0x20a/0x280 [xe]
          [<ffffffffc08eccea>] xe_pt_walk_range+0x20a/0x280 [xe]
          [<ffffffffc08ece31>] xe_pt_walk_shared+0xc1/0x110 [xe]
          [<ffffffffc08e7b2a>] xe_pt_stage_unbind+0x9a/0xd0 [xe]
          [<ffffffffc08e913d>] unbind_op_prepare+0xdd/0x270 [xe]
          [<ffffffffc08eb9f6>] xe_pt_update_ops_prepare+0x106/0x440 [xe]
          [<ffffffffc08ffbf3>] ops_execute+0x143/0x850 [xe]
          [<ffffffffc0900b64>] vm_bind_ioctl_ops_execute+0x244/0x800 [xe]
          [<ffffffffc0906467>] xe_vm_bind_ioctl+0x1877/0x2370 [xe]
          [<ffffffffc05e92b3>] drm_ioctl_kernel+0xb3/0x110 [drm]
          [<ffffffffc05e95a0>] drm_ioctl+0x280/0x4e0 [drm]
      Reported-by: default avatarPaulo Zanoni <paulo.r.zanoni@intel.com>
      Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/2877
      Fixes: a708f650 ("drm/xe: Update PT layer with better error handling")
      Signed-off-by: default avatarMatthew Brost <matthew.brost@intel.com>
      Reviewed-by: default avatarPaulo Zanoni <paulo.r.zanoni@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20240927232228.3255246-1-matthew.brost@intel.com
      (cherry picked from commit 63e0695597a044c96bf369e4d8ba031291449d95)
      Signed-off-by: default avatarLucas De Marchi <lucas.demarchi@intel.com>
      a6f3b252
    • Zhanjun Dong's avatar
      drm/xe: Prevent null pointer access in xe_migrate_copy · 7257d9c9
      Zhanjun Dong authored
      xe_migrate_copy designed to copy content of TTM resources. When source
      resource is null, it will trigger a NULL pointer dereference in
      xe_migrate_copy. To avoid this situation, update lacks source flag to
      true for this case, the flag will trigger xe_migrate_clear rather than
      xe_migrate_copy.
      
      Issue trace:
      <7> [317.089847] xe 0000:00:02.0: [drm:xe_migrate_copy [xe]] Pass 14,
       sizes: 4194304 & 4194304
      <7> [317.089945] xe 0000:00:02.0: [drm:xe_migrate_copy [xe]] Pass 15,
       sizes: 4194304 & 4194304
      <1> [317.128055] BUG: kernel NULL pointer dereference, address:
       0000000000000010
      <1> [317.128064] #PF: supervisor read access in kernel mode
      <1> [317.128066] #PF: error_code(0x0000) - not-present page
      <6> [317.128069] PGD 0 P4D 0
      <4> [317.128071] Oops: Oops: 0000 [#1] PREEMPT SMP NOPTI
      <4> [317.128074] CPU: 1 UID: 0 PID: 1440 Comm: kunit_try_catch Tainted:
       G     U           N 6.11.0-rc7-xe #1
      <4> [317.128078] Tainted: [U]=USER, [N]=TEST
      <4> [317.128080] Hardware name: Intel Corporation Lunar Lake Client
       Platform/LNL-M LP5 RVP1, BIOS LNLMFWI1.R00.3221.D80.2407291239 07/29/2024
      <4> [317.128082] RIP: 0010:xe_migrate_copy+0x66/0x13e0 [xe]
      <4> [317.128158] Code: 00 00 48 89 8d e0 fe ff ff 48 8b 40 10 4c 89 85 c8
       fe ff ff 44 88 8d bd fe ff ff 65 48 8b 3c 25 28 00 00 00 48 89 7d d0 31
       ff <8b> 79 10 48 89 85 a0 fe ff ff 48 8b 00 48 89 b5 d8 fe ff ff 83 ff
      <4> [317.128162] RSP: 0018:ffffc9000167f9f0 EFLAGS: 00010246
      <4> [317.128164] RAX: ffff8881120d8028 RBX: ffff88814d070428 RCX:
       0000000000000000
      <4> [317.128166] RDX: ffff88813cb99c00 RSI: 0000000004000000 RDI:
       0000000000000000
      <4> [317.128168] RBP: ffffc9000167fbb8 R08: ffff88814e7b1f08 R09:
       0000000000000001
      <4> [317.128170] R10: 0000000000000001 R11: 0000000000000001 R12:
       ffff88814e7b1f08
      <4> [317.128172] R13: ffff88814e7b1f08 R14: ffff88813cb99c00 R15:
       0000000000000001
      <4> [317.128174] FS:  0000000000000000(0000) GS:ffff88846f280000(0000)
       knlGS:0000000000000000
      <4> [317.128176] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      <4> [317.128178] CR2: 0000000000000010 CR3: 000000011f676004 CR4:
       0000000000770ef0
      <4> [317.128180] DR0: 0000000000000000 DR1: 0000000000000000 DR2:
       0000000000000000
      <4> [317.128182] DR3: 0000000000000000 DR6: 00000000ffff07f0 DR7:
       0000000000000400
      <4> [317.128184] PKRU: 55555554
      <4> [317.128185] Call Trace:
      <4> [317.128187]  <TASK>
      <4> [317.128189]  ? show_regs+0x67/0x70
      <4> [317.128194]  ? __die_body+0x20/0x70
      <4> [317.128196]  ? __die+0x2b/0x40
      <4> [317.128198]  ? page_fault_oops+0x15f/0x4e0
      <4> [317.128203]  ? do_user_addr_fault+0x3fb/0x970
      <4> [317.128205]  ? lock_acquire+0xc7/0x2e0
      <4> [317.128209]  ? exc_page_fault+0x87/0x2b0
      <4> [317.128212]  ? asm_exc_page_fault+0x27/0x30
      <4> [317.128216]  ? xe_migrate_copy+0x66/0x13e0 [xe]
      <4> [317.128263]  ? __lock_acquire+0xb9d/0x26f0
      <4> [317.128265]  ? __lock_acquire+0xb9d/0x26f0
      <4> [317.128267]  ? sg_free_append_table+0x20/0x80
      <4> [317.128271]  ? lock_acquire+0xc7/0x2e0
      <4> [317.128273]  ? mark_held_locks+0x4d/0x80
      <4> [317.128275]  ? trace_hardirqs_on+0x1e/0xd0
      <4> [317.128278]  ? _raw_spin_unlock_irqrestore+0x31/0x60
      <4> [317.128281]  ? __pm_runtime_resume+0x60/0xa0
      <4> [317.128284]  xe_bo_move+0x682/0xc50 [xe]
      <4> [317.128315]  ? lock_is_held_type+0xaa/0x120
      <4> [317.128318]  ttm_bo_handle_move_mem+0xe5/0x1a0 [ttm]
      <4> [317.128324]  ttm_bo_validate+0xd1/0x1a0 [ttm]
      <4> [317.128328]  shrink_test_run_device+0x721/0xc10 [xe]
      <4> [317.128360]  ? find_held_lock+0x31/0x90
      <4> [317.128363]  ? lock_release+0xd1/0x2a0
      <4> [317.128365]  ? __pfx_kunit_generic_run_threadfn_adapter+0x10/0x10
       [kunit]
      <4> [317.128370]  xe_bo_shrink_kunit+0x11/0x20 [xe]
      <4> [317.128397]  kunit_try_run_case+0x6e/0x150 [kunit]
      <4> [317.128400]  ? trace_hardirqs_on+0x1e/0xd0
      <4> [317.128402]  ? _raw_spin_unlock_irqrestore+0x31/0x60
      <4> [317.128404]  kunit_generic_run_threadfn_adapter+0x1e/0x40 [kunit]
      <4> [317.128407]  kthread+0xf5/0x130
      <4> [317.128410]  ? __pfx_kthread+0x10/0x10
      <4> [317.128412]  ret_from_fork+0x39/0x60
      <4> [317.128415]  ? __pfx_kthread+0x10/0x10
      <4> [317.128416]  ret_from_fork_asm+0x1a/0x30
      <4> [317.128420]  </TASK>
      
      Fixes: 266c8588 ("drm/xe/xe2: Handle flat ccs move for igfx.")
      Signed-off-by: default avatarZhanjun Dong <zhanjun.dong@intel.com>
      Reviewed-by: default avatarThomas Hellström <thomas.hellstrom@linux.intel.com>
      Signed-off-by: default avatarMatt Roper <matthew.d.roper@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20240927161308.862323-2-zhanjun.dong@intel.com
      (cherry picked from commit 59a1c9c7e1d02b43b415ea92627ce095b7c79e47)
      Signed-off-by: default avatarLucas De Marchi <lucas.demarchi@intel.com>
      7257d9c9