[PATCH] drm/amdgpu: fix 64 bit divide in eeprom code
Alex Deucher
alexander.deucher at amd.com
Wed Jun 30 15:25:37 UTC 2021
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);
--
2.31.1
More information about the amd-gfx
mailing list