diff options
Diffstat (limited to 'drivers/hid/usbhid/hiddev.c')
| -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 b1ec0e2aeb5..14599e25679 100644 --- a/drivers/hid/usbhid/hiddev.c +++ b/drivers/hid/usbhid/hiddev.c @@ -34,6 +34,7 @@  #include <linux/hid.h>  #include <linux/hiddev.h>  #include <linux/compat.h> +#include <linux/vmalloc.h>  #include "usbhid.h"  #ifdef CONFIG_USB_DYNAMIC_MINORS @@ -250,13 +251,13 @@ static int hiddev_release(struct inode * inode, struct file * file)  		} else {  			mutex_unlock(&list->hiddev->existancelock);  			kfree(list->hiddev); -			kfree(list); +			vfree(list);  			return 0;  		}  	}  	mutex_unlock(&list->hiddev->existancelock); -	kfree(list); +	vfree(list);  	return 0;  } @@ -278,7 +279,7 @@ static int hiddev_open(struct inode *inode, struct file *file)  	hid = usb_get_intfdata(intf);  	hiddev = hid->hiddev; -	if (!(list = kzalloc(sizeof(struct hiddev_list), GFP_KERNEL))) +	if (!(list = vzalloc(sizeof(struct hiddev_list))))  		return -ENOMEM;  	mutex_init(&list->thread_lock);  	list->hiddev = hiddev; @@ -322,7 +323,7 @@ bail_unlock:  	mutex_unlock(&hiddev->existancelock);  bail:  	file->private_data = NULL; -	kfree(list); +	vfree(list);  	return res;  }  |