1. 23 Feb, 2024 18 commits
  2. 22 Feb, 2024 22 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