summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/board-enterprise.c
diff options
context:
space:
mode:
authorVinayak Pane <vpane@nvidia.com>2012-07-17 19:06:54 -0700
committerSimone Willett <swillett@nvidia.com>2012-08-10 22:49:08 -0700
commit675dfd18c952e6cf5748aaa305086d86b0358582 (patch)
tree13e9cfc3fc7a94e4e8490f944e61d289d1ce3354 /arch/arm/mach-tegra/board-enterprise.c
parent7c022b1b9bc18c5f2156c67701a0fe382e024a85 (diff)
arm: tegra: xmm: device set to null in unregister
hsic_unregister is being called multiple times during two step enumeration process of xmm. In failure cases when enumeration does not complete properly, kernel panic is seen because of extra unregister-ehci device. Bug 1016593 Change-Id: Ibaeb20ed0dab0e906741fdfad78f7d89a3672f60 Signed-off-by: Vinayak Pane <vpane@nvidia.com> Reviewed-on: http://git-master/r/116626 Reviewed-by: Simone Willett <swillett@nvidia.com> Tested-by: Simone Willett <swillett@nvidia.com>
Diffstat (limited to 'arch/arm/mach-tegra/board-enterprise.c')
-rw-r--r--arch/arm/mach-tegra/board-enterprise.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/arch/arm/mach-tegra/board-enterprise.c b/arch/arm/mach-tegra/board-enterprise.c
index 46078a82a9b1..d918a1fb3518 100644
--- a/arch/arm/mach-tegra/board-enterprise.c
+++ b/arch/arm/mach-tegra/board-enterprise.c
@@ -832,9 +832,15 @@ error:
return NULL;
}
-void tegra_usb_hsic_host_unregister(struct platform_device *pdev)
+void tegra_usb_hsic_host_unregister(struct platform_device **platdev)
{
- platform_device_unregister(pdev);
+ struct platform_device *pdev = *platdev;
+
+ if (pdev && &pdev->dev) {
+ platform_device_unregister(pdev);
+ *platdev = NULL;
+ } else
+ pr_err("%s: no platform device\n", __func__);
}
static void enterprise_usb_init(void)