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 <hdego...@redhat.com>
---
Cc: Thomas Zimmermann <tzimmerm...@suse.de>
Cc: Wu Hoi Pok <wuhoi...@gmail.com>
---
 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

Reply via email to