.. | .. |
---|
755 | 755 | poison_urbs(desc); |
---|
756 | 756 | spin_lock_irq(&desc->iuspin); |
---|
757 | 757 | desc->resp_count = 0; |
---|
| 758 | + clear_bit(WDM_RESPONDING, &desc->flags); |
---|
758 | 759 | spin_unlock_irq(&desc->iuspin); |
---|
759 | 760 | desc->manage_power(desc->intf, 0); |
---|
760 | 761 | unpoison_urbs(desc); |
---|
.. | .. |
---|
794 | 795 | .release = wdm_release, |
---|
795 | 796 | .poll = wdm_poll, |
---|
796 | 797 | .unlocked_ioctl = wdm_ioctl, |
---|
797 | | - .compat_ioctl = wdm_ioctl, |
---|
| 798 | + .compat_ioctl = compat_ptr_ioctl, |
---|
798 | 799 | .llseek = noop_llseek, |
---|
799 | 800 | }; |
---|
800 | 801 | |
---|
.. | .. |
---|
1000 | 1001 | * @intf: usb interface the subdriver will associate with |
---|
1001 | 1002 | * @ep: interrupt endpoint to monitor for notifications |
---|
1002 | 1003 | * @bufsize: maximum message size to support for read/write |
---|
1003 | | - * |
---|
| 1004 | + * @manage_power: call-back invoked during open and release to |
---|
| 1005 | + * manage the device's power |
---|
1004 | 1006 | * Create WDM usb class character device and associate it with intf |
---|
1005 | 1007 | * without binding, allowing another driver to manage the interface. |
---|
1006 | 1008 | * |
---|
.. | .. |
---|
1019 | 1021 | int bufsize, |
---|
1020 | 1022 | int (*manage_power)(struct usb_interface *, int)) |
---|
1021 | 1023 | { |
---|
1022 | | - int rv = -EINVAL; |
---|
| 1024 | + int rv; |
---|
1023 | 1025 | |
---|
1024 | 1026 | rv = wdm_create(intf, ep, bufsize, manage_power); |
---|
1025 | 1027 | if (rv < 0) |
---|