diff --git a/drivers/usb/core/driver.c b/drivers/usb/core/driver.c
index 5d01558cef666233b47f29d569595a1f42dda8b2..9cd218135087e6603adee9048f950f34d248be47 100644
--- a/drivers/usb/core/driver.c
+++ b/drivers/usb/core/driver.c
@@ -302,9 +302,9 @@ static int usb_probe_interface(struct device *dev)
 		return error;
 	}
 
-	id = usb_match_id(intf, driver->id_table);
+	id = usb_match_dynamic_id(intf, driver);
 	if (!id)
-		id = usb_match_dynamic_id(intf, driver);
+		id = usb_match_id(intf, driver->id_table);
 	if (!id)
 		return error;