AMD General Hi
@Chai, Thomas@Zhou1, Tao. Please take a look at this patch. Thanks, Chi -----Original Message----- From: Lazar, Lijo <[email protected]> Sent: Wednesday, September 30, 2026 7:26 PM To: Hong, Chi <[email protected]>; [email protected] Cc: Zhang, Hawking <[email protected]>; Zhang, Tiantian (Celine) <[email protected]>; Zhou1, Tao <[email protected]>; Chai, Thomas <[email protected]> Subject: Re: [PATCH] drm/amd/ras: skip RAS TA firmware reload on resume for SR-IOV VFs cc: Tao/Thomas to take a look. Thanks, Lijo On 29-Sep-26 12:55 PM, Hong, Chi wrote: > AMD General > > Ping > > -----Original Message----- > From: Chi Hong <[email protected]> > Sent: Monday, September 28, 2026 2:12 PM > To: [email protected] > Cc: Hong, Chi <[email protected]> > Subject: [PATCH] drm/amd/ras: skip RAS TA firmware reload on resume for > SR-IOV VFs > > SR-IOV VFs use amdgpu_virt_ras_hw_init() which skips ras_core_hw_init(), > leaving fw_gpu_mem unallocated. ras_psp_reload_firmwares() then hits the NULL > buffer and returns -ENOMEM (-12) for every VF on resume, aborting > ip_resume_phase2 before amdgpu_fence_driver_hw_init() runs. The next > hibernate double-puts IRQ refcounts causing a WARN storm. > > Skip the reload for VFs - there is nothing local to reload. The post-reset > path (amdgpu_ras_mgr_resume_after_reset) is unaffected. > > Fixes: 5e5be56a5b76 ("drm/amdgpu/ras: reload RAS TA from ras mgr resume") > Signed-off-by: Chi Hong <[email protected]> > --- > drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_ras_mgr.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_ras_mgr.c > b/drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_ras_mgr.c > index a02167397ce2..5bac792554f5 100644 > --- a/drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_ras_mgr.c > +++ b/drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_ras_mgr.c > @@ -529,6 +529,9 @@ static int amdgpu_ras_mgr_resume(struct amdgpu_ip_block > *ip_block) > if (!ras_mgr->ras_is_ready) > return 0; > > + if (amdgpu_sriov_vf(adev)) > + return 0; > + > ret = ras_psp_reload_firmwares(ras_mgr->ras_core, 0); > if (ret) > RAS_DEV_ERR(adev, > -- > 2.43.0
