diff --git a/drivers/usb/core/usb.c b/drivers/usb/core/usb.c
index a64974397e8e0023576fd387f667053e254c6296..230839ac5c09cbe01f1e0e170647c36499c84f96 100644
--- a/drivers/usb/core/usb.c
+++ b/drivers/usb/core/usb.c
@@ -492,7 +492,7 @@ static int __find_interface(struct device * dev, void * data)
  */
 struct usb_interface *usb_find_interface(struct usb_driver *drv, int minor)
 {
-	struct usb_interface *intf = (struct usb_interface *)minor;
+	struct usb_interface *intf = (struct usb_interface *)(long)minor;
 	int ret;
 
 	ret = driver_for_each_device(&drv->driver, NULL, &intf, __find_interface);