Blob Blame History Raw
From 01feeb7d3aa2d802408e2e916efff927d9b0122e Mon Sep 17 00:00:00 2001
From: Alex Deucher <alexander.deucher@amd.com>
Date: Wed, 30 Jun 2021 11:19:14 -0400
Subject: drm/amdgpu: fix 64 bit divide in eeprom code
Git-commit: d456f3875af2eb5bf5a9cbd526622801ffc51037
Patch-mainline: v5.15-rc1
References: jsc#PED-1166 jsc#PED-1168 jsc#PED-1170 jsc#PED-1218 jsc#PED-1220 jsc#PED-1222 jsc#PED-1223 jsc#PED-1225

pos is 64 bits.

Fixes: c65b0805e77919 ("drm/amdgpu: RAS EEPROM table is now in debugfs")
Cc: luben.tuikov@amd.com
Reported-by: kernel test robot <lkp@intel.com>
Reviewed-by: Luben Tuikov <luben.tuikov@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Acked-by: Patrik Jakobsson <pjakobsson@suse.de>
---
 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 87387e53bc1e..4ca7f489640e 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras_eeprom.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras_eeprom.c
@@ -884,13 +884,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.38.1