From: Jiang Liu <gerry@linux.alibaba.com>
To: alexander.deucher@amd.com, christian.koenig@amd.com,
Xinhui.Pan@amd.com, airlied@gmail.com, simona@ffwll.ch,
sunil.khatri@amd.com, lijo.lazar@amd.com, Hawking.Zhang@amd.com,
mario.limonciello@amd.com, xiaogang.chen@amd.com,
Kent.Russell@amd.com, shuox.liu@linux.alibaba.com,
amd-gfx@lists.freedesktop.org
Cc: Jiang Liu <gerry@linux.alibaba.com>
Subject: [v6 3/5] drm/amdgpu: fix invalid memory access in amdgpu_xcp_cfg_sysfs_fini()
Date: Fri, 24 Jan 2025 13:19:16 +0800 [thread overview]
Message-ID: <7e79844abed04b9f6f70565aafff736fe19d19ce.1737695869.git.gerry@linux.alibaba.com> (raw)
In-Reply-To: <cover.1737695869.git.gerry@linux.alibaba.com>
When AMD gpu firmware files are missing, loading the amdgpu driver will
cause following invalid memory access:
[ 89.735573] amdgpu 0000:0a:00.0: amdgpu: Fetched VBIOS from platform
[ 89.735583] amdgpu: ATOM BIOS: 113-M3080202-101
[ 89.735676] amdgpu 0000:0a:00.0: Direct firmware load for amdgpu/psp_13_0_14_sos.bin failed with error -2
[ 89.735684] [drm:amdgpu_device_init [amdgpu]] *ERROR* early_init of IP block <psp> failed -19
[ 89.746649] amdgpu 0000:0a:00.0: Direct firmware load for amdgpu/smu_13_0_14.bin failed with error -2
[ 89.746657] [drm:amdgpu_device_init [amdgpu]] *ERROR* early_init of IP block <smu> failed -19
[ 89.757203] amdgpu 0000:0a:00.0: Direct firmware load for amdgpu/gc_9_4_4_rlc.bin failed with error -2
[ 89.757209] [drm:amdgpu_device_init [amdgpu]] *ERROR* early_init of IP block <gfx_v9_4_3> failed -19
[ 89.768331] amdgpu 0000:0a:00.0: Direct firmware load for amdgpu/sdma_4_4_5.bin failed with error -2
[ 89.768341] [drm:amdgpu_device_init [amdgpu]] *ERROR* early_init of IP block <sdma_v4_4_2> failed -19
[ 89.779385] amdgpu 0000:0a:00.0: Direct firmware load for amdgpu/vcn_4_0_3.bin failed with error -2
[ 89.779389] [drm:amdgpu_device_init [amdgpu]] *ERROR* early_init of IP block <vcn_v4_0_3> failed -19
[ 89.790320] amdgpu 0000:0a:00.0: amdgpu: Fatal error during GPU init
[ 89.797498] amdgpu 0000:0a:00.0: amdgpu: amdgpu: finishing device.
[ 89.797519] BUG: kernel NULL pointer dereference, address: 0000000000000010
[ 89.805377] #PF: supervisor read access in kernel mode
[ 89.811639] #PF: error_code(0x0000) - not-present page
[ 89.817825] PGD 0
[ 89.820455] Oops: Oops: 0000 [#1] PREEMPT SMP NOPTI
[ 89.826296] CPU: 0 UID: 0 PID: 8 Comm: kworker/0:0 Not tainted 6.12.0+ #3
[ 89.834265] Hardware name: Alibaba Alibaba Cloud ECS/Alibaba Cloud ECS, BIOS 3.0.ES.AL.P.091.02 08/04/2024
[ 89.845430] Workqueue: events work_for_cpu_fn
[ 89.850649] RIP: 0010:amdgpu_device_fini_hw+0x1f2/0x570 [amdgpu]
[ 89.858316] Code: 65 49 63 f5 48 83 fe 11 0f 83 0c 03 00 00 4c 89 ff 49 83 ec 20 4d 8d 7f e0 48 85 ff 74 48 41 83 ed 01 49 8b 84 24 18 6f 04 00 <48> 8b 40 10 48 8b 40 28 48 85 c0 74 c4 ff d0 0f 1f 00 41 89 c1 85
[ 89.879966] RSP: 0018:ff23a0f9401dbd18 EFLAGS: 00010206
[ 89.886123] RAX: 0000000000000000 RBX: ff13ecb721800000 RCX: 0000000000000000
[ 89.894411] RDX: 0000000000000000 RSI: 0000000000000000 RDI: ff13ecb721847028
[ 89.902705] RBP: ff23a0f9401dbd68 R08: 0000000000000000 R09: 0000000000000000
[ 89.910983] R10: 0000000000000000 R11: 0000000000000000 R12: ff13ecb721800120
[ 89.919249] R13: 0000000000000008 R14: ff13ecb721800010 R15: ff13ecb721847008
[ 89.927505] FS: 0000000000000000(0000) GS:ff13edb1fd000000(0000) knlGS:0000000000000000
[ 89.936828] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 89.943513] CR2: 0000000000000010 CR3: 000001a8de63e001 CR4: 0000000000f73ef0
[ 89.951761] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[ 89.960010] DR3: 0000000000000000 DR6: 00000000fffe07f0 DR7: 0000000000000400
[ 89.968252] PKRU: 55555554
[ 89.971516] Call Trace:
[ 89.974487] <TASK>
[ 89.977067] ? show_regs+0x6c/0x80
[ 89.981115] ? __die+0x24/0x80
[ 89.984761] ? page_fault_oops+0x175/0x5c0
[ 89.989580] ? vprintk_emit+0x127/0x400
[ 89.994106] ? do_user_addr_fault+0x4b2/0x870
[ 89.999222] ? exc_page_fault+0x82/0x1b0
[ 90.003858] ? asm_exc_page_fault+0x27/0x30
[ 90.008804] ? amdgpu_device_fini_hw+0x1f2/0x570 [amdgpu]
[ 90.015539] ? amdgpu_device_fini_hw+0x16d/0x570 [amdgpu]
[ 90.022274] ? blocking_notifier_chain_unregister+0x38/0x70
[ 90.028773] amdgpu_driver_unload_kms+0x4b/0x70 [amdgpu]
[ 90.035419] amdgpu_driver_load_kms+0x91/0xd0 [amdgpu]
[ 90.041865] amdgpu_pci_probe+0x1d1/0x650 [amdgpu]
[ 90.047920] local_pci_probe+0x44/0xb0
[ 90.052388] work_for_cpu_fn+0x17/0x30
[ 90.056847] process_one_work+0x178/0x3d0
[ 90.061607] worker_thread+0x2de/0x410
[ 90.066066] ? __pfx_worker_thread+0x10/0x10
[ 90.071114] kthread+0xe1/0x110
[ 90.074891] ? __pfx_kthread+0x10/0x10
[ 90.079353] ret_from_fork+0x44/0x70
[ 90.083627] ? __pfx_kthread+0x10/0x10
[ 90.088085] ret_from_fork_asm+0x1a/0x30
[ 90.092742] </TASK>
[ 90.252277] ---[ end trace 0000000000000000 ]---
Signed-off-by: Jiang Liu <gerry@linux.alibaba.com>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_xcp.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_xcp.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_xcp.c
index 272954f6e476..d430fab12355 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_xcp.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_xcp.c
@@ -752,7 +752,7 @@ void amdgpu_xcp_cfg_sysfs_fini(struct amdgpu_device *adev)
struct amdgpu_xcp_cfg *xcp_cfg;
int i;
- if (!adev->xcp_mgr)
+ if (!adev->xcp_mgr || !adev->xcp_mgr->xcp_cfg)
return;
xcp_cfg = adev->xcp_mgr->xcp_cfg;
--
2.43.5
next prev parent reply other threads:[~2025-01-24 5:22 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-24 5:19 [v6 0/5] Fix several bugs in error handling during device probe Jiang Liu
2025-01-24 5:19 ` [v6 1/5] drm/amdxcp: introduce new API amdgpu_xcp_drm_dev_free() Jiang Liu
2025-01-24 5:19 ` [v6 2/5] drm/amdgpu: fix use after free bug related to amdgpu_driver_release_kms() Jiang Liu
2025-01-24 5:19 ` Jiang Liu [this message]
2025-01-24 5:19 ` [v6 4/5] drm/amdgpu: enhance error handling in function amdgpu_pci_probe() Jiang Liu
2025-01-24 5:19 ` [v6 5/5] drm/amdgpu: fix invalid memory access in amdgpu_fence_driver_sw_fini() Jiang Liu
2025-01-24 14:16 ` Christian König
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=7e79844abed04b9f6f70565aafff736fe19d19ce.1737695869.git.gerry@linux.alibaba.com \
--to=gerry@linux.alibaba.com \
--cc=Hawking.Zhang@amd.com \
--cc=Kent.Russell@amd.com \
--cc=Xinhui.Pan@amd.com \
--cc=airlied@gmail.com \
--cc=alexander.deucher@amd.com \
--cc=amd-gfx@lists.freedesktop.org \
--cc=christian.koenig@amd.com \
--cc=lijo.lazar@amd.com \
--cc=mario.limonciello@amd.com \
--cc=shuox.liu@linux.alibaba.com \
--cc=simona@ffwll.ch \
--cc=sunil.khatri@amd.com \
--cc=xiaogang.chen@amd.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox