From: YiPeng Chai <[email protected]>

Resolve compiler warning for stack frame exceeding 1024 bytes.

Signed-off-by: YiPeng Chai <[email protected]>
Reviewed-by: Tao Zhou <[email protected]>
Signed-off-by: Alex Deucher <[email protected]>
---
 .../drm/amd/ras/ras_mgr/amdgpu_virt_ras_cmd.c | 24 +++++++++++++------
 1 file changed, 17 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_virt_ras_cmd.c 
b/drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_virt_ras_cmd.c
index fd4eea8c3f7ba..f6b114d9d613f 100644
--- a/drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_virt_ras_cmd.c
+++ b/drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_virt_ras_cmd.c
@@ -441,27 +441,37 @@ int amdgpu_virt_ras_convert_retired_address(struct 
amdgpu_device *adev,
                        uint64_t address, uint64_t *pfn, uint32_t max_pfn_sz)
 {
        struct ras_cmd_convert_retired_address_req req = {0};
-       struct ras_cmd_convert_retired_address_rsp rsp = {0};
+       struct ras_cmd_convert_retired_address_rsp *rsp;
        int ret = 0, i;
        int retired_page_count;
 
        if (!pfn || !max_pfn_sz)
                return -EINVAL;
 
+       rsp = kzalloc(sizeof(*rsp), GFP_KERNEL);
+       if (!rsp)
+               return -ENOMEM;
+
        req.address = address;
 
        ret = amdgpu_ras_mgr_handle_ras_cmd(adev, 
RAS_CMD__CONVERT_RETIRED_ADDRESS,
-               &req, sizeof(req), &rsp, sizeof(rsp));
+               &req, sizeof(req), rsp, sizeof(*rsp));
 
-       if (ret || rsp.retired_count == 0)
-               return -EINVAL;
+       if (ret || rsp->retired_count == 0) {
+               ret = -EINVAL;
+               goto out;
+       }
 
-       retired_page_count = rsp.retired_count > max_pfn_sz ? max_pfn_sz : 
rsp.retired_count;
+       retired_page_count = rsp->retired_count > max_pfn_sz ? max_pfn_sz : 
rsp->retired_count;
 
        for (i = 0; i < retired_page_count; i++)
-               pfn[i] = rsp.retired_addr[i] >> AMDGPU_GPU_PAGE_SHIFT;
+               pfn[i] = rsp->retired_addr[i] >> AMDGPU_GPU_PAGE_SHIFT;
+
+       ret = retired_page_count;
 
-       return retired_page_count;
+out:
+       kfree(rsp);
+       return ret;
 }
 
 static struct ras_cmd_func_map amdgpu_virt_ras_cmd_maps[] = {
-- 
2.55.0

Reply via email to