summaryrefslogtreecommitdiff
path: root/drivers/usb
diff options
context:
space:
mode:
authorjoyw <joyw@nvidia.com>2013-01-31 18:51:25 +0800
committerRiham Haidar <rhaidar@nvidia.com>2013-02-01 18:42:04 -0800
commit8c3bb236fdcd1e3106efc59b479036d29531af8e (patch)
treea80ee580f0c6bfac7578f59b8f477e3ebe55c794 /drivers/usb
parent4c063c4cf183672c9d4ded9008faf1c95649a4dc (diff)
usb: xhci: WAR fix panic in xhci_free_dev
Avoid kernel panic in xhci_free_dev function. Add WRAN_ON to get noticed when issue reproduced. Change-Id: I493166c0032526bfa190a7dc2abb5156309eedd3 Signed-off-by: joyw <joyw@nvidia.com> Reviewed-on: http://git-master/r/196187 Reviewed-by: Ajay Gupta <ajayg@nvidia.com> Tested-by: Ajay Gupta <ajayg@nvidia.com> Reviewed-by: Ashutosh Jha <ajha@nvidia.com> Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Jui Chang Kuo <jckuo@nvidia.com>
Diffstat (limited to 'drivers/usb')
-rw-r--r--drivers/usb/host/xhci.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
index 37e82bfa855a..3206624fbc4a 100644
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
@@ -3365,6 +3365,10 @@ void xhci_free_dev(struct usb_hcd *hcd, struct usb_device *udev)
virt_dev = xhci->devs[udev->slot_id];
+ WARN_ON(!virt_dev);
+ if (!virt_dev)
+ return;
+
/* Stop any wayward timer functions (which may grab the lock) */
for (i = 0; i < 31; ++i) {
virt_dev->eps[i].ep_state &= ~EP_HALT_PENDING;