diff options
Diffstat (limited to 'drivers/usb/host/xhci.c')
-rw-r--r-- | drivers/usb/host/xhci.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c index 7da3b139c8dd..1657041c19cf 100644 --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c | |||
@@ -2990,6 +2990,14 @@ int xhci_update_hub_device(struct usb_hcd *hcd, struct usb_device *hdev, | |||
2990 | } | 2990 | } |
2991 | 2991 | ||
2992 | spin_lock_irqsave(&xhci->lock, flags); | 2992 | spin_lock_irqsave(&xhci->lock, flags); |
2993 | if (hdev->speed == USB_SPEED_HIGH && | ||
2994 | xhci_alloc_tt_info(xhci, vdev, hdev, tt, GFP_ATOMIC)) { | ||
2995 | xhci_dbg(xhci, "Could not allocate xHCI TT structure.\n"); | ||
2996 | xhci_free_command(xhci, config_cmd); | ||
2997 | spin_unlock_irqrestore(&xhci->lock, flags); | ||
2998 | return -ENOMEM; | ||
2999 | } | ||
3000 | |||
2993 | xhci_slot_copy(xhci, config_cmd->in_ctx, vdev->out_ctx); | 3001 | xhci_slot_copy(xhci, config_cmd->in_ctx, vdev->out_ctx); |
2994 | ctrl_ctx = xhci_get_input_control_ctx(xhci, config_cmd->in_ctx); | 3002 | ctrl_ctx = xhci_get_input_control_ctx(xhci, config_cmd->in_ctx); |
2995 | ctrl_ctx->add_flags |= cpu_to_le32(SLOT_FLAG); | 3003 | ctrl_ctx->add_flags |= cpu_to_le32(SLOT_FLAG); |