tree 7767a05b651743b41a1c6884591419eca09d4af4
parent f129b3dfb5517c91295da9fe0d2e584d8da25518
author Suman Anna <s-anna@ti.com> 1393620153 -0600
committer Joerg Roedel <joro@8bytes.org> 1393948884 +0100

iommu/omap: Fix error return paths in omap_iommu_attach()

There are couple of issues with the error return paths in
omap_iommu_attach():
1. omap_iommu_attach() returns NULL or ERR_PTR in case of error,
   but omap_iommu_attach_dev() only checks for IS_ERR. Thus a NULL
   return value (in case driver_find_device fails) will cause the
   kernel to panic when omap_iommu_attach_dev() dereferences the
   pointer.
2. A try_module_get() failure returns a valid success value as
   returned from iommu_enable().

Both the above issues have been fixed up to return the proper
ERR_PTR.

Signed-off-by: Florian Vaussard <florian.vaussard@epfl.ch>
Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Joerg Roedel <joro@8bytes.org>
