[PATCH 6.12 regression fix 1/2] drm/radeon: Revert: "remove load callback from kms_driver"

Hans de Goede hdegoede at redhat.com
Thu Oct 3 14:36:39 UTC 2024


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 at redhat.com>
---
Cc: Thomas Zimmermann <tzimmermann at suse.de>
Cc: Wu Hoi Pok <wuhoipok at 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



More information about the dri-devel mailing list