Kernel 6.9 amdgpu crash with multiple monitors via MST: NULL pointer dereference
Brief summary of the problem:
On a ThinkPad L15 Gen 1 AMD system in a dock using MST to drive 4 monitors. I have 2 1080p monitors, 1 1920x1200 and 1 4k monitor. Upon starting Hyprland, the kernel crashes. This issue does not occur if I boot with only one monitor turned on. Git bisect identified the commit that introduced the issue is drm/amd/display: Fix DSC-re-computing
Hardware description:
- CPU: AMD Ryzen 7 PRO 4750U (16) @ 1.70 GHz
- GPU: AMD Radeon RX Vega 6 (Ryzen 4000/5000 Mobile Series) [Integrated]
- System Memory: 64G
- Display(s): (PA248QV): 1920x1200 @ 60Hz (DELL U3223QE): 3840x2160 @ 60Hz (DELL P2217H): 1080x1920 @ 60Hz (DELL P2217H): 1080x1920 @ 60Hz
- Type of Display Connection: DP
System information:
- Distro name and Version: Arch Linux
- Kernel version: <TODO:
uname -a
> - Custom kernel: 6.9
- AMD official driver version: N/A
How to reproduce the issue:
Try to start Hyprland with 4 monitors attached using my dock and MST adapter.
Attached files:
[drm] Send DSC enable to synaptics
BUG: kernel NULL pointer dereference, address: 0000000000000008
#PF: supervisor read access in kernel mode
#PF: error_code(0x0000) - not-present page
PGD 0 P4D 0
Oops: 0000 [#1] PREEMPT SMP NOPTI
CPU: 5 PID: 1446 Comm: Hyprland Not tainted 6.9.1-arch1-2 #1 06928436e5a6b4805e171d14d8efa397d7db9ad0
Hardware name: LENOVO 20U7000VUS/20U7000VUS, BIOS R19ET48W (1.32 ) 10/30/2023
RIP: 0010:drm_dp_atomic_find_time_slots+0x5e/0x270 [drm_display_helper]
Code: 01 00 00 48 8b 85 68 05 00 00 48 63 80 88 00 00 00 3b 43 28 0f 8d 34 01 00 00 48 8b 53 30 48 8d 04 80 48 8d 04 c2 48 8b 40 18 <48> 8b 40 08 4d 8d 65 38 8b 88 90 00 00 00 b8 01 00 00 00 d3 e0 41
RSP: 0018:ffffa55143f47418 EFLAGS: 00010293
RAX: 0000000000000000 RBX: ffff91ca2a47fd80 RCX: 0000000000000224
RDX: ffff91ca15bad600 RSI: ffff91c9c55b2800 RDI: ffff91ca2a47fd80
RBP: ffff91c9c1e98000 R08: 0000000000000001 R09: 0000000000000407
R10: 000000000000001b R11: 0000000000000001 R12: 0000000000000000
R13: ffff91ca09fefb40 R14: ffff91c9c55b2800 R15: 0000000000000224
FS: 000078e7ce64ab80(0000) GS:ffff91d830c80000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000000000008 CR3: 0000000156f9a000 CR4: 0000000000350ef0
Call Trace:
<TASK>
? __die_body.cold+0x19/0x27
? page_fault_oops+0x15a/0x2b0
? exc_page_fault+0x81/0x190
? asm_exc_page_fault+0x26/0x30
? drm_dp_atomic_find_time_slots+0x5e/0x270 [drm_display_helper e20ce2ee8a03a2dcf51de8dc0b3d681e00835812]
? drm_dp_atomic_find_time_slots+0x28/0x270 [drm_display_helper e20ce2ee8a03a2dcf51de8dc0b3d681e00835812]
compute_mst_dsc_configs_for_link+0x31f/0xb10 [amdgpu f9765449229a4c4ad337d3e542448922d280f459]
? dcn21_fast_validate_bw+0x406/0x4b0 [amdgpu f9765449229a4c4ad337d3e542448922d280f459]
pre_validate_dsc+0x3f2/0x470 [amdgpu f9765449229a4c4ad337d3e542448922d280f459]
amdgpu_dm_atomic_check+0x8aa/0x14d0 [amdgpu f9765449229a4c4ad337d3e542448922d280f459]
? srso_return_thunk+0x5/0x5f
drm_atomic_check_only+0x5b2/0xa30
drm_atomic_commit+0x60/0xd0
? __pfx___drm_printfn_info+0x10/0x10
drm_mode_atomic_ioctl+0xa72/0xcb0
? srso_return_thunk+0x5/0x5f
? __pfx_drm_mode_atomic_ioctl+0x10/0x10
drm_ioctl_kernel+0xb3/0x100
drm_ioctl+0x27a/0x4e0
? __pfx_drm_mode_atomic_ioctl+0x10/0x10
amdgpu_drm_ioctl+0x4e/0x90 [amdgpu f9765449229a4c4ad337d3e542448922d280f459]
__x64_sys_ioctl+0x97/0xd0
do_syscall_64+0x82/0x160
? srso_return_thunk+0x5/0x5f
? xas_load+0x41/0x50
? srso_return_thunk+0x5/0x5f
? filemap_get_entry+0xde/0x140
? srso_return_thunk+0x5/0x5f
? shmem_get_folio_gfp+0x1bf/0x580
? srso_return_thunk+0x5/0x5f
? copy_page_from_iter_atomic+0xe6/0x6e0
? srso_return_thunk+0x5/0x5f
? srso_return_thunk+0x5/0x5f
? balance_dirty_pages_ratelimited_flags+0x21/0x380
? srso_return_thunk+0x5/0x5f
? generic_perform_write+0x14e/0x230
? srso_return_thunk+0x5/0x5f
? shmem_file_write_iter+0x5e/0x90
? srso_return_thunk+0x5/0x5f
? vfs_write+0x296/0x460
? srso_return_thunk+0x5/0x5f
? srso_return_thunk+0x5/0x5f
? syscall_exit_to_user_mode+0x75/0x210
? srso_return_thunk+0x5/0x5f
? do_syscall_64+0x8e/0x160
? srso_return_thunk+0x5/0x5f
? srso_return_thunk+0x5/0x5f
entry_SYSCALL_64_after_hwframe+0x76/0x7e
RIP: 0033:0x78e7d043a9ed
Code: 04 25 28 00 00 00 48 89 45 c8 31 c0 48 8d 45 10 c7 45 b0 10 00 00 00 48 89 45 b8 48 8d 45 d0 48 89 45 c0 b8 10 00 00 00 0f 05 <89> c2 3d 00 f0 ff ff 77 1a 48 8b 45 c8 64 48 2b 04 25 28 00 00 00
RSP: 002b:00007fff52e266e0 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
RAX: ffffffffffffffda RBX: 0000607c4cb11990 RCX: 000078e7d043a9ed
RDX: 00007fff52e26780 RSI: 00000000c03864bc RDI: 000000000000000d
RBP: 00007fff52e26730 R08: 0000000000000007 R09: 0000000000000007
R10: 0000000000000003 R11: 0000000000000246 R12: 00000000c03864bc
R13: 000000000000000d R14: 0000607c4c9d13a0 R15: 0000607c4ca15220
</TASK>
Modules linked in: ccm cmac algif_hash algif_skcipher af_alg cdc_mbim cdc_wdm cdc_ncm cdc_ether usbnet bnep vfat fat snd_sof_amd_acp63 snd_sof_amd_vangogh snd_sof_amd_rembrandt snd_sof_amd_renoir snd_sof_amd_acp snd_sof_pci snd_sof_xtensa_dsp snd_sof snd_sof_utils snd_pci_ps snd_usb_audio snd_amd_sdw_acpi snd_usbmidi_lib iwlmvm snd_ctl_led ledtrig_audio r8152 snd_ump soundwire_amd mii btusb intel_rapl_msr snd_rawmidi soundwire_generic_allocation amd_atl snd_hda_codec_realtek btrtl intel_rapl_common uvcvideo snd_seq_device soundwire_bus snd_hda_codec_generic btintel mac80211 videobuf2_vmalloc snd_hda_scodec_component btbcm snd_hda_codec_hdmi uvc snd_soc_core libarc4 btmtk videobuf2_memops ptp snd_compress ac97_bus pps_core videobuf2_v4l2 snd_pcm_dmaengine snd_hda_intel bluetooth snd_intel_dspcfg snd_rpl_pci_acp6x videodev snd_acp_pci snd_intel_sdw_acpi kvm_amd videobuf2_common ecdh_generic snd_acp_legacy_common mc crc16 ledtrig_netdev joydev snd_hda_codec mousedev snd_pci_acp6x iwlwifi think_lmi(+) kvm
snd_hda_core r8169 snd_pci_acp5x rapl psmouse wmi_bmof firmware_attributes_class pcspkr acpi_cpufreq ucsi_acpi snd_rn_pci_acp3x snd_hwdep realtek cfg80211 typec_ucsi snd_acp_config sp5100_tco mdio_devres snd_pcm snd_soc_acpi typec ipmi_devintf snd_timer k10temp snd_pci_acp3x libphy i2c_piix4 ipmi_msghandler roles i2c_scmi mac_hid udl i2c_dev crypto_user loop nfnetlink ip_tables x_tables btrfs blake2b_generic libcrc32c crc32c_generic xor raid6_pq dm_crypt cbc encrypted_keys trusted asn1_encoder tee hid_logitech_hidpp hid_logitech_dj crct10dif_pclmul crc32_pclmul crc32c_intel hid_generic polyval_clmulni polyval_generic gf128mul ghash_clmulni_intel sha512_ssse3 usbhid serio_raw sha256_ssse3 atkbd dm_mod sdhci_pci sha1_ssse3 libps2 amdgpu cqhci thinkpad_acpi aesni_intel vivaldi_fmap nvme sdhci platform_profile crypto_simd snd nvme_core cryptd i8042 mmc_core xhci_pci ccp soundcore xhci_pci_renesas nvme_auth serio rfkill video wmi amdxcp i2c_algo_bit drm_ttm_helper ttm drm_exec gpu_sched drm_suballoc_helper
drm_buddy drm_display_helper cec
CR2: 0000000000000008
---[ end trace 0000000000000000 ]---
RIP: 0010:drm_dp_atomic_find_time_slots+0x5e/0x270 [drm_display_helper]
Code: 01 00 00 48 8b 85 68 05 00 00 48 63 80 88 00 00 00 3b 43 28 0f 8d 34 01 00 00 48 8b 53 30 48 8d 04 80 48 8d 04 c2 48 8b 40 18 <48> 8b 40 08 4d 8d 65 38 8b 88 90 00 00 00 b8 01 00 00 00 d3 e0 41
RSP: 0018:ffffa55143f47418 EFLAGS: 00010293
RAX: 0000000000000000 RBX: ffff91ca2a47fd80 RCX: 0000000000000224
RDX: ffff91ca15bad600 RSI: ffff91c9c55b2800 RDI: ffff91ca2a47fd80
RBP: ffff91c9c1e98000 R08: 0000000000000001 R09: 0000000000000407
R10: 000000000000001b R11: 0000000000000001 R12: 0000000000000000
R13: ffff91ca09fefb40 R14: ffff91c9c55b2800 R15: 0000000000000224
FS: 000078e7ce64ab80(0000) GS:ffff91d830c80000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000000000008 CR3: 0000000156f9a000 CR4: 0000000000350ef0
note: Hyprland[1446] exited with irqs disabled