From: Laurent Pinchart Date: Mon, 11 Mar 2013 15:02:13 +0000 (-0300) Subject: [media] omap3isp: Defer probe when the IOMMU is not available X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=7c0f812a5d65e712618af880dda4a5cc7ed79463;p=openwrt%2Fstaging%2Fblogic.git [media] omap3isp: Defer probe when the IOMMU is not available When the OMAP3 ISP driver is compiled in the kernel the device can be probed before the corresponding IOMMU is available. Defer the probe in that case, and fix a crash in the error path. Reported-by: Javier Martin Signed-off-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab --- diff --git a/drivers/media/platform/omap3isp/isp.c b/drivers/media/platform/omap3isp/isp.c index 5a04077b362b..ff5a20afa691 100644 --- a/drivers/media/platform/omap3isp/isp.c +++ b/drivers/media/platform/omap3isp/isp.c @@ -2249,6 +2249,7 @@ static int isp_probe(struct platform_device *pdev) ret = iommu_attach_device(isp->domain, &pdev->dev); if (ret) { dev_err(&pdev->dev, "can't attach iommu device: %d\n", ret); + ret = -EPROBE_DEFER; goto free_domain; } @@ -2287,6 +2288,7 @@ detach_dev: iommu_detach_device(isp->domain, &pdev->dev); free_domain: iommu_domain_free(isp->domain); + isp->domain = NULL; error_isp: isp_xclk_cleanup(isp); omap3isp_put(isp);