Commit 90985660ba48 ("drm/radeon: remove load callback from kms_driver") causes my system with a R7 250E card to hang at boot, reporting the following (abbreviated) oops captured by serial console: [ 7.512157] BUG: kernel NULL pointer dereference, address: 0000000000000050 [ 7.519149] #PF: supervisor read access in kernel mode [ 7.524309] #PF: error_code(0x0000) - not-present page [ 7.529474] PGD 0 P4D 0 [ 7.532024] Oops: Oops: 0000 [#1] PREEMPT SMP NOPTI [ 7.532200] ttyS ttyS0: 1 input overrun(s) [ 7.536930] Hardware name: Micro-Star International Co., Ltd. MS-7C95/B550M PRO-VDH WIFI (MS-7C95), BIOS 2.L0 07/18/2024 [ 7.536931] RIP: 0010:drm_dp_aux_register+0xbf/0xf0 [drm_display_helper] [ 7.672486] Call Trace: [ 7.674951] <TASK> [ 7.698208] ? asm_exc_page_fault+0x22/0x30 [ 7.702417] ? drm_dp_aux_register+0xbf/0xf0 [drm_display_helper] [ 7.708545] radeon_dp_aux_init+0x91/0xc0 [radeon] [ 7.713401] radeon_get_atom_connector_info_from_object_table+0x63d/0x9e0 [radeon] [ 7.721021] ? __entry_text_end+0xfe4dc/0x1025cd [ 7.725680] ? srso_alias_return_thunk+0x5/0xfbef5 [ 7.730501] ? rcu_is_watching+0xd/0x40 [ 7.734359] ? srso_alias_return_thunk+0x5/0xfbef5 [ 7.739182] ? __kmalloc_noprof+0x2b6/0x420 [ 7.743386] ? drm_mode_crtc_set_gamma_size+0x31/0xb0 [ 7.748467] ? radeon_modeset_init+0x3f1/0x4b0 [radeon] [ 7.753730] ? srso_alias_return_thunk+0x5/0xfbef5 [ 7.758548] radeon_modeset_init+0x3f1/0x4b0 [radeon] [ 7.763632] ? radeon_device_init+0x6ff/0xbd0 [radeon] [ 7.768813] radeon_driver_load_kms+0xd1/0x230 [radeon] [ 7.934843] Modules linked in: radeon(+) drm_ttm_helper ttm crct10dif_pclmul crc32_pclmul crc32c_intel video uas ghash_clmulni_intel i2c_algo_bit usb_storage sha512_ssse3 drm_suballoc_helper sha256_ssse3 nvme drm_display_helper sha1_ssse3 ccp nvme_core cec sp5100_tco wmi hid_lg_g15 hid_logitech_hidpp hid_logitech_dj scsi_dh_rdac scsi_dh_emc scsi_dh_alua ip6_tables ip_tables fuse i2c_dev [ 8.067943] note: (udev-worker)[688] exited with irqs disabled Revert the change to avoid this crash. Fixes: 90985660ba48 ("drm/radeon: remove load callback from kms_driver") Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> --- Cc: Thomas Zimmermann <tzimmermann@xxxxxxx> Cc: Wu Hoi Pok <wuhoipok@xxxxxxxxx> --- drivers/gpu/drm/radeon/radeon_drv.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/drivers/gpu/drm/radeon/radeon_drv.c b/drivers/gpu/drm/radeon/radeon_drv.c index e5a6f3e7c75b..695367c22b7a 100644 --- a/drivers/gpu/drm/radeon/radeon_drv.c +++ b/drivers/gpu/drm/radeon/radeon_drv.c @@ -316,10 +316,6 @@ static int radeon_pci_probe(struct pci_dev *pdev, pci_set_drvdata(pdev, ddev); - ret = radeon_driver_load_kms(ddev, flags); - if (ret) - goto err_agp; - ret = drm_dev_register(ddev, flags); if (ret) goto err_agp; @@ -580,6 +576,7 @@ static const struct drm_ioctl_desc radeon_ioctls_kms[] = { static const struct drm_driver kms_driver = { .driver_features = DRIVER_GEM | DRIVER_RENDER | DRIVER_MODESET, + .load = radeon_driver_load_kms, .open = radeon_driver_open_kms, .postclose = radeon_driver_postclose_kms, .unload = radeon_driver_unload_kms, -- 2.46.2