diff options
author | Geliang Tang <geliangtang@gmail.com> | 2017-05-06 18:42:17 +0300 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2017-05-14 12:38:05 +0300 |
commit | f7929436a286ca31f0365a7013de968017f76818 (patch) | |
tree | 733b28a7545d4eeca008057b5ed2fb2b1faeb34f /drivers/spi/spidev.c | |
parent | 76bf569466c68fb3705a3b38cdee026df9861101 (diff) | |
download | linux-f7929436a286ca31f0365a7013de968017f76818.tar.xz |
spi: spidev: use memdup_user
Use memdup_user() helper instead of open-coding to simplify the code.
Signed-off-by: Geliang Tang <geliangtang@gmail.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'drivers/spi/spidev.c')
-rw-r--r-- | drivers/spi/spidev.c | 10 |
1 files changed, 1 insertions, 9 deletions
diff --git a/drivers/spi/spidev.c b/drivers/spi/spidev.c index 3b570018705c..d4d2d8d9f3e7 100644 --- a/drivers/spi/spidev.c +++ b/drivers/spi/spidev.c @@ -324,7 +324,6 @@ static struct spi_ioc_transfer * spidev_get_ioc_message(unsigned int cmd, struct spi_ioc_transfer __user *u_ioc, unsigned *n_ioc) { - struct spi_ioc_transfer *ioc; u32 tmp; /* Check type, command number and direction */ @@ -341,14 +340,7 @@ spidev_get_ioc_message(unsigned int cmd, struct spi_ioc_transfer __user *u_ioc, return NULL; /* copy into scratch area */ - ioc = kmalloc(tmp, GFP_KERNEL); - if (!ioc) - return ERR_PTR(-ENOMEM); - if (__copy_from_user(ioc, u_ioc, tmp)) { - kfree(ioc); - return ERR_PTR(-EFAULT); - } - return ioc; + return memdup_user(u_ioc, tmp); } static long |