[AMD Official Use Only - AMD Internal Distribution Only]

Reviewed-by:  Bokun Zhang <[email protected]>


________________________________
From: amd-gfx <[email protected]> on behalf of Srinivasan 
Shanmugam <[email protected]>
Sent: Thursday, March 12, 2026 9:24 AM
To: Koenig, Christian <[email protected]>; Deucher, Alexander 
<[email protected]>
Cc: [email protected] <[email protected]>; SHANMUGAM, 
SRINIVASAN <[email protected]>; Dan Carpenter 
<[email protected]>; Pan, Ellen <[email protected]>; Lazar, Lijo 
<[email protected]>
Subject: [PATCH] drm/amdgpu: Remove dead negative offset check in 
amdgpu_virt_init_critical_region()

amdgpu_virt_init_critical_region() stores init_hdr_offset as u64.
The subsequent check for init_hdr_offset < 0 is therefore always false.

Drop the unreachable validation and rely on the existing
check_add_overflow() and VRAM end bounds check for offset validation.

This resolves the Smatch warning about comparing an unsigned value
against zero.

drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c:953 amdgpu_virt_init_critical_region() 
warn: unsigned 'init_hdr_offset' is never less than zero.

Fixes: 07009df6494d ("drm/amdgpu: Introduce SRIOV critical regions v2 during VF 
init")
Cc: Dan Carpenter <[email protected]>
Cc: Ellen Pan <[email protected]>
Cc: Lijo Lazar <[email protected]>
Cc: Alex Deucher <[email protected]>
Cc: Christian König <[email protected]>
Signed-off-by: Srinivasan Shanmugam <[email protected]>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c | 5 -----
 1 file changed, 5 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c
index f01f38509108..07f0f17bad49 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c
@@ -950,11 +950,6 @@ int amdgpu_virt_init_critical_region(struct amdgpu_device 
*adev)
         if (adev->virt.req_init_data_ver != GPU_CRIT_REGION_V2)
                 return 0;

-       if (init_hdr_offset < 0) {
-               dev_err(adev->dev, "Invalid init header offset\n");
-               return -EINVAL;
-       }
-
         vram_size = RREG32(mmRCC_CONFIG_MEMSIZE);
         if (!vram_size || vram_size == U32_MAX)
                 return -EINVAL;
--
2.34.1

Reply via email to