[PATCH] drm/amdgpu: don't free conflicting apertures for accelerators
Alex Deucher
alexander.deucher at amd.com
Wed Oct 30 21:01:51 UTC 2024
PCI_CLASS_ACCELERATOR_PROCESSING devices won't ever be
the sysfb, so there is no need to free conflicting
apertures. This could lead to the sysfb aperture being freed
while we still need it for the platform fb.
Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
index 383bbee87df5..e74395bdebe4 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
@@ -4290,10 +4290,16 @@ int amdgpu_device_init(struct amdgpu_device *adev,
if (r)
return r;
- /* Get rid of things like offb */
- r = drm_aperture_remove_conflicting_pci_framebuffers(adev->pdev, &amdgpu_kms_driver);
- if (r)
- return r;
+ /*
+ * No need to remove conflicting FBs for accelerator class devices.
+ * This prevents the sysfb from being freed accidently.
+ */
+ if ((adev->pdev->class >> 8) != PCI_CLASS_ACCELERATOR_PROCESSING) {
+ /* Get rid of things like offb */
+ r = drm_aperture_remove_conflicting_pci_framebuffers(adev->pdev, &amdgpu_kms_driver);
+ if (r)
+ return r;
+ }
/* Enable TMZ based on IP_VERSION */
amdgpu_gmc_tmz_set(adev);
--
2.47.0
More information about the amd-gfx
mailing list