On 5/26/2022 3:24 PM, Sharma, Shashank wrote: > Hey Amar, > > On 5/26/2022 11:48 AM, Somalapuram Amaranath wrote: >> Allocate memory for register value and use the same values for >> devcoredump. >> v1 -> V2: Change krealloc_array() to kmalloc_array() >> >> Signed-off-by: Somalapuram Amaranath >> --- >>   drivers/gpu/drm/amd/amdgpu/amdgpu.h         | 1 + >>   drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c | 7 +++++++ >>   drivers/gpu/drm/amd/amdgpu/amdgpu_device.c  | 6 +++--- >>   3 files changed, 11 insertions(+), 3 deletions(-) >> >> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h >> b/drivers/gpu/drm/amd/amdgpu/amdgpu.h >> index 76df583663c7..c79d9992b113 100644 >> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h >> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h >> @@ -1042,6 +1042,7 @@ struct amdgpu_device { >>         /* reset dump register */ >>       uint32_t                        *reset_dump_reg_list; >> +    uint32_t            *reset_dump_reg_value; >>       int                             num_regs; >>         struct amdgpu_reset_domain    *reset_domain; >> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c >> b/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c >> index eedb12f6b8a3..f3ac7912c29c 100644 >> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c >> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c >> @@ -1709,17 +1709,24 @@ static ssize_t >> amdgpu_reset_dump_register_list_write(struct file *f, >>           i++; >>       } while (len < size); >>   +    new = kmalloc_array(i, sizeof(uint32_t), GFP_KERNEL); >> +    if (!new) { >> +        ret = -ENOMEM; >> +        goto error_free; >> +    } >>       ret = down_write_killable(&adev->reset_domain->sem); >>       if (ret) >>           goto error_free; >>         swap(adev->reset_dump_reg_list, tmp); >> +    swap(adev->reset_dump_reg_value, new); >>       adev->num_regs = i; >>       up_write(&adev->reset_domain->sem); >>       ret = size; >>     error_free: >>       kfree(tmp); >> +    kfree(new); >>       return ret; >>   } >>   diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c >> b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c >> index 4daa0e893965..866b4980a6fa 100644 >> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c >> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c >> @@ -4720,15 +4720,15 @@ int amdgpu_device_pre_asic_reset(struct >> amdgpu_device *adev, >>     static int amdgpu_reset_reg_dumps(struct amdgpu_device *adev) >>   { >> -    uint32_t reg_value; >>       int i; >>         lockdep_assert_held(&adev->reset_domain->sem); >>       dump_stack(); >>         for (i = 0; i < adev->num_regs; i++) { >> -        reg_value = RREG32(adev->reset_dump_reg_list[i]); >> - trace_amdgpu_reset_reg_dumps(adev->reset_dump_reg_list[i], reg_value); >> +        adev->reset_dump_reg_value[i] = >> RREG32(adev->reset_dump_reg_list[i]); >> + trace_amdgpu_reset_reg_dumps(adev->reset_dump_reg_list[i], >> +                adev->reset_dump_reg_value[i]); Alignment is showing spaces in email. But its 2 tabs in code. Regards, S.Amarnath > Please fix the alignment with the line above, after that, please feel > free to use: > Reviewed-by: Shashank Sharma > > - Shashank >>       } >>         return 0;