Patch "drm/amdgpu: fix calltrace warning in amddrm_buddy_fini" has been added to the 6.4-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    drm/amdgpu: fix calltrace warning in amddrm_buddy_fini

to the 6.4-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     drm-amdgpu-fix-calltrace-warning-in-amddrm_buddy_fin.patch
and it can be found in the queue-6.4 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 98b901cb31b9fd4c8a2be30781f0e76f6c20386c
Author: Longlong Yao <Longlong.Yao@xxxxxxx>
Date:   Thu Apr 13 13:21:45 2023 +0800

    drm/amdgpu: fix calltrace warning in amddrm_buddy_fini
    
    [ Upstream commit 01382501509871d0799bab6bd412c228486af5bf ]
    
    The following call trace is observed when removing the amdgpu driver, which
    is caused by that BOs allocated for psp are not freed until removing.
    
    [61811.450562] RIP: 0010:amddrm_buddy_fini.cold+0x29/0x47 [amddrm_buddy]
    [61811.450577] Call Trace:
    [61811.450577]  <TASK>
    [61811.450579]  amdgpu_vram_mgr_fini+0x135/0x1c0 [amdgpu]
    [61811.450728]  amdgpu_ttm_fini+0x207/0x290 [amdgpu]
    [61811.450870]  amdgpu_bo_fini+0x27/0xa0 [amdgpu]
    [61811.451012]  gmc_v9_0_sw_fini+0x4a/0x60 [amdgpu]
    [61811.451166]  amdgpu_device_fini_sw+0x117/0x520 [amdgpu]
    [61811.451306]  amdgpu_driver_release_kms+0x16/0x30 [amdgpu]
    [61811.451447]  devm_drm_dev_init_release+0x4d/0x80 [drm]
    [61811.451466]  devm_action_release+0x15/0x20
    [61811.451469]  release_nodes+0x40/0xb0
    [61811.451471]  devres_release_all+0x9b/0xd0
    [61811.451473]  __device_release_driver+0x1bb/0x2a0
    [61811.451476]  driver_detach+0xf3/0x140
    [61811.451479]  bus_remove_driver+0x6c/0xf0
    [61811.451481]  driver_unregister+0x31/0x60
    [61811.451483]  pci_unregister_driver+0x40/0x90
    [61811.451486]  amdgpu_exit+0x15/0x447 [amdgpu]
    
    For smu v13_0_2, if the GPU supports xgmi, refer to
    
    commit f5c7e7797060 ("drm/amdgpu: Adjust removal control flow for smu v13_0_2"),
    
    it will run gpu recover in AMDGPU_RESET_FOR_DEVICE_REMOVE mode when removing,
    which makes all devices in hive list have hw reset but no resume except the
    basic ip blocks, then other ip blocks will not call .hw_fini according to
    ip_block.status.hw.
    
    Since psp_free_shared_bufs just includes some software operations, so move
    it to psp_sw_fini.
    
    Reviewed-by: Guchun Chen <guchun.chen@xxxxxxx>
    Reviewed-by: Feifei Xu <Feifei.Xu@xxxxxxx>
    Signed-off-by: Longlong Yao <Longlong.Yao@xxxxxxx>
    Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
index db820331f2c61..39e54685653cc 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
@@ -520,6 +520,8 @@ static int psp_sw_fini(void *handle)
 	kfree(cmd);
 	cmd = NULL;
 
+	psp_free_shared_bufs(psp);
+
 	if (psp->km_ring.ring_mem)
 		amdgpu_bo_free_kernel(&adev->firmware.rbuf,
 				      &psp->km_ring.ring_mem_mc_addr,
@@ -2657,8 +2659,6 @@ static int psp_hw_fini(void *handle)
 
 	psp_ring_destroy(psp, PSP_RING_TYPE__KM);
 
-	psp_free_shared_bufs(psp);
-
 	return 0;
 }
 



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux