[PATCH] drm/amdgpu: Fixed bug on error when uninstalling amdgpu
Chai, Thomas
YiPeng.Chai at amd.com
Fri Dec 16 12:12:07 UTC 2022
[AMD Official Use Only - General]
OK, I will update subject line. Thanks!
-----------------
Best Regards,
Thomas
-----Original Message-----
From: Christian König <ckoenig.leichtzumerken at gmail.com>
Sent: Friday, December 16, 2022 4:50 PM
To: Chai, Thomas <YiPeng.Chai at amd.com>; amd-gfx at lists.freedesktop.org; Paneer Selvam, Arunpravin <Arunpravin.PaneerSelvam at amd.com>
Cc: Zhou1, Tao <Tao.Zhou1 at amd.com>; Zhang, Hawking <Hawking.Zhang at amd.com>; Chai, Thomas <YiPeng.Chai at amd.com>
Subject: Re: [PATCH] drm/amdgpu: Fixed bug on error when uninstalling amdgpu
Am 16.12.22 um 03:56 schrieb YiPeng Chai:
> Fixed bug on error when uninstalling amdgpu.
> The error message is as follows:
> [ 304.852489] kernel BUG at drivers/gpu/drm/drm_buddy.c:278!
> [ 304.852503] invalid opcode: 0000 [#1] PREEMPT SMP NOPTI
> [ 304.852510] CPU: 2 PID: 4192 Comm: modprobe Tainted: G W IOE 5.19.0-thomas #1
> [ 304.852519] Hardware name: ASUS System Product Name/PRIME Z390-A,
> BIOS 2004 11/02/2021 [ 304.852526] RIP:
> 0010:drm_buddy_free_block+0x26/0x30 [drm_buddy] [ 304.852535] Code:
> 00 00 00 90 0f 1f 44 00 00 48 8b 0e 89 c8 25 00 0c 00 00 3d 00 04 00
> 00 75 10 48 8b 47 18 48 d3 e0 48 01 47 28 e9 fa fe ff ff <0f> 0b 0f 1f
> 84 00 00 00 00 00 0f 1f 44 00 00 41 54 55 48 89 f5 53 [ 304.852549]
> RSP: 0018:ffff9afac17bbcb8 EFLAGS: 00010287 [ 304.852556] RAX:
> 0000000000000000 RBX: ffff8dacd37fd778 RCX: 0000000000000000 [
> 304.852563] RDX: ffff8dacd37fd7a0 RSI: ffff8dacd37fd3b8 RDI:
> ffff8dac672a5f80 [ 304.852570] RBP: ffff8dacd37fd3a0 R08:
> 0000000000000001 R09: 0000000000000000 [ 304.852577] R10:
> ffff8dac68185500 R11: ffff9afac17bbd00 R12: ffff8dac672a5f80 [
> 304.852584] R13: ffff8dac672a5fe0 R14: ffff8dacd37fd380 R15:
> ffff8dac672a5f80 [ 304.852590] FS: 00007f0fa9b30c40(0000)
> GS:ffff8dadb6480000(0000) knlGS:0000000000000000 [ 304.852598] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 304.852604] CR2: 00007f4bf1a1ba50 CR3: 0000000108c58004 CR4: 00000000003706e0 [ 304.852611] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [ 304.852618] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 [ 304.852625] Call Trace:
> [ 304.852629] <TASK>
> [ 304.852632] drm_buddy_free_list+0x2a/0x60 [drm_buddy] [
> 304.852639] amdgpu_vram_mgr_fini+0xea/0x180 [amdgpu] [ 304.852827]
> amdgpu_ttm_fini+0x1f9/0x280 [amdgpu] [ 304.852925]
> amdgpu_bo_fini+0x22/0x90 [amdgpu] [ 304.853022]
> gmc_v11_0_sw_fini+0x26/0x30 [amdgpu] [ 304.853132]
> amdgpu_device_fini_sw+0xc5/0x3b0 [amdgpu] [ 304.853229]
> amdgpu_driver_release_kms+0x12/0x30 [amdgpu] [ 304.853327]
> drm_dev_release+0x20/0x40 [drm] [ 304.853352]
> release_nodes+0x35/0xb0 [ 304.853359] devres_release_all+0x8b/0xc0 [
> 304.853364] device_unbind_cleanup+0xe/0x70 [ 304.853370]
> device_release_driver_internal+0xee/0x160
> [ 304.853377] driver_detach+0x44/0x90 [ 304.853382]
> bus_remove_driver+0x55/0xe0 [ 304.853387]
> pci_unregister_driver+0x3b/0x90 [ 304.853393] amdgpu_exit+0x11/0x69
> [amdgpu] [ 304.853540] __x64_sys_delete_module+0x142/0x260
> [ 304.853548] ? exit_to_user_mode_prepare+0x3e/0x190
> [ 304.853555] do_syscall_64+0x38/0x90 [ 304.853562]
> entry_SYSCALL_64_after_hwframe+0x63/0xcd
>
> Signed-off-by: YiPeng Chai <YiPeng.Chai at amd.com>
The subject line should probably read "when unloading amdgpu", but apart from that good catch.
Reviewed-by: Christian König <christian.koenig at amd.com>
> ---
> drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
> index 0b598b510bd8..eb63324c30d2 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
> @@ -829,7 +829,7 @@ void amdgpu_vram_mgr_fini(struct amdgpu_device *adev)
> kfree(rsv);
>
> list_for_each_entry_safe(rsv, temp, &mgr->reserved_pages, blocks) {
> - drm_buddy_free_list(&mgr->mm, &rsv->blocks);
> + drm_buddy_free_list(&mgr->mm, &rsv->allocated);
> kfree(rsv);
> }
> drm_buddy_fini(&mgr->mm);
More information about the amd-gfx
mailing list