]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
iommu/mediatek: Add list_del in mtk_iommu_remove
authorYong Wu <yong.wu@mediatek.com>
Tue, 3 May 2022 07:13:56 +0000 (15:13 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 14 Jun 2022 14:53:51 +0000 (16:53 +0200)
[ Upstream commit ee55f75e4bcade81d253163641b63bef3e76cac4 ]

Lack the list_del in the mtk_iommu_remove, and remove
bus_set_iommu(*, NULL) since there may be several iommu HWs.
we can not bus_set_iommu null when one iommu driver unbind.

This could be a fix for mt2712 which support 2 M4U HW and list them.

Fixes: 7c3a2ec02806 ("iommu/mediatek: Merge 2 M4U HWs into one iommu domain")
Signed-off-by: Yong Wu <yong.wu@mediatek.com>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Reviewed-by: Matthias Brugger <matthias.bgg@gmail.com>
Link: https://lore.kernel.org/r/20220503071427.2285-6-yong.wu@mediatek.com
Signed-off-by: Joerg Roedel <jroedel@suse.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/iommu/mtk_iommu.c

index 0f99e95a1a73934aaba4ea2d8ae9a73a65263b0c..7ac868c71577b2932ceba41c0fbaa6922fe1cc88 100644 (file)
@@ -696,8 +696,7 @@ static int mtk_iommu_remove(struct platform_device *pdev)
        iommu_device_sysfs_remove(&data->iommu);
        iommu_device_unregister(&data->iommu);
 
-       if (iommu_present(&platform_bus_type))
-               bus_set_iommu(&platform_bus_type, NULL);
+       list_del(&data->list);
 
        clk_disable_unprepare(data->bclk);
        devm_free_irq(&pdev->dev, data->irq, data);