Index: uspace/drv/bus/usb/xhci/bus.c
===================================================================
--- uspace/drv/bus/usb/xhci/bus.c	(revision e7e99bfcfc1740e8ecfa494c0c43a6fd23ba47c0)
+++ uspace/drv/bus/usb/xhci/bus.c	(revision ba2e17fdf4e3766d370e423b0828231f44ee3975)
@@ -163,6 +163,11 @@
 	}
 
-	/* Assign an address to the device */
-	if ((err = address_device(bus, xhci_dev))) {
+	int retries = 3;
+	do {
+		/* Assign an address to the device */
+		err = address_device(bus, xhci_dev);
+	} while (err == ESTALL && --retries > 0);
+
+	if (err) {
 		usb_log_error("Failed to setup address of the new device: %s", str_error(err));
 		return err;
