1. 23 Feb, 2024 11 commits
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 86f01602
      Linus Torvalds authored
      Pull arm64 fixes from Will Deacon:
       "A simple fix to a definition in the CXL PMU driver, a couple of
        patches to restore SME control registers on the resume path (since
        Arm's fast model now clears them) and a revert for our jump label asm
        constraints after Geert noticed they broke the build with GCC 5.5.
      
        There was then the ensuing discussion about raising the minimum GCC
        (and corresponding binutils) versions at [1], but for now we'll keep
        things working as they were until that goes ahead.
      
         - Revert fix to jump label asm constraints, as it regresses the build
           with some GCC 5.5 toolchains.
      
         - Restore SME control registers when resuming from suspend
      
         - Fix incorrect filter definition in CXL PMU driver"
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64/sme: Restore SMCR_EL1.EZT0 on exit from suspend
        arm64/sme: Restore SME registers on exit from suspend
        Revert "arm64: jump_label: use constraints "Si" instead of "i""
        perf: CXL: fix CPMU filter value mask length
      86f01602
    • Linus Torvalds's avatar
      Merge tag 's390-6.8-3' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · 5efa18e8
      Linus Torvalds authored
      Pull s390 fixes from Heiko Carstens:
      
       - Fix invalid -EBUSY on ccw_device_start() which can lead to failing
         device initialization
      
       - Add missing multiplication by 8 in __iowrite64_copy() to get the
         correct byte length before calling zpci_memcpy_toio()
      
       - Various config updates
      
      * tag 's390-6.8-3' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
        s390/cio: fix invalid -EBUSY on ccw_device_start
        s390: use the correct count for __iowrite64_copy()
        s390/configs: update default configurations
        s390/configs: enable INIT_STACK_ALL_ZERO in all configurations
        s390/configs: provide compat topic configuration target
      5efa18e8
    • Linus Torvalds's avatar
      Merge tag 'mm-hotfixes-stable-2024-02-22-15-02' of... · 95e73fb1
      Linus Torvalds authored
      Merge tag 'mm-hotfixes-stable-2024-02-22-15-02' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
      
      Pull misc fixes from Andrew Morton:
       "A batch of MM (and one non-MM) hotfixes.
      
        Ten are cc:stable and the remainder address post-6.7 issues or aren't
        considered appropriate for backporting"
      
      * tag 'mm-hotfixes-stable-2024-02-22-15-02' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm:
        kasan: guard release_free_meta() shadow access with kasan_arch_is_ready()
        mm/damon/lru_sort: fix quota status loss due to online tunings
        mm/damon/reclaim: fix quota stauts loss due to online tunings
        MAINTAINERS: mailmap: update Shakeel's email address
        mm/damon/sysfs-schemes: handle schemes sysfs dir removal before commit_schemes_quota_goals
        mm: memcontrol: clarify swapaccount=0 deprecation warning
        mm/memblock: add MEMBLOCK_RSRV_NOINIT into flagname[] array
        mm/zswap: invalidate duplicate entry when !zswap_enabled
        lib/Kconfig.debug: TEST_IOV_ITER depends on MMU
        mm/swap: fix race when skipping swapcache
        mm/swap_state: update zswap LRU's protection range with the folio locked
        selftests/mm: uffd-unit-test check if huge page size is 0
        mm/damon/core: check apply interval in damon_do_apply_schemes()
        mm: zswap: fix missing folio cleanup in writeback race path
      95e73fb1
    • Linus Torvalds's avatar
      Merge tag 'for-6.8/dm-fixes-2' of... · e7768e65
      Linus Torvalds authored
      Merge tag 'for-6.8/dm-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm
      
      Pull device mapper fixes from Mike Snitzer:
      
       - Stable fixes for 3 DM targets (integrity, verity and crypt) to
         address systemic failure that can occur if user provided pages map to
         the same block.
      
       - Fix DM crypt to not allow modifying data that being encrypted for
         authenticated encryption.
      
       - Fix DM crypt and verity targets to align their respective bvec_iter
         struct members to avoid the need for byte level access (due to
         __packed attribute) that is costly on some arches (like RISC).
      
      * tag 'for-6.8/dm-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm:
        dm-crypt, dm-integrity, dm-verity: bump target version
        dm-verity, dm-crypt: align "struct bvec_iter" correctly
        dm-crypt: recheck the integrity tag after a failure
        dm-crypt: don't modify the data when using authenticated encryption
        dm-verity: recheck the hash after a failure
        dm-integrity: recheck the integrity tag after a failure
      e7768e65
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-2024-02-23' of git://anongit.freedesktop.org/drm/drm · 06b7ef70
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "This is the weekly drm fixes. Non-drivers there is a fbdev/sparc fix,
        syncobj, ttm and buddy fixes.
      
        On the driver side, ivpu, meson, i915 have a small fix each. Then
        amdgpu and xe have a bunch. Nouveau has some minor uapi additions to
        give userspace some useful info along with a Kconfig change to allow
        the new GSP firmware paths to be used by default on the GPUs it
        supports.
      
        Seems about the usual amount for this time of release cycle.
      
        fbdev:
         - fix sparc undefined reference
      
        syncobj:
         - fix sync obj fence waiting
         - handle NULL fence in syncobj eventfd code
      
        ttm:
         - fix invalid free
      
        buddy:
         - fix list handling
         - fix 32-bit build
      
        meson:
         - don't remove bridges from other drivers
      
        nouveau:
         - fix build warnings
         - add two minor info parameters
         - add a Kconfig to allow GSP by default on some GPUs
      
        ivpu:
         - allow fw to do initial tile config
      
        i915:
         - fix TV mode
      
        amdgpu:
         - Suspend/resume fixes
         - Backlight error fix
         - DCN 3.5 fixes
         - Misc fixes
      
        xe:
         - Remove support for persistent exec_queues
         - Drop a reduntant sysfs newline printout
         - A three-patch fix for a VM_BIND rebind optimization path
         - Fix a modpost warning on an xe KUNIT module"
      
      * tag 'drm-fixes-2024-02-23' of git://anongit.freedesktop.org/drm/drm: (27 commits)
        nouveau: add an ioctl to report vram usage
        nouveau: add an ioctl to return vram bar size.
        nouveau/gsp: add kconfig option to enable GSP paths by default
        drm/amdgpu: Fix the runtime resume failure issue
        drm/amd/display: fix null-pointer dereference on edid reading
        drm/amd/display: Fix memory leak in dm_sw_fini()
        drm/amd/display: fix input states translation error for dcn35 & dcn351
        drm/amd/display: Fix potential null pointer dereference in dc_dmub_srv
        drm/amd/display: Only allow dig mapping to pwrseq in new asic
        drm/amd/display: adjust few initialization order in dm
        drm/syncobj: handle NULL fence in syncobj_eventfd_entry_func
        drm/syncobj: call drm_syncobj_fence_add_wait when WAIT_AVAILABLE flag is set
        drm/ttm: Fix an invalid freeing on already freed page in error path
        sparc: Fix undefined reference to fb_is_primary_device
        drm/xe: Fix modpost warning on xe_mocs kunit module
        drm/xe/xe_gt_idle: Drop redundant newline in name
        drm/xe: Return 2MB page size for compact 64k PTEs
        drm/xe: Add XE_VMA_PTE_64K VMA flag
        drm/xe: Fix xe_vma_set_pte_size
        drm/xe/uapi: Remove support for persistent exec_queues
        ...
      06b7ef70
    • Linus Torvalds's avatar
      Merge tag 'ata-6.8-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/libata/linux · b6d69282
      Linus Torvalds authored
      Pull ata fixes from Niklas Cassel:
      
       - Do not try to set a sleeping device to standby. Sleep is a deeper
         sleep state than standby, and needs a reset to wake up the drive. A
         system resume will reset the port. Sending a command other than reset
         to a sleeping device is not wise, as the command will timeout (Damien
         Le Moal)
      
       - Do not try to put a device to standby twice during system shutdown.
         ata_dev_power_set_standby() is currently called twice during
         shutdown, once after the scsi device is removed, and another when
         ata_pci_shutdown_one() executes. Modify ata_dev_power_set_standby()
         to do nothing if the device is already in standby (Damien Le Moal)
      
       - Add a quirk for ASM1064 to fixup the number of implemented ports. We
         probe all ports that the hardware reports to be implemented. Probing
         ports that are not implemented causes significantly increased boot
         time (Andrey Jr. Melnikov)
      
       - Fix error handling for the ahci_ceva driver. Ensure that the
         ahci_ceva driver does a proper cleanup of its resources in the error
         path (Radhey Shyam Pandey)
      
      * tag 'ata-6.8-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/libata/linux:
        ata: libata-core: Do not call ata_dev_power_set_standby() twice
        ata: ahci_ceva: fix error handling for Xilinx GT PHY support
        ahci: asm1064: correct count of reported ports
        ata: libata-core: Do not try to set sleeping devices to standby
      b6d69282
    • Linus Torvalds's avatar
      Merge tag 'gpio-fixes-for-v6.8-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux · 9cd42be8
      Linus Torvalds authored
      Pull gpio fix from Bartosz Golaszewski:
      
       - fix a use-case where no pins are mapped to GPIOs in
         gpiochip_generic_config()
      
      * tag 'gpio-fixes-for-v6.8-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux:
        gpiolib: Handle no pin_ranges in gpiochip_generic_config()
      9cd42be8
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-v6.8-rc6' of... · 76d885a1
      Linus Torvalds authored
      Merge tag 'hwmon-for-v6.8-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
      
      Pull hwmon fix from Guenter Roeck:
       "Fix a global-out-of-bounds bug in nct6775 driver"
      
      * tag 'hwmon-for-v6.8-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
        hwmon: (nct6775) Fix access to temperature configuration registers
      76d885a1
    • Dave Airlie's avatar
      nouveau: add an ioctl to report vram usage · 72fa02fd
      Dave Airlie authored
      This reports the currently used vram allocations.
      
      userspace using this has been proposed for nvk, but
      it's a rather trivial uapi addition.
      Reviewed-by: default avatarFaith Ekstrand <faith.ekstrand@collabora.com>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      72fa02fd
    • Dave Airlie's avatar
      nouveau: add an ioctl to return vram bar size. · 3f4d8aac
      Dave Airlie authored
      This returns the BAR resources size so userspace can make
      decisions based on rebar support.
      
      userspace using this has been proposed for nvk, but
      it's a rather trivial uapi addition.
      Reviewed-by: default avatarFaith Ekstrand <faith.ekstrand@collabora.com>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      3f4d8aac
    • Dave Airlie's avatar
      nouveau/gsp: add kconfig option to enable GSP paths by default · 1d492944
      Dave Airlie authored
      Turing and Ampere will continue to use the old paths by default,
      but we should allow distros to decide what the policy is.
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20240214040632.661069-1-airlied@gmail.com
      1d492944
  2. 22 Feb, 2024 29 commits
    • Dave Airlie's avatar
      Merge tag 'drm-xe-fixes-2024-02-22' of https://gitlab.freedesktop.org/drm/xe/kernel into drm-fixes · 7c548869
      Dave Airlie authored
      UAPI Changes:
      - Remove support for persistent exec_queues
      - Drop a reduntant sysfs newline printout
      
      Cross-subsystem Changes:
      
      Core Changes:
      
      Driver Changes:
      - A three-patch fix for a VM_BIND rebind optimization path
      - Fix a modpost warning on an xe KUNIT module
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      From: Thomas Hellstrom <thomas.hellstrom@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/ZdcsNrxdWMMM417v@fedora
      7c548869
    • Dave Airlie's avatar
      Merge tag 'amd-drm-fixes-6.8-2024-02-22' of... · bfc7746a
      Dave Airlie authored
      Merge tag 'amd-drm-fixes-6.8-2024-02-22' of https://gitlab.freedesktop.org/agd5f/linux into drm-fixes
      
      amd-drm-fixes-6.8-2024-02-22:
      
      amdgpu:
      - Suspend/resume fixes
      - Backlight error fix
      - DCN 3.5 fixes
      - Misc fixes
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      From: Alex Deucher <alexander.deucher@amd.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20240222195338.5809-1-alexander.deucher@amd.com
      bfc7746a
    • Dave Airlie's avatar
      Merge tag 'drm-intel-fixes-2024-02-22' of... · 741922e7
      Dave Airlie authored
      Merge tag 'drm-intel-fixes-2024-02-22' of git://anongit.freedesktop.org/drm/drm-intel into drm-fixes
      
      - Fixup for TV mode
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      From: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/ZdcwT9kltvEgJZZE@jlahtine-mobl.ger.corp.intel.com
      741922e7
    • Dave Airlie's avatar
      Merge tag 'drm-misc-fixes-2024-02-22' of git://anongit.freedesktop.org/drm/drm-misc into drm-fixes · f581dbb3
      Dave Airlie authored
      A list handling fix and 64bit division on 32bit platform fix for the
      drm/buddy allocator, a cast warning and an initialization fix for
      nouveau, a bridge handling fix for meson, an initialisation fix for
      ivpu, a SPARC build fix for fbdev, a double-free fix for ttm, and two
      fence handling fixes for syncobj.
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      From: Maxime Ripard <mripard@redhat.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/gl2antuifidtzn3dfm426p7xwh5fxj23behagwh26owfnosh2w@gqoa7vj5prnh
      f581dbb3
    • Linus Torvalds's avatar
      Merge tag 'block-6.8-2024-02-22' of git://git.kernel.dk/linux · ffd2cb6b
      Linus Torvalds authored
      Pull block fixes from Jens Axboe:
       "Mostly just fixlets for md, but also a sed-opal parsing fix"
      
      * tag 'block-6.8-2024-02-22' of git://git.kernel.dk/linux:
        block: sed-opal: handle empty atoms when parsing response
        md: Don't suspend the array for interrupted reshape
        md: Don't register sync_thread for reshape directly
        md: Make sure md_do_sync() will set MD_RECOVERY_DONE
        md: Don't ignore read-only array in md_check_recovery()
        md: Don't ignore suspended array in md_check_recovery()
        md: Fix missing release of 'active_io' for flush
      ffd2cb6b
    • Linus Torvalds's avatar
      Merge tag 'for-linus-iommufd' of git://git.kernel.org/pub/scm/linux/kernel/git/jgg/iommufd · 4c36fbb4
      Linus Torvalds authored
      Pull iommufd fixes from Jason Gunthorpe:
      
       - Fix dirty tracking bitmap collection when using reporting bitmaps
         that are not neatly aligned to u64's or match the IO page table radix
         tree layout.
      
       - Add self tests to cover the cases that were found to be broken.
      
       - Add missing enforcement of invalidation type in the uapi.
      
       - Fix selftest config generation
      
      * tag 'for-linus-iommufd' of git://git.kernel.org/pub/scm/linux/kernel/git/jgg/iommufd:
        selftests/iommu: fix the config fragment
        iommufd: Reject non-zero data_type if no data_len is provided
        iommufd/iova_bitmap: Consider page offset for the pages to be pinned
        iommufd/selftest: Add mock IO hugepages tests
        iommufd/selftest: Hugepage mock domain support
        iommufd/selftest: Refactor mock_domain_read_and_clear_dirty()
        iommufd/selftest: Refactor dirty bitmap tests
        iommufd/iova_bitmap: Handle recording beyond the mapped pages
        iommufd/selftest: Test u64 unaligned bitmaps
        iommufd/iova_bitmap: Switch iova_bitmap::bitmap to an u8 array
        iommufd/iova_bitmap: Bounds check mapped::pages access
      4c36fbb4
    • Linus Torvalds's avatar
      Merge tag 'platform-drivers-x86-v6.8-3' of... · c7138f7a
      Linus Torvalds authored
      Merge tag 'platform-drivers-x86-v6.8-3' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86
      
      Pull x86 platform driver fixes from Hans de Goede:
       "Regression fixes:
      
         - Fix INT0002 vGPIO events no longer working after 6.8 ACPI SCI
           changes
      
         - AMD-PMF: Fix laptops (e.g. Framework 13 AMD) hanging on suspend
      
         - x86-android-tablets: Fix touchscreen no longer working on Lenovo
           Yogabook
      
         - x86-android-tablets: Fix serdev instantiation regression
      
         - intel-vbtn: Fix ThinkPad X1 Tablet Gen2 no longer suspending
      
        Bug fixes:
      
         - think-lmi: Fix changing BIOS settings on Lenovo workstations
      
         - touchscreen_dmi: Fix Hi8 Air touchscreen data sometimes missing
      
         - AMD-PMF: Fix Smart PC support not working after suspend/resume
      
        Other misc small fixes"
      
      * tag 'platform-drivers-x86-v6.8-3' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86:
        platform/x86: thinkpad_acpi: Only update profile if successfully converted
        platform/x86: intel-vbtn: Stop calling "VBDL" from notify_handler
        platform/x86: x86-android-tablets: Fix acer_b1_750_goodix_gpios name
        platform/x86: x86-android-tablets: Fix serdev instantiation no longer working
        platform/x86: Add new get_serdev_controller() helper
        platform/x86: x86-android-tablets: Fix keyboard touchscreen on Lenovo Yogabook1 X90
        platform/x86/amd/pmf: Fix a potential race with policy binary sideload
        platform/x86/amd/pmf: Fixup error handling for amd_pmf_init_smart_pc()
        platform/x86/amd/pmf: Add debugging message for missing policy data
        platform/x86/amd/pmf: Fix a suspend hang on Framework 13
        platform/x86/amd/pmf: Fix TEE enact command failure after suspend and resume
        platform/x86/amd/pmf: Remove smart_pc_status enum
        platform/x86: touchscreen_dmi: Consolidate Goodix upside-down touchscreen data
        platform/x86: touchscreen_dmi: Allow partial (prefix) matches for ACPI names
        platform/x86: intel: int0002_vgpio: Pass IRQF_ONESHOT to request_irq()
        platform/x86: think-lmi: Fix password opcode ordering for workstations
      c7138f7a
    • Linus Torvalds's avatar
      Merge tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux · 88953761
      Linus Torvalds authored
      Pull clk fixes from Stephen Boyd:
       "Here are some Samsung clk driver fixes I've been sitting on for far
        too long.
      
        They fix the bindings and clk driver for the Google GS101 SoC"
      
      * tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux:
        clk: samsung: clk-gs101: comply with the new dt cmu_misc clock names
        dt-bindings: clock: gs101: rename cmu_misc clock-names
      88953761
    • Linus Torvalds's avatar
      Merge tag 'vfs-6.8-rc6.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs · 1c892cdd
      Linus Torvalds authored
      Pull vfs fixes from Christian Brauner:
      
       - Fix a memory leak in cachefiles
      
       - Restrict aio cancellations to I/O submitted through the aio
         interfaces as this is otherwise causing issues for I/O submitted
         via io_uring
      
       - Increase buffer for afs volume status to avoid overflow
      
       - Fix a missing zero-length check in unbuffered writes in the
         netfs library. If generic_write_checks() returns zero make
         netfs_unbuffered_write_iter() return right away
      
       - Prevent a leak in i_dio_count caused by netfs_begin_read() operating
         past i_size. It will return early and leave i_dio_count incremented
      
       - Account for ipv4 addresses as well as ipv6 addresses when processing
         incoming callbacks in afs
      
      * tag 'vfs-6.8-rc6.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs:
        fs/aio: Restrict kiocb_set_cancel_fn() to I/O submitted via libaio
        afs: Increase buffer size in afs_update_volume_status()
        afs: Fix ignored callbacks over ipv4
        cachefiles: fix memory leak in cachefiles_add_cache()
        netfs: Fix missing zero-length check in unbuffered write
        netfs: Fix i_dio_count leak on DIO read past i_size
      1c892cdd
    • Linus Torvalds's avatar
      Merge tag 'net-6.8.0-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net · 6714ebb9
      Linus Torvalds authored
      Pull networking fixes from Paolo Abeni:
       "Including fixes from bpf and netfilter.
      
        Current release - regressions:
      
         - af_unix: fix another unix GC hangup
      
        Previous releases - regressions:
      
         - core: fix a possible AF_UNIX deadlock
      
         - bpf: fix NULL pointer dereference in sk_psock_verdict_data_ready()
      
         - netfilter: nft_flow_offload: release dst in case direct xmit path
           is used
      
         - bridge: switchdev: ensure MDB events are delivered exactly once
      
         - l2tp: pass correct message length to ip6_append_data
      
         - dccp/tcp: unhash sk from ehash for tb2 alloc failure after
           check_estalblished()
      
         - tls: fixes for record type handling with PEEK
      
         - devlink: fix possible use-after-free and memory leaks in
           devlink_init()
      
        Previous releases - always broken:
      
         - bpf: fix an oops when attempting to read the vsyscall page through
           bpf_probe_read_kernel
      
         - sched: act_mirred: use the backlog for mirred ingress
      
         - netfilter: nft_flow_offload: fix dst refcount underflow
      
         - ipv6: sr: fix possible use-after-free and null-ptr-deref
      
         - mptcp: fix several data races
      
         - phonet: take correct lock to peek at the RX queue
      
        Misc:
      
         - handful of fixes and reliability improvements for selftests"
      
      * tag 'net-6.8.0-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (72 commits)
        l2tp: pass correct message length to ip6_append_data
        net: phy: realtek: Fix rtl8211f_config_init() for RTL8211F(D)(I)-VD-CG PHY
        selftests: ioam: refactoring to align with the fix
        Fix write to cloned skb in ipv6_hop_ioam()
        phonet/pep: fix racy skb_queue_empty() use
        phonet: take correct lock to peek at the RX queue
        net: sparx5: Add spinlock for frame transmission from CPU
        net/sched: flower: Add lock protection when remove filter handle
        devlink: fix port dump cmd type
        net: stmmac: Fix EST offset for dwmac 5.10
        tools: ynl: don't leak mcast_groups on init error
        tools: ynl: make sure we always pass yarg to mnl_cb_run
        net: mctp: put sock on tag allocation failure
        netfilter: nf_tables: use kzalloc for hook allocation
        netfilter: nf_tables: register hooks last when adding new chain/flowtable
        netfilter: nft_flow_offload: release dst in case direct xmit path is used
        netfilter: nft_flow_offload: reset dst in route object after setting up flow
        netfilter: nf_tables: set dormant flag on hook register failure
        selftests: tls: add test for peeking past a record of a different type
        selftests: tls: add test for merging of same-type control messages
        ...
      6714ebb9
    • Ma Jun's avatar
      drm/amdgpu: Fix the runtime resume failure issue · bbfaf2ae
      Ma Jun authored
      Don't set power state flag when system enter runtime suspend,
      or it may cause runtime resume failure issue.
      
      Fixes: 3a9626c8 ("drm/amd: Stop evicting resources on APUs in suspend")
      Signed-off-by: default avatarMa Jun <Jun.Ma2@amd.com>
      Reviewed-by: default avatarMario Limonciello <mario.limonciello@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Cc: stable@vger.kernel.org
      bbfaf2ae
    • Melissa Wen's avatar
      drm/amd/display: fix null-pointer dereference on edid reading · 96717617
      Melissa Wen authored
      Use i2c adapter when there isn't aux_mode in dc_link to fix a
      null-pointer derefence that happens when running
      igt@kms_force_connector_basic in a system with DCN2.1 and HDMI connector
      detected as below:
      
      [  +0.178146] BUG: kernel NULL pointer dereference, address: 00000000000004c0
      [  +0.000010] #PF: supervisor read access in kernel mode
      [  +0.000005] #PF: error_code(0x0000) - not-present page
      [  +0.000004] PGD 0 P4D 0
      [  +0.000006] Oops: 0000 [#1] PREEMPT SMP NOPTI
      [  +0.000006] CPU: 15 PID: 2368 Comm: kms_force_conne Not tainted 6.5.0-asdn+ #152
      [  +0.000005] Hardware name: HP HP ENVY x360 Convertible 13-ay1xxx/8929, BIOS F.01 07/14/2021
      [  +0.000004] RIP: 0010:i2c_transfer+0xd/0x100
      [  +0.000011] Code: ea fc ff ff 66 0f 1f 84 00 00 00 00 00 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 f3 0f 1e fa 0f 1f 44 00 00 41 54 55 53 <48> 8b 47 10 48 89 fb 48 83 38 00 0f 84 b3 00 00 00 83 3d 2f 80 16
      [  +0.000004] RSP: 0018:ffff9c4f89c0fad0 EFLAGS: 00010246
      [  +0.000005] RAX: 0000000000000000 RBX: 0000000000000005 RCX: 0000000000000080
      [  +0.000003] RDX: 0000000000000002 RSI: ffff9c4f89c0fb20 RDI: 00000000000004b0
      [  +0.000003] RBP: ffff9c4f89c0fb80 R08: 0000000000000080 R09: ffff8d8e0b15b980
      [  +0.000003] R10: 00000000000380e0 R11: 0000000000000000 R12: 0000000000000080
      [  +0.000002] R13: 0000000000000002 R14: ffff9c4f89c0fb0e R15: ffff9c4f89c0fb0f
      [  +0.000004] FS:  00007f9ad2176c40(0000) GS:ffff8d90fe9c0000(0000) knlGS:0000000000000000
      [  +0.000003] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [  +0.000004] CR2: 00000000000004c0 CR3: 0000000121bc4000 CR4: 0000000000750ee0
      [  +0.000003] PKRU: 55555554
      [  +0.000003] Call Trace:
      [  +0.000006]  <TASK>
      [  +0.000006]  ? __die+0x23/0x70
      [  +0.000011]  ? page_fault_oops+0x17d/0x4c0
      [  +0.000008]  ? preempt_count_add+0x6e/0xa0
      [  +0.000008]  ? srso_alias_return_thunk+0x5/0x7f
      [  +0.000011]  ? exc_page_fault+0x7f/0x180
      [  +0.000009]  ? asm_exc_page_fault+0x26/0x30
      [  +0.000013]  ? i2c_transfer+0xd/0x100
      [  +0.000010]  drm_do_probe_ddc_edid+0xc2/0x140 [drm]
      [  +0.000067]  ? srso_alias_return_thunk+0x5/0x7f
      [  +0.000006]  ? _drm_do_get_edid+0x97/0x3c0 [drm]
      [  +0.000043]  ? __pfx_drm_do_probe_ddc_edid+0x10/0x10 [drm]
      [  +0.000042]  edid_block_read+0x3b/0xd0 [drm]
      [  +0.000043]  _drm_do_get_edid+0xb6/0x3c0 [drm]
      [  +0.000041]  ? __pfx_drm_do_probe_ddc_edid+0x10/0x10 [drm]
      [  +0.000043]  drm_edid_read_custom+0x37/0xd0 [drm]
      [  +0.000044]  amdgpu_dm_connector_mode_valid+0x129/0x1d0 [amdgpu]
      [  +0.000153]  drm_connector_mode_valid+0x3b/0x60 [drm_kms_helper]
      [  +0.000000]  __drm_helper_update_and_validate+0xfe/0x3c0 [drm_kms_helper]
      [  +0.000000]  ? amdgpu_dm_connector_get_modes+0xb6/0x520 [amdgpu]
      [  +0.000000]  ? srso_alias_return_thunk+0x5/0x7f
      [  +0.000000]  drm_helper_probe_single_connector_modes+0x2ab/0x540 [drm_kms_helper]
      [  +0.000000]  status_store+0xb2/0x1f0 [drm]
      [  +0.000000]  kernfs_fop_write_iter+0x136/0x1d0
      [  +0.000000]  vfs_write+0x24d/0x440
      [  +0.000000]  ksys_write+0x6f/0xf0
      [  +0.000000]  do_syscall_64+0x60/0xc0
      [  +0.000000]  ? srso_alias_return_thunk+0x5/0x7f
      [  +0.000000]  ? syscall_exit_to_user_mode+0x2b/0x40
      [  +0.000000]  ? srso_alias_return_thunk+0x5/0x7f
      [  +0.000000]  ? do_syscall_64+0x6c/0xc0
      [  +0.000000]  ? do_syscall_64+0x6c/0xc0
      [  +0.000000]  entry_SYSCALL_64_after_hwframe+0x6e/0xd8
      [  +0.000000] RIP: 0033:0x7f9ad46b4b00
      [  +0.000000] Code: 40 00 48 8b 15 19 b3 0d 00 f7 d8 64 89 02 48 c7 c0 ff ff ff ff eb b7 0f 1f 00 80 3d e1 3a 0e 00 00 74 17 b8 01 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 58 c3 0f 1f 80 00 00 00 00 48 83 ec 28 48 89
      [  +0.000000] RSP: 002b:00007ffcbd3bd6d8 EFLAGS: 00000202 ORIG_RAX: 0000000000000001
      [  +0.000000] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007f9ad46b4b00
      [  +0.000000] RDX: 0000000000000002 RSI: 00007f9ad48a7417 RDI: 0000000000000009
      [  +0.000000] RBP: 0000000000000002 R08: 0000000000000064 R09: 0000000000000000
      [  +0.000000] R10: 0000000000000000 R11: 0000000000000202 R12: 00007f9ad48a7417
      [  +0.000000] R13: 0000000000000009 R14: 00007ffcbd3bd760 R15: 0000000000000001
      [  +0.000000]  </TASK>
      [  +0.000000] Modules linked in: ctr ccm rfcomm snd_seq_dummy snd_hrtimer snd_seq snd_seq_device cmac algif_hash algif_skcipher af_alg bnep btusb btrtl btbcm btintel btmtk bluetooth uvcvideo videobuf2_vmalloc sha3_generic videobuf2_memops uvc jitterentropy_rng videobuf2_v4l2 videodev drbg videobuf2_common ansi_cprng mc ecdh_generic ecc qrtr binfmt_misc hid_sensor_accel_3d hid_sensor_magn_3d hid_sensor_gyro_3d hid_sensor_trigger industrialio_triggered_buffer kfifo_buf industrialio snd_ctl_led joydev hid_sensor_iio_common rtw89_8852ae rtw89_8852a rtw89_pci snd_hda_codec_realtek rtw89_core snd_hda_codec_generic intel_rapl_msr ledtrig_audio intel_rapl_common snd_hda_codec_hdmi mac80211 snd_hda_intel snd_intel_dspcfg kvm_amd snd_hda_codec snd_soc_dmic snd_acp3x_rn snd_acp3x_pdm_dma libarc4 snd_hwdep snd_soc_core kvm snd_hda_core cfg80211 snd_pci_acp6x snd_pcm nls_ascii snd_timer hp_wmi snd_pci_acp5x nls_cp437 snd_rn_pci_acp3x ucsi_acpi sparse_keymap ccp snd platform_profile snd_acp_config typec_ucsi irqbypass vfat sp5100_tco
      [  +0.000000]  snd_soc_acpi fat rapl pcspkr wmi_bmof roles rfkill rng_core snd_pci_acp3x soundcore k10temp watchdog typec battery ac amd_pmc acpi_tad button hid_sensor_hub hid_multitouch evdev serio_raw msr parport_pc ppdev lp parport fuse loop efi_pstore configfs ip_tables x_tables autofs4 ext4 crc16 mbcache jbd2 btrfs blake2b_generic dm_crypt dm_mod efivarfs raid10 raid456 async_raid6_recov async_memcpy async_pq async_xor async_tx libcrc32c crc32c_generic xor raid6_pq raid1 raid0 multipath linear md_mod amdgpu amdxcp i2c_algo_bit drm_ttm_helper ttm crc32_pclmul crc32c_intel drm_exec gpu_sched drm_suballoc_helper nvme ghash_clmulni_intel drm_buddy drm_display_helper sha512_ssse3 nvme_core ahci xhci_pci sha512_generic hid_generic xhci_hcd libahci rtsx_pci_sdmmc t10_pi i2c_hid_acpi drm_kms_helper i2c_hid mmc_core libata aesni_intel crc64_rocksoft_generic crypto_simd amd_sfh crc64_rocksoft scsi_mod usbcore cryptd crc_t10dif cec drm crct10dif_generic hid rtsx_pci crct10dif_pclmul scsi_common rc_core crc64 i2c_piix4
      [  +0.000000]  usb_common crct10dif_common video wmi
      [  +0.000000] CR2: 00000000000004c0
      [  +0.000000] ---[ end trace 0000000000000000 ]---
      
      Fixes: 0e859faf ("drm/amd/display: Remove unwanted drm edid references")
      Signed-off-by: default avatarMelissa Wen <mwen@igalia.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      96717617
    • Armin Wolf's avatar
      drm/amd/display: Fix memory leak in dm_sw_fini() · bae67893
      Armin Wolf authored
      After destroying dmub_srv, the memory associated with it is
      not freed, causing a memory leak:
      
      unreferenced object 0xffff896302b45800 (size 1024):
        comm "(udev-worker)", pid 222, jiffies 4294894636
        hex dump (first 32 bytes):
          00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
          00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
        backtrace (crc 6265fd77):
          [<ffffffff993495ed>] kmalloc_trace+0x29d/0x340
          [<ffffffffc0ea4a94>] dm_dmub_sw_init+0xb4/0x450 [amdgpu]
          [<ffffffffc0ea4e55>] dm_sw_init+0x15/0x2b0 [amdgpu]
          [<ffffffffc0ba8557>] amdgpu_device_init+0x1417/0x24e0 [amdgpu]
          [<ffffffffc0bab285>] amdgpu_driver_load_kms+0x15/0x190 [amdgpu]
          [<ffffffffc0ba09c7>] amdgpu_pci_probe+0x187/0x4e0 [amdgpu]
          [<ffffffff9968fd1e>] local_pci_probe+0x3e/0x90
          [<ffffffff996918a3>] pci_device_probe+0xc3/0x230
          [<ffffffff99805872>] really_probe+0xe2/0x480
          [<ffffffff99805c98>] __driver_probe_device+0x78/0x160
          [<ffffffff99805daf>] driver_probe_device+0x1f/0x90
          [<ffffffff9980601e>] __driver_attach+0xce/0x1c0
          [<ffffffff99803170>] bus_for_each_dev+0x70/0xc0
          [<ffffffff99804822>] bus_add_driver+0x112/0x210
          [<ffffffff99807245>] driver_register+0x55/0x100
          [<ffffffff990012d1>] do_one_initcall+0x41/0x300
      
      Fix this by freeing dmub_srv after destroying it.
      
      Fixes: 743b9786 ("drm/amd/display: Hook up the DMUB service in DM")
      Signed-off-by: default avatarArmin Wolf <W_Armin@gmx.de>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      bae67893
    • Swapnil Patel's avatar
      drm/amd/display: fix input states translation error for dcn35 & dcn351 · 27a6c493
      Swapnil Patel authored
      [Why]
      Currently there is an error while translating input clock sates into
      output clock states. The highest fclk setting from output sates is
      being dropped because of this error.
      
      [How]
      For dcn35 and dcn351, make output_states equal to input states.
      Reviewed-by: default avatarCharlene Liu <charlene.liu@amd.com>
      Acked-by: default avatarRodrigo Siqueira <rodrigo.siqueira@amd.com>
      Tested-by: default avatarDaniel Wheeler <daniel.wheeler@amd.com>
      Signed-off-by: default avatarSwapnil Patel <swapnil.patel@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      27a6c493
    • Srinivasan Shanmugam's avatar
      drm/amd/display: Fix potential null pointer dereference in dc_dmub_srv · d2b48f34
      Srinivasan Shanmugam authored
      Fixes potential null pointer dereference warnings in the
      dc_dmub_srv_cmd_list_queue_execute() and dc_dmub_srv_is_hw_pwr_up()
      functions.
      
      In both functions, the 'dc_dmub_srv' variable was being dereferenced
      before it was checked for null. This could lead to a null pointer
      dereference if 'dc_dmub_srv' is null. The fix is to check if
      'dc_dmub_srv' is null before dereferencing it.
      
      Thus moving the null checks for 'dc_dmub_srv' to the beginning of the
      functions to ensure that 'dc_dmub_srv' is not null when it is
      dereferenced.
      
      Found by smatch & thus fixing the below:
      drivers/gpu/drm/amd/amdgpu/../display/dc/dc_dmub_srv.c:133 dc_dmub_srv_cmd_list_queue_execute() warn: variable dereferenced before check 'dc_dmub_srv' (see line 128)
      drivers/gpu/drm/amd/amdgpu/../display/dc/dc_dmub_srv.c:1167 dc_dmub_srv_is_hw_pwr_up() warn: variable dereferenced before check 'dc_dmub_srv' (see line 1164)
      
      Fixes: 028bac58 ("drm/amd/display: decouple dmcub execution to reduce lock granularity")
      Fixes: 65138eb7 ("drm/amd/display: Add DCN35 DMUB")
      Cc: JinZe.Xu <jinze.xu@amd.com>
      Cc: Hersen Wu <hersenxs.wu@amd.com>
      Cc: Josip Pavic <josip.pavic@amd.com>
      Cc: Roman Li <roman.li@amd.com>
      Cc: Qingqing Zhuo <Qingqing.Zhuo@amd.com>
      Cc: Harry Wentland <Harry.Wentland@amd.com>
      Cc: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
      Cc: Aurabindo Pillai <aurabindo.pillai@amd.com>
      Cc: Tom Chung <chiahsuan.chung@amd.com>
      Signed-off-by: default avatarSrinivasan Shanmugam <srinivasan.shanmugam@amd.com>
      Reviewed-by: default avatarTom Chung <chiahsuan.chung@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      d2b48f34
    • Linus Torvalds's avatar
      Merge tag 'trace-v6.8-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace · efa80dcb
      Linus Torvalds authored
      Pull tracing fix from Steven Rostedt:
      
       - While working on the ring buffer I noticed that the counter used for
         knowing where the end of the data is on a sub-buffer was not a full
         "int" but just 20 bits. It was masked out to 0xfffff.
      
         With the new code that allows the user to change the size of the
         sub-buffer, it is theoretically possible to ask for a size bigger
         than 2^20. If that happens, unexpected results may occur as there's
         no code checking if the counter overflowed the 20 bits of the write
         mask. There are other checks to make sure events fit in the
         sub-buffer, but if the sub-buffer itself is too big, that is not
         checked.
      
         Add a check in the resize of the sub-buffer to make sure that it
         never goes beyond the size of the counter that holds how much data is
         on it.
      
      * tag 'trace-v6.8-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
        ring-buffer: Do not let subbuf be bigger than write mask
      efa80dcb
    • Lewis Huang's avatar
      drm/amd/display: Only allow dig mapping to pwrseq in new asic · 4e738260
      Lewis Huang authored
      [Why]
      The old asic only have 1 pwrseq hw.
      We don't need to map the diginst to pwrseq inst in old asic.
      
      [How]
      1. Only mapping dig to pwrseq for new asic.
      2. Move mapping function into dcn specific panel control component
      
      Cc: Stable <stable@vger.kernel.org> # v6.6+
      Cc: Mario Limonciello <mario.limonciello@amd.com>
      Link: https://gitlab.freedesktop.org/drm/amd/-/issues/3122Reviewed-by: default avatarAnthony Koo <anthony.koo@amd.com>
      Acked-by: default avatarRodrigo Siqueira <rodrigo.siqueira@amd.com>
      Tested-by: default avatarDaniel Wheeler <daniel.wheeler@amd.com>
      Signed-off-by: default avatarLewis Huang <lewis.huang@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      4e738260
    • Wayne Lin's avatar
      drm/amd/display: adjust few initialization order in dm · 22e1dc4b
      Wayne Lin authored
      [Why]
      Observe error message "Can't retrieve aconnector in hpd_rx_irq_offload_work"
      when boot up with a mst tbt4 dock connected. After analyzing, there are few
      parts needed to be adjusted:
      
      1. hpd_rx_offload_wq[].aconnector is not initialzed before the dmub outbox
      hpd_irq handler get registered which causes the error message.
      
      2. registeration of hpd and hpd_rx_irq event for usb4 dp tunneling is not
      aligned with legacy interface sequence
      
      [How]
      Put DMUB_NOTIFICATION_HPD and DMUB_NOTIFICATION_HPD_IRQ handler
      registration into register_hpd_handlers() to align other interfaces and
      get hpd_rx_offload_wq[].aconnector initialized earlier than that.
      
      Leave DMUB_NOTIFICATION_AUX_REPLY registered as it was since we need that
      while calling dc_link_detect(). USB4 connection status will be proactively
      detected by dc_link_detect_connection_type() in amdgpu_dm_initialize_drm_device()
      
      Cc: Stable <stable@vger.kernel.org>
      Reviewed-by: default avatarAurabindo Pillai <aurabindo.pillai@amd.com>
      Acked-by: default avatarRodrigo Siqueira <rodrigo.siqueira@amd.com>
      Tested-by: default avatarDaniel Wheeler <daniel.wheeler@amd.com>
      Signed-off-by: default avatarWayne Lin <wayne.lin@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      22e1dc4b
    • Peter Oberparleiter's avatar
      s390/cio: fix invalid -EBUSY on ccw_device_start · 5ef1dc40
      Peter Oberparleiter authored
      The s390 common I/O layer (CIO) returns an unexpected -EBUSY return code
      when drivers try to start I/O while a path-verification (PV) process is
      pending. This can lead to failed device initialization attempts with
      symptoms like broken network connectivity after boot.
      
      Fix this by replacing the -EBUSY return code with a deferred condition
      code 1 reply to make path-verification handling consistent from a
      driver's point of view.
      
      The problem can be reproduced semi-regularly using the following process,
      while repeating steps 2-3 as necessary (example assumes an OSA device
      with bus-IDs 0.0.a000-0.0.a002 on CHPID 0.02):
      
      1. echo 0.0.a000,0.0.a001,0.0.a002 >/sys/bus/ccwgroup/drivers/qeth/group
      2. echo 0 > /sys/bus/ccwgroup/devices/0.0.a000/online
      3. echo 1 > /sys/bus/ccwgroup/devices/0.0.a000/online ; \
         echo on > /sys/devices/css0/chp0.02/status
      
      Background information:
      
      The common I/O layer starts path-verification I/Os when it receives
      indications about changes in a device path's availability. This occurs
      for example when hardware events indicate a change in channel-path
      status, or when a manual operation such as a CHPID vary or configure
      operation is performed.
      
      If a driver attempts to start I/O while a PV is running, CIO reports a
      successful I/O start (ccw_device_start() return code 0). Then, after
      completion of PV, CIO synthesizes an interrupt response that indicates
      an asynchronous status condition that prevented the start of the I/O
      (deferred condition code 1).
      
      If a PV indication arrives while a device is busy with driver-owned I/O,
      PV is delayed until after I/O completion was reported to the driver's
      interrupt handler. To ensure that PV can be started eventually, CIO
      reports a device busy condition (ccw_device_start() return code -EBUSY)
      if a driver tries to start another I/O while PV is pending.
      
      In some cases this -EBUSY return code causes device drivers to consider
      a device not operational, resulting in failed device initialization.
      
      Note: The code that introduced the problem was added in 2003. Symptoms
      started appearing with the following CIO commit that causes a PV
      indication when a device is removed from the cio_ignore list after the
      associated parent subchannel device was probed, but before online
      processing of the CCW device has started:
      
      2297791c ("s390/cio: dont unregister subchannel from child-drivers")
      
      During boot, the cio_ignore list is modified by the cio_ignore dracut
      module [1] as well as Linux vendor-specific systemd service scripts[2].
      When combined, this commit and boot scripts cause a frequent occurrence
      of the problem during boot.
      
      [1] https://github.com/dracutdevs/dracut/tree/master/modules.d/81cio_ignore
      [2] https://github.com/SUSE/s390-tools/blob/master/cio_ignore.service
      
      Cc: stable@vger.kernel.org # v5.15+
      Fixes: 2297791c ("s390/cio: dont unregister subchannel from child-drivers")
      Tested-By: default avatarThorsten Winkler <twinkler@linux.ibm.com>
      Reviewed-by: default avatarThorsten Winkler <twinkler@linux.ibm.com>
      Signed-off-by: default avatarPeter Oberparleiter <oberpar@linux.ibm.com>
      Signed-off-by: default avatarHeiko Carstens <hca@linux.ibm.com>
      5ef1dc40
    • Muhammad Usama Anjum's avatar
      selftests/iommu: fix the config fragment · 510325e5
      Muhammad Usama Anjum authored
      The config fragment doesn't follow the correct format to enable those
      config options which make the config options getting missed while
      merging with other configs.
      
      ➜ merge_config.sh -m .config tools/testing/selftests/iommu/config
      Using .config as base
      Merging tools/testing/selftests/iommu/config
      ➜ make olddefconfig
      .config:5295:warning: unexpected data: CONFIG_IOMMUFD
      .config:5296:warning: unexpected data: CONFIG_IOMMUFD_TEST
      
      While at it, add CONFIG_FAULT_INJECTION as well which is needed for
      CONFIG_IOMMUFD_TEST. If CONFIG_FAULT_INJECTION isn't present in base
      config (such as x86 defconfig), CONFIG_IOMMUFD_TEST doesn't get enabled.
      
      Fixes: 57f09887 ("iommufd: Add a selftest")
      Link: https://lore.kernel.org/r/20240222074934.71380-1-usama.anjum@collabora.comSigned-off-by: default avatarMuhammad Usama Anjum <usama.anjum@collabora.com>
      Signed-off-by: default avatarJason Gunthorpe <jgg@nvidia.com>
      510325e5
    • Erik Kurzinger's avatar
      drm/syncobj: handle NULL fence in syncobj_eventfd_entry_func · 2aa6f5b0
      Erik Kurzinger authored
      During syncobj_eventfd_entry_func, dma_fence_chain_find_seqno may set
      the fence to NULL if the given seqno is signaled and a later seqno has
      already been submitted. In that case, the eventfd should be signaled
      immediately which currently does not happen.
      
      This is a similar issue to the one addressed by commit b19926d4
      ("drm/syncobj: Deal with signalled fences in drm_syncobj_find_fence.").
      
      As a fix, if the return value of dma_fence_chain_find_seqno indicates
      success but it sets the fence to NULL, we will assign a stub fence to
      ensure the following code still signals the eventfd.
      
      v1 -> v2: assign a stub fence instead of signaling the eventfd
      Signed-off-by: default avatarErik Kurzinger <ekurzinger@nvidia.com>
      Fixes: c7a47229 ("drm/syncobj: add IOCTL to register an eventfd")
      Signed-off-by: default avatarSimon Ser <contact@emersion.fr>
      Link: https://patchwork.freedesktop.org/patch/msgid/20240221184527.37667-1-ekurzinger@nvidia.com
      2aa6f5b0
    • Erik Kurzinger's avatar
      drm/syncobj: call drm_syncobj_fence_add_wait when WAIT_AVAILABLE flag is set · 3c43177f
      Erik Kurzinger authored
      When waiting for a syncobj timeline point whose fence has not yet been
      submitted with the WAIT_FOR_SUBMIT flag, a callback is registered using
      drm_syncobj_fence_add_wait and the thread is put to sleep until the
      timeout expires. If the fence is submitted before then,
      drm_syncobj_add_point will wake up the sleeping thread immediately which
      will proceed to wait for the fence to be signaled.
      
      However, if the WAIT_AVAILABLE flag is used instead,
      drm_syncobj_fence_add_wait won't get called, meaning the waiting thread
      will always sleep for the full timeout duration, even if the fence gets
      submitted earlier. If it turns out that the fence *has* been submitted
      by the time it eventually wakes up, it will still indicate to userspace
      that the wait completed successfully (it won't return -ETIME), but it
      will have taken much longer than it should have.
      
      To fix this, we must call drm_syncobj_fence_add_wait if *either* the
      WAIT_FOR_SUBMIT flag or the WAIT_AVAILABLE flag is set. The only
      difference being that with WAIT_FOR_SUBMIT we will also wait for the
      fence to be signaled after it has been submitted while with
      WAIT_AVAILABLE we will return immediately.
      
      IGT test patch: https://lists.freedesktop.org/archives/igt-dev/2024-January/067537.html
      
      v1 -> v2: adjust lockdep_assert_none_held_once condition
      
      (cherry picked from commit 8c44ea81)
      
      Fixes: 01d6c357 ("drm/syncobj: add support for timeline point wait v8")
      Signed-off-by: default avatarErik Kurzinger <ekurzinger@nvidia.com>
      Signed-off-by: default avatarSimon Ser <contact@emersion.fr>
      Reviewed-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Reviewed-by: default avatarSimon Ser <contact@emersion.fr>
      Link: https://patchwork.freedesktop.org/patch/msgid/20240119163208.3723457-1-ekurzinger@nvidia.com
      3c43177f
    • Thomas Hellström's avatar
      drm/ttm: Fix an invalid freeing on already freed page in error path · 40510a94
      Thomas Hellström authored
      If caching mode change fails due to, for example, OOM we
      free the allocated pages in a two-step process. First the pages
      for which the caching change has already succeeded. Secondly
      the pages for which a caching change did not succeed.
      
      However the second step was incorrectly freeing the pages already
      freed in the first step.
      
      Fix.
      Signed-off-by: default avatarThomas Hellström <thomas.hellstrom@linux.intel.com>
      Fixes: 379989e7 ("drm/ttm/pool: Fix ttm_pool_alloc error path")
      Cc: Christian König <christian.koenig@amd.com>
      Cc: Dave Airlie <airlied@redhat.com>
      Cc: Christian Koenig <christian.koenig@amd.com>
      Cc: Huang Rui <ray.huang@amd.com>
      Cc: dri-devel@lists.freedesktop.org
      Cc: <stable@vger.kernel.org> # v6.4+
      Reviewed-by: default avatarMatthew Auld <matthew.auld@intel.com>
      Reviewed-by: default avatarChristian König <christian.koenig@amd.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20240221073324.3303-1-thomas.hellstrom@linux.intel.com
      40510a94
    • Tom Parkin's avatar
      l2tp: pass correct message length to ip6_append_data · 359e54a9
      Tom Parkin authored
      l2tp_ip6_sendmsg needs to avoid accounting for the transport header
      twice when splicing more data into an already partially-occupied skbuff.
      
      To manage this, we check whether the skbuff contains data using
      skb_queue_empty when deciding how much data to append using
      ip6_append_data.
      
      However, the code which performed the calculation was incorrect:
      
           ulen = len + skb_queue_empty(&sk->sk_write_queue) ? transhdrlen : 0;
      
      ...due to C operator precedence, this ends up setting ulen to
      transhdrlen for messages with a non-zero length, which results in
      corrupted packets on the wire.
      
      Add parentheses to correct the calculation in line with the original
      intent.
      
      Fixes: 9d4c7580 ("ipv4, ipv6: Fix handling of transhdrlen in __ip{,6}_append_data()")
      Cc: David Howells <dhowells@redhat.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarTom Parkin <tparkin@katalix.com>
      Reviewed-by: default avatarSimon Horman <horms@kernel.org>
      Link: https://lore.kernel.org/r/20240220122156.43131-1-tparkin@katalix.comSigned-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      359e54a9
    • Paolo Abeni's avatar
      Merge tag 'nf-24-02-22' of git://git.kernel.org/pub/scm/linux/kernel/git/netfilter/nf · 9ff27943
      Paolo Abeni authored
      Pablo Neira Ayuso says:
      
      ====================
      Netfilter fixes for net
      
      The following patchset contains Netfilter fixes for net:
      
      1) If user requests to wake up a table and hook fails, restore the
         dormant flag from the error path, from Florian Westphal.
      
      2) Reset dst after transferring it to the flow object, otherwise dst
         gets released twice from the error path.
      
      3) Release dst in case the flowtable selects a direct xmit path, eg.
         transmission to bridge port. Otherwise, dst is memleaked.
      
      4) Register basechain and flowtable hooks at the end of the command.
         Error path releases these datastructure without waiting for the
         rcu grace period.
      
      5) Use kzalloc() to initialize struct nft_hook to fix a KMSAN report
         on access to hook type, also from Florian Westphal.
      
      netfilter pull request 24-02-22
      
      * tag 'nf-24-02-22' of git://git.kernel.org/pub/scm/linux/kernel/git/netfilter/nf:
        netfilter: nf_tables: use kzalloc for hook allocation
        netfilter: nf_tables: register hooks last when adding new chain/flowtable
        netfilter: nft_flow_offload: release dst in case direct xmit path is used
        netfilter: nft_flow_offload: reset dst in route object after setting up flow
        netfilter: nf_tables: set dormant flag on hook register failure
      ====================
      
      Link: https://lore.kernel.org/r/20240222000843.146665-1-pablo@netfilter.orgSigned-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      9ff27943
    • Paolo Abeni's avatar
      Merge tag 'for-netdev' of https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf · fdcd4467
      Paolo Abeni authored
      Daniel Borkmann says:
      
      ====================
      pull-request: bpf 2024-02-22
      
      The following pull-request contains BPF updates for your *net* tree.
      
      We've added 11 non-merge commits during the last 24 day(s) which contain
      a total of 15 files changed, 217 insertions(+), 17 deletions(-).
      
      The main changes are:
      
      1) Fix a syzkaller-triggered oops when attempting to read the vsyscall
         page through bpf_probe_read_kernel and friends, from Hou Tao.
      
      2) Fix a kernel panic due to uninitialized iter position pointer in
         bpf_iter_task, from Yafang Shao.
      
      3) Fix a race between bpf_timer_cancel_and_free and bpf_timer_cancel,
         from Martin KaFai Lau.
      
      4) Fix a xsk warning in skb_add_rx_frag() (under CONFIG_DEBUG_NET)
         due to incorrect truesize accounting, from Sebastian Andrzej Siewior.
      
      5) Fix a NULL pointer dereference in sk_psock_verdict_data_ready,
         from Shigeru Yoshida.
      
      6) Fix a resolve_btfids warning when bpf_cpumask symbol cannot be
         resolved, from Hari Bathini.
      
      bpf-for-netdev
      
      * tag 'for-netdev' of https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf:
        bpf, sockmap: Fix NULL pointer dereference in sk_psock_verdict_data_ready()
        selftests/bpf: Add negtive test cases for task iter
        bpf: Fix an issue due to uninitialized bpf_iter_task
        selftests/bpf: Test racing between bpf_timer_cancel_and_free and bpf_timer_cancel
        bpf: Fix racing between bpf_timer_cancel_and_free and bpf_timer_cancel
        selftest/bpf: Test the read of vsyscall page under x86-64
        x86/mm: Disallow vsyscall page read for copy_from_kernel_nofault()
        x86/mm: Move is_vsyscall_vaddr() into asm/vsyscall.h
        bpf, scripts: Correct GPL license name
        xsk: Add truesize to skb_add_rx_frag().
        bpf: Fix warning for bpf_cpumask in verifier
      ====================
      
      Link: https://lore.kernel.org/r/20240221231826.1404-1-daniel@iogearbox.netSigned-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      fdcd4467
    • Siddharth Vadapalli's avatar
      net: phy: realtek: Fix rtl8211f_config_init() for RTL8211F(D)(I)-VD-CG PHY · 3489182b
      Siddharth Vadapalli authored
      Commit bb726b75 ("net: phy: realtek: add support for
      RTL8211F(D)(I)-VD-CG") extended support of the driver from the existing
      support for RTL8211F(D)(I)-CG PHY to the newer RTL8211F(D)(I)-VD-CG PHY.
      
      While that commit indicated that the RTL8211F_PHYCR2 register is not
      supported by the "VD-CG" PHY model and therefore updated the corresponding
      section in rtl8211f_config_init() to be invoked conditionally, the call to
      "genphy_soft_reset()" was left as-is, when it should have also been invoked
      conditionally. This is because the call to "genphy_soft_reset()" was first
      introduced by the commit 0a4355c2 ("net: phy: realtek: add dt property
      to disable CLKOUT clock") since the RTL8211F guide indicates that a PHY
      reset should be issued after setting bits in the PHYCR2 register.
      
      As the PHYCR2 register is not applicable to the "VD-CG" PHY model, fix the
      rtl8211f_config_init() function by invoking "genphy_soft_reset()"
      conditionally based on the presence of the "PHYCR2" register.
      
      Fixes: bb726b75 ("net: phy: realtek: add support for RTL8211F(D)(I)-VD-CG")
      Signed-off-by: default avatarSiddharth Vadapalli <s-vadapalli@ti.com>
      Reviewed-by: default avatarSimon Horman <horms@kernel.org>
      Link: https://lore.kernel.org/r/20240220070007.968762-1-s-vadapalli@ti.comSigned-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      3489182b
    • Paolo Abeni's avatar
      Merge branch 'ioam6-fix-write-to-cloned-skb-s' · 39a4cd5a
      Paolo Abeni authored
      Justin Iurman says:
      
      ====================
      ioam6: fix write to cloned skb's
      
      Make sure the IOAM data insertion is not applied on cloned skb's. As a
      consequence, ioam selftests needed a refactoring.
      ====================
      
      Link: https://lore.kernel.org/r/20240219135255.15429-1-justin.iurman@uliege.beSigned-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      39a4cd5a
    • Justin Iurman's avatar
      selftests: ioam: refactoring to align with the fix · 187bbb69
      Justin Iurman authored
      ioam6_parser uses a packet socket. After the fix to prevent writing to
      cloned skb's, the receiver does not see its IOAM data anymore, which
      makes input/forward ioam-selftests to fail. As a workaround,
      ioam6_parser now uses an IPv6 raw socket and leverages ancillary data to
      get hop-by-hop options. As a consequence, the hook is "after" the IOAM
      data insertion by the receiver and all tests are working again.
      Signed-off-by: default avatarJustin Iurman <justin.iurman@uliege.be>
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      187bbb69