]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
media: staging/ipu7: cleanup the MMU correctly in IPU7 driver release
authorBingbu Cao <bingbu.cao@intel.com>
Fri, 15 Aug 2025 09:20:37 +0000 (17:20 +0800)
committerHans Verkuil <hverkuil+cisco@kernel.org>
Mon, 25 Aug 2025 13:40:43 +0000 (15:40 +0200)
IPU7 ISYS and PSYS auxiliary devices are released after
ipu7_bus_del_devices(), so driver can not reference the MMU devices
from ISYS and PSYS auxiliary devices, so move the MMUs cleanup before
releasing the auxiliary devices.

Fixes: b7fe4c0019b1 ("media: staging/ipu7: add Intel IPU7 PCI device driver")
Signed-off-by: Bingbu Cao <bingbu.cao@intel.com>
[Sakari Ailus: Drop extra newline.]
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
drivers/staging/media/ipu7/ipu7.c

index aef931d235108674a320e62c4ba6c64f82e714bf..ee6b63717ed3698d33ea9f66db098c463156abaa 100644 (file)
@@ -2644,6 +2644,9 @@ static void ipu7_pci_remove(struct pci_dev *pdev)
        if (!IS_ERR_OR_NULL(isp->fw_code_region))
                vfree(isp->fw_code_region);
 
+       ipu7_mmu_cleanup(isp->isys->mmu);
+       ipu7_mmu_cleanup(isp->psys->mmu);
+
        ipu7_bus_del_devices(pdev);
 
        pm_runtime_forbid(&pdev->dev);
@@ -2652,9 +2655,6 @@ static void ipu7_pci_remove(struct pci_dev *pdev)
        ipu_buttress_exit(isp);
 
        release_firmware(isp->cpd_fw);
-
-       ipu7_mmu_cleanup(isp->psys->mmu);
-       ipu7_mmu_cleanup(isp->isys->mmu);
 }
 
 static void ipu7_pci_reset_prepare(struct pci_dev *pdev)