diff options
Diffstat (limited to 'drivers/usb/core')
-rw-r--r-- | drivers/usb/core/devio.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/usb/core/devio.c b/drivers/usb/core/devio.c index 1f4f6d02fe2..85ec65ada12 100644 --- a/drivers/usb/core/devio.c +++ b/drivers/usb/core/devio.c | |||
@@ -1373,9 +1373,10 @@ static int proc_ioctl(struct dev_state *ps, struct usbdevfs_ioctl *ctl) | |||
1373 | 1373 | ||
1374 | /* let kernel drivers try to (re)bind to the interface */ | 1374 | /* let kernel drivers try to (re)bind to the interface */ |
1375 | case USBDEVFS_CONNECT: | 1375 | case USBDEVFS_CONNECT: |
1376 | usb_unlock_device(ps->dev); | 1376 | if (!intf->dev.driver) |
1377 | retval = bus_rescan_devices(intf->dev.bus); | 1377 | retval = device_attach(&intf->dev); |
1378 | usb_lock_device(ps->dev); | 1378 | else |
1379 | retval = -EBUSY; | ||
1379 | break; | 1380 | break; |
1380 | 1381 | ||
1381 | /* talk directly to the interface's driver */ | 1382 | /* talk directly to the interface's driver */ |