diff options
| -rw-r--r-- | drivers/hid/usbhid/hiddev.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/hid/usbhid/hiddev.c b/drivers/hid/usbhid/hiddev.c index b1ec0e2aeb57..14599e256791 100644 --- a/drivers/hid/usbhid/hiddev.c +++ b/drivers/hid/usbhid/hiddev.c | |||
| @@ -34,6 +34,7 @@ | |||
| 34 | #include <linux/hid.h> | 34 | #include <linux/hid.h> |
| 35 | #include <linux/hiddev.h> | 35 | #include <linux/hiddev.h> |
| 36 | #include <linux/compat.h> | 36 | #include <linux/compat.h> |
| 37 | #include <linux/vmalloc.h> | ||
| 37 | #include "usbhid.h" | 38 | #include "usbhid.h" |
| 38 | 39 | ||
| 39 | #ifdef CONFIG_USB_DYNAMIC_MINORS | 40 | #ifdef CONFIG_USB_DYNAMIC_MINORS |
| @@ -250,13 +251,13 @@ static int hiddev_release(struct inode * inode, struct file * file) | |||
| 250 | } else { | 251 | } else { |
| 251 | mutex_unlock(&list->hiddev->existancelock); | 252 | mutex_unlock(&list->hiddev->existancelock); |
| 252 | kfree(list->hiddev); | 253 | kfree(list->hiddev); |
| 253 | kfree(list); | 254 | vfree(list); |
| 254 | return 0; | 255 | return 0; |
| 255 | } | 256 | } |
| 256 | } | 257 | } |
| 257 | 258 | ||
| 258 | mutex_unlock(&list->hiddev->existancelock); | 259 | mutex_unlock(&list->hiddev->existancelock); |
| 259 | kfree(list); | 260 | vfree(list); |
| 260 | 261 | ||
| 261 | return 0; | 262 | return 0; |
| 262 | } | 263 | } |
| @@ -278,7 +279,7 @@ static int hiddev_open(struct inode *inode, struct file *file) | |||
| 278 | hid = usb_get_intfdata(intf); | 279 | hid = usb_get_intfdata(intf); |
| 279 | hiddev = hid->hiddev; | 280 | hiddev = hid->hiddev; |
| 280 | 281 | ||
| 281 | if (!(list = kzalloc(sizeof(struct hiddev_list), GFP_KERNEL))) | 282 | if (!(list = vzalloc(sizeof(struct hiddev_list)))) |
| 282 | return -ENOMEM; | 283 | return -ENOMEM; |
| 283 | mutex_init(&list->thread_lock); | 284 | mutex_init(&list->thread_lock); |
| 284 | list->hiddev = hiddev; | 285 | list->hiddev = hiddev; |
| @@ -322,7 +323,7 @@ bail_unlock: | |||
| 322 | mutex_unlock(&hiddev->existancelock); | 323 | mutex_unlock(&hiddev->existancelock); |
| 323 | bail: | 324 | bail: |
| 324 | file->private_data = NULL; | 325 | file->private_data = NULL; |
| 325 | kfree(list); | 326 | vfree(list); |
| 326 | return res; | 327 | return res; |
| 327 | } | 328 | } |
| 328 | 329 | ||
