USB: EHCI: tegra: Fix oops in error cleanup
authorThierry Reding <thierry.reding@gmail.com>
Fri, 14 Jun 2013 11:21:21 +0000 (13:21 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 17 Jun 2013 20:56:25 +0000 (13:56 -0700)
commit8fefcfdd276be1459aaa2b2648037d2c0e1a3caa
tree059f36d675a7c52b9fe2990a173c7979e8b4ebd1
parentc19d14d6d0120e73418294e6a30db0566e5daf02
USB: EHCI: tegra: Fix oops in error cleanup

Under some circumstances it happens that the connected PHY can't be
powered up properly, in which case the cleanup path currently crashes
because it checks the tegra->transceiver field using !IS_ERR(), which
will succeed because it is in fact NULL. Dereferencing that pointer
causes an oops in tegra_ehci_probe().

This patch fixes the issue by adding an additional label into the
cleanup path to separately take down the PHY and the transceiver.

Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
Reviewed-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/host/ehci-tegra.c