diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
index a0b22be1509d640bf85961ea0580819f2b4ee233..78bd0d671d9a14a7d5ef5e36f6fb2c6e36af9e7c 100644
--- a/drivers/usb/core/hub.c
+++ b/drivers/usb/core/hub.c
@@ -671,8 +671,8 @@ static void hub_irq(struct urb *urb)
 	if (hub->quiescing)
 		return;
 
-	if ((status = usb_submit_urb(hub->urb, GFP_ATOMIC)) != 0
-			&& status != -ENODEV && status != -EPERM)
+	status = usb_submit_urb(hub->urb, GFP_ATOMIC);
+	if (status != 0 && status != -ENODEV && status != -EPERM)
 		dev_err(hub->intfdev, "resubmit --> %d\n", status);
 }