mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-10 06:09:23 -04:00
iommu/arm-smmu: Fix memory leak with respect to TBU data structures
When the TBU devices unbind from the TBU driver, all of the resources acquired through the devm_* functions are released. However, the interconnect resources are not acquired through the devm_* APIs. Since the TBU driver does not have a remove() call to release the interconnect resources, this results in a memory leak. Fix this by adding a remove() call to release the interconnect resources on device and driver unbind. Change-Id: Iac6b5a6b1da7ff989ae36775b39c5fa61294270a Signed-off-by: Isaac J. Manjarres <isaacm@codeaurora.org>
This commit is contained in:
parent
a1182703ee
commit
c7e9571e87
1 changed files with 9 additions and 0 deletions
|
|
@ -5594,12 +5594,21 @@ static int qsmmuv500_tbu_probe(struct platform_device *pdev)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int qsmmuv500_tbu_remove(struct platform_device *pdev)
|
||||
{
|
||||
struct qsmmuv500_tbu_device *tbu = dev_get_drvdata(&pdev->dev);
|
||||
|
||||
arm_smmu_exit_power_resources(tbu->pwr);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct platform_driver qsmmuv500_tbu_driver = {
|
||||
.driver = {
|
||||
.name = "qsmmuv500-tbu",
|
||||
.of_match_table = of_match_ptr(qsmmuv500_tbu_of_match),
|
||||
},
|
||||
.probe = qsmmuv500_tbu_probe,
|
||||
.remove = qsmmuv500_tbu_remove,
|
||||
};
|
||||
|
||||
MODULE_DESCRIPTION("IOMMU API for ARM architected SMMU implementations");
|
||||
|
|
|
|||
Loading…
Reference in a new issue