| .. | .. |
|---|
| 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) |
|---|