diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
index a96b35cf4fa728e573095abf9fb8f2a01a23640d..1798c5353102a65bb14f9072b65c23f151ceaf50 100644
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
@@ -4455,7 +4455,7 @@ static u16 xhci_calculate_lpm_timeout(struct usb_hcd *hcd,
 	if (!config)
 		return timeout;
 
-	for (i = 0; i < USB_MAXINTERFACES; i++) {
+	for (i = 0; i < config->desc.bNumInterfaces; i++) {
 		struct usb_driver *driver;
 		struct usb_interface *intf = config->interface[i];