diff options
author | Roger Quadros <rogerq@ti.com> | 2015-05-29 17:01:48 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2015-05-31 15:45:31 +0900 |
commit | 8a853759c262fd52ff0f5e89f89c65928077fe4a (patch) | |
tree | 33dd49d51540592ea9921b98760e7f833c9ae770 /drivers/usb/host | |
parent | 4ac53087d6d48e46e1cf4d0ca9ed9accdf9c928a (diff) | |
download | op-kernel-dev-8a853759c262fd52ff0f5e89f89c65928077fe4a.zip op-kernel-dev-8a853759c262fd52ff0f5e89f89c65928077fe4a.tar.gz |
usb: xhci: Allow usb_add/remove_hcd() to be called repeatedly
Don't set xhci->shared_hcd to NULL in xhci_stop() as we have
still not de-allocated it. It was resulting in a NULL pointer
de-reference if usb_add/remove_hcd() is called repeatedly.
We want repeated add/remove to work for the OTG use case.
Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb/host')
-rw-r--r-- | drivers/usb/host/xhci.c | 6 |
1 files changed, 0 insertions, 6 deletions
diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c index 01118f7..8a7e319 100644 --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c @@ -660,12 +660,6 @@ static void xhci_only_stop_hcd(struct usb_hcd *hcd) spin_lock_irq(&xhci->lock); xhci_halt(xhci); - - /* The shared_hcd is going to be deallocated shortly (the USB core only - * calls this function when allocation fails in usb_add_hcd(), or - * usb_remove_hcd() is called). So we need to unset xHCI's pointer. - */ - xhci->shared_hcd = NULL; spin_unlock_irq(&xhci->lock); } |