[AMD Official Use Only - AMD Internal Distribution Only]

Reviewed-by:  Ellen Pan <[email protected]>

-----Original Message-----
From: SHANMUGAM, SRINIVASAN <[email protected]>
Sent: Thursday, March 12, 2026 9:25 AM
To: Koenig, Christian <[email protected]>; Deucher, Alexander 
<[email protected]>
Cc: [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