correct use of USBDEVFS_DISCONNECT


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1621 c046a42c-6fe2-441c-8c8c-71466251a162
diff --git a/usb-linux.c b/usb-linux.c
index cde94cd..216ac20 100644
--- a/usb-linux.c
+++ b/usb-linux.c
@@ -181,10 +181,15 @@
 
 #ifdef USBDEVFS_DISCONNECT
     /* earlier Linux 2.4 do not support that */
-    ret = ioctl(fd, USBDEVFS_DISCONNECT);
-    if (ret < 0 && errno != ENODATA) {
-        perror("USBDEVFS_DISCONNECT");
-        goto fail;
+    {
+        struct usbdevfs_ioctl ctrl;
+        ctrl.ioctl_code = USBDEVFS_DISCONNECT;
+        ctrl.ifno = 0;
+        ret = ioctl(fd, USBDEVFS_IOCTL, &ctrl);
+        if (ret < 0 && errno != ENODATA) {
+            perror("USBDEVFS_DISCONNECT");
+            goto fail;
+        }
     }
 #endif