Merge tag 'compat-ioctl-5.5' of git://git.kernel.org:/pub/scm/linux/kernel/git/arnd...
[linux-2.6-block.git] / drivers / usb / core / devio.c
index 646ffa13c1fccfff5fccd2b485341fd60c05b5c8..12bb5722b420eb506efa39b81f9230977c8e5c58 100644 (file)
@@ -764,8 +764,15 @@ static int claimintf(struct usb_dev_state *ps, unsigned int ifnum)
        intf = usb_ifnum_to_if(dev, ifnum);
        if (!intf)
                err = -ENOENT;
-       else
+       else {
+               unsigned int old_suppress;
+
+               /* suppress uevents while claiming interface */
+               old_suppress = dev_get_uevent_suppress(&intf->dev);
+               dev_set_uevent_suppress(&intf->dev, 1);
                err = usb_driver_claim_interface(&usbfs_driver, intf, ps);
+               dev_set_uevent_suppress(&intf->dev, old_suppress);
+       }
        if (err == 0)
                set_bit(ifnum, &ps->ifclaimed);
        return err;
@@ -785,7 +792,13 @@ static int releaseintf(struct usb_dev_state *ps, unsigned int ifnum)
        if (!intf)
                err = -ENOENT;
        else if (test_and_clear_bit(ifnum, &ps->ifclaimed)) {
+               unsigned int old_suppress;
+
+               /* suppress uevents while releasing interface */
+               old_suppress = dev_get_uevent_suppress(&intf->dev);
+               dev_set_uevent_suppress(&intf->dev, 1);
                usb_driver_release_interface(&usbfs_driver, intf);
+               dev_set_uevent_suppress(&intf->dev, old_suppress);
                err = 0;
        }
        return err;
@@ -1550,10 +1563,10 @@ static int proc_do_submiturb(struct usb_dev_state *ps, struct usbdevfs_urb *uurb
                uurb->buffer_length = le16_to_cpu(dr->wLength);
                uurb->buffer += 8;
                if ((dr->bRequestType & USB_DIR_IN) && uurb->buffer_length) {
-                       is_in = 1;
+                       is_in = true;
                        uurb->endpoint |= USB_DIR_IN;
                } else {
-                       is_in = 0;
+                       is_in = false;
                        uurb->endpoint &= ~USB_DIR_IN;
                }
                if (is_in)