Patch "iommu/omap: Register driver before setting IOMMU ops" has been added to the 4.9-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
iommu/omap: Register driver before setting IOMMU ops
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
iommu-omap-register-driver-before-setting-iommu-ops.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From foo@baz Thu Mar 22 14:40:23 CET 2018
From: Suman Anna <[email protected]>
Date: Wed, 12 Apr 2017 00:21:26 -0500
Subject: iommu/omap: Register driver before setting IOMMU ops
From: Suman Anna <[email protected]>
[ Upstream commit abaa7e5b054aae567861628b74dbc7fbf8ed79e8 ]
Move the registration of the OMAP IOMMU platform driver before setting the IOMMU callbacks on the platform bus. This causes the IOMMU devices to be probed first before the .add_device() callback is invoked for all registered devices, and allows the iommu_group support to be added to the OMAP IOMMU driver.
While at this, also check for the return status from bus_set_iommu.
--- drivers/iommu/omap-iommu.c | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-)
drivers/iommu/omap-iommu.c +18 -3
@@ -1299,6 +1299,7 @@ static int __init omap_iommu_init(void)const unsigned long flags =SLAB_HWCACHE_ALIGN ;size_t align =1 <<10 ;/* L2 pagetable alignement */ struct device_node *np; +int ret; np =of_find_matching_node (NULL , omap_iommu_of_match);if (!np)
@@ -1312,11 +1313,25 @@ static int __init omap_iommu_init(void)return -ENOMEM ; iopte_cachep = p; -bus_set_iommu (&platform_bus_type, &omap_iommu_ops); -omap_iommu_debugfs_init (); -return platform_driver_register (&omap_iommu_driver); + ret =platform_driver_register (&omap_iommu_driver); +if (ret) { +pr_err ("%s: failed to register driver\n" , __func__); + goto fail_driver; + } + + ret =bus_set_iommu (&platform_bus_type, &omap_iommu_ops); +if (ret) + goto fail_bus; + +return 0 ; + +fail_bus: +platform_driver_unregister (&omap_iommu_driver); +fail_driver: +kmem_cache_destroy (iopte_cachep); +return ret; }subsys_initcall (omap_iommu_init);/* must be ready before omap3isp is probed */
Patches currently in stable-queue which might be from [email protected] are
queue-4.9/iommu-omap-register-driver-before-setting-iommu-ops.patch