diff mbox series

[1/1] v4l: ioctl: Use kmalloc to allocate a small chunk of memory

Message ID 20201220213012.16671-1-sakari.ailus@linux.intel.com (mailing list archive)
State New, archived
Headers show
Series [1/1] v4l: ioctl: Use kmalloc to allocate a small chunk of memory | expand

Commit Message

Sakari Ailus Dec. 20, 2020, 9:30 p.m. UTC
kvmalloc() was used to release the temporary memory buffer that was used
to contain both the IOCTL argument as well as a possible array argument
that could have been large. Now that the two are separated, the IOCTL
argument is known to be small in size. Use kmalloc to allocate it instead
of kvmalloc. Similarly for releasing it.

Suggested-by: Arnd Bergmann <arnd@kernel.org>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
 drivers/media/v4l2-core/v4l2-ioctl.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Laurent Pinchart Dec. 20, 2020, 9:47 p.m. UTC | #1
Hi Sajari,

Thank you for the patch.

On Sun, Dec 20, 2020 at 11:30:12PM +0200, Sakari Ailus wrote:
> kvmalloc() was used to release the temporary memory buffer that was used
> to contain both the IOCTL argument as well as a possible array argument
> that could have been large. Now that the two are separated, the IOCTL
> argument is known to be small in size. Use kmalloc to allocate it instead
> of kvmalloc. Similarly for releasing it.
> 
> Suggested-by: Arnd Bergmann <arnd@kernel.org>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

> ---
>  drivers/media/v4l2-core/v4l2-ioctl.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c b/drivers/media/v4l2-core/v4l2-ioctl.c
> index 9906b41004e9b..8d5d9c39c1622 100644
> --- a/drivers/media/v4l2-core/v4l2-ioctl.c
> +++ b/drivers/media/v4l2-core/v4l2-ioctl.c
> @@ -3300,7 +3300,7 @@ video_usercopy(struct file *file, unsigned int orig_cmd, unsigned long arg,
>  			parg = sbuf;
>  		} else {
>  			/* too big to allocate from stack */
> -			mbuf = kvmalloc(ioc_size, GFP_KERNEL);
> +			mbuf = kmalloc(ioc_size, GFP_KERNEL);
>  			if (NULL == mbuf)
>  				return -ENOMEM;
>  			parg = mbuf;
> @@ -3377,7 +3377,7 @@ video_usercopy(struct file *file, unsigned int orig_cmd, unsigned long arg,
>  		err = -EFAULT;
>  out:
>  	kvfree(array_buf);
> -	kvfree(mbuf);
> +	kfree(mbuf);
>  	return err;
>  }
>
diff mbox series

Patch

diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c b/drivers/media/v4l2-core/v4l2-ioctl.c
index 9906b41004e9b..8d5d9c39c1622 100644
--- a/drivers/media/v4l2-core/v4l2-ioctl.c
+++ b/drivers/media/v4l2-core/v4l2-ioctl.c
@@ -3300,7 +3300,7 @@  video_usercopy(struct file *file, unsigned int orig_cmd, unsigned long arg,
 			parg = sbuf;
 		} else {
 			/* too big to allocate from stack */
-			mbuf = kvmalloc(ioc_size, GFP_KERNEL);
+			mbuf = kmalloc(ioc_size, GFP_KERNEL);
 			if (NULL == mbuf)
 				return -ENOMEM;
 			parg = mbuf;
@@ -3377,7 +3377,7 @@  video_usercopy(struct file *file, unsigned int orig_cmd, unsigned long arg,
 		err = -EFAULT;
 out:
 	kvfree(array_buf);
-	kvfree(mbuf);
+	kfree(mbuf);
 	return err;
 }