[PATCH] drm/amdgpu: fix 64 bit divide in eeprom code
Luben Tuikov
luben.tuikov at amd.com
Wed Jun 30 16:24:53 UTC 2021
Reviewed-by: Luben Tuikov <luben.tuikov at amd.com>
On 2021-06-30 11:25 a.m., Alex Deucher wrote:
> pos is 64 bits.
>
> Fixes: 5e98eafa90ca19 ("drm/amdgpu: RAS EEPROM table is now in debugfs")
> Cc: luben.tuikov at amd.com
> Reported-by: kernel test robot <lkp at intel.com>
> Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
> ---
> drivers/gpu/drm/amd/amdgpu/amdgpu_ras_eeprom.c | 14 +++++++++-----
> 1 file changed, 9 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras_eeprom.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras_eeprom.c
> index 677e379f5fb5..fc70620369e4 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras_eeprom.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras_eeprom.c
> @@ -880,13 +880,17 @@ static ssize_t amdgpu_ras_debugfs_table_read(struct file *f, char __user *buf,
> if (*pos < data_len && size > 0) {
> u8 dare[RAS_TABLE_RECORD_SIZE];
> u8 data[rec_hdr_fmt_size + 1];
> + struct eeprom_table_record record;
> + int s, r;
> +
> /* Find the starting record index
> */
> - int s = (*pos - strlen(tbl_hdr_str) - tbl_hdr_fmt_size -
> - strlen(rec_hdr_str)) / rec_hdr_fmt_size;
> - int r = (*pos - strlen(tbl_hdr_str) - tbl_hdr_fmt_size -
> - strlen(rec_hdr_str)) % rec_hdr_fmt_size;
> - struct eeprom_table_record record;
> + s = *pos - strlen(tbl_hdr_str) - tbl_hdr_fmt_size -
> + strlen(rec_hdr_str);
> + s = s / rec_hdr_fmt_size;
> + r = *pos - strlen(tbl_hdr_str) - tbl_hdr_fmt_size -
> + strlen(rec_hdr_str);
> + r = r % rec_hdr_fmt_size;
>
> for ( ; size > 0 && s < control->ras_num_recs; s++) {
> u32 ai = RAS_RI_TO_AI(control, s);
More information about the amd-gfx
mailing list