On 10-Mar-26 7:52 AM, Mario Limonciello wrote:
If discovery has failed for any reason (such as no support for a block)
then there is no need to unwind all the IP blocks in fini. In this
condition there can actually be failures during the unwind too.
Reset num_ip_blocks to zero during failure path.
Suggested-by: Lijo Lazar <[email protected]>
Signed-off-by: Mario Limonciello <[email protected]>
This will do specifically for the ip block checks.
Wondering whether amdgpu_driver_unload_kms() also should be modified.
For ex: calling amdgpu_unregister_gpu_instance and
amdgpu_device_fini_hw() don't seem to be relevant if discovery fails.
Thanks,
Lijo
---
v2:
* Stop chasing NULL pointers (Lijo)
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
index bc6f714e8763a..042f24a0e10fb 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
@@ -2701,8 +2701,10 @@ static int amdgpu_device_ip_early_init(struct
amdgpu_device *adev)
break;
default:
r = amdgpu_discovery_set_ip_blocks(adev);
- if (r)
+ if (r) {
+ adev->num_ip_blocks = 0;
return r;
+ }
break;
}