diff options
Diffstat (limited to 'drivers/usb/input/usbkbd.c')
| -rw-r--r-- | drivers/usb/input/usbkbd.c | 11 |
1 files changed, 2 insertions, 9 deletions
diff --git a/drivers/usb/input/usbkbd.c b/drivers/usb/input/usbkbd.c index 255b47a517b1..f35db1974c42 100644 --- a/drivers/usb/input/usbkbd.c +++ b/drivers/usb/input/usbkbd.c | |||
| @@ -72,7 +72,6 @@ struct usb_kbd { | |||
| 72 | unsigned char newleds; | 72 | unsigned char newleds; |
| 73 | char name[128]; | 73 | char name[128]; |
| 74 | char phys[64]; | 74 | char phys[64]; |
| 75 | int open; | ||
| 76 | 75 | ||
| 77 | unsigned char *new; | 76 | unsigned char *new; |
| 78 | struct usb_ctrlrequest *cr; | 77 | struct usb_ctrlrequest *cr; |
| @@ -180,14 +179,9 @@ static int usb_kbd_open(struct input_dev *dev) | |||
| 180 | { | 179 | { |
| 181 | struct usb_kbd *kbd = dev->private; | 180 | struct usb_kbd *kbd = dev->private; |
| 182 | 181 | ||
| 183 | if (kbd->open++) | ||
| 184 | return 0; | ||
| 185 | |||
| 186 | kbd->irq->dev = kbd->usbdev; | 182 | kbd->irq->dev = kbd->usbdev; |
| 187 | if (usb_submit_urb(kbd->irq, GFP_KERNEL)) { | 183 | if (usb_submit_urb(kbd->irq, GFP_KERNEL)) |
| 188 | kbd->open--; | ||
| 189 | return -EIO; | 184 | return -EIO; |
| 190 | } | ||
| 191 | 185 | ||
| 192 | return 0; | 186 | return 0; |
| 193 | } | 187 | } |
| @@ -196,8 +190,7 @@ static void usb_kbd_close(struct input_dev *dev) | |||
| 196 | { | 190 | { |
| 197 | struct usb_kbd *kbd = dev->private; | 191 | struct usb_kbd *kbd = dev->private; |
| 198 | 192 | ||
| 199 | if (!--kbd->open) | 193 | usb_kill_urb(kbd->irq); |
| 200 | usb_kill_urb(kbd->irq); | ||
| 201 | } | 194 | } |
| 202 | 195 | ||
| 203 | static int usb_kbd_alloc_mem(struct usb_device *dev, struct usb_kbd *kbd) | 196 | static int usb_kbd_alloc_mem(struct usb_device *dev, struct usb_kbd *kbd) |
