]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - drivers/spi/spidev.c
Merge branch 'for-spi' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
[karo-tx-linux.git] / drivers / spi / spidev.c
index 221741f382606688a1fafa5d6ad3f7a163f6571e..cda10719d1d1b21b32866d2b79363faa461ab8e1 100644 (file)
@@ -99,7 +99,6 @@ MODULE_PARM_DESC(bufsiz, "data bytes in biggest supported SPI message");
 static ssize_t
 spidev_sync(struct spidev_data *spidev, struct spi_message *message)
 {
-       DECLARE_COMPLETION_ONSTACK(done);
        int status;
        struct spi_device *spi;
 
@@ -321,7 +320,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 */
@@ -338,14 +336,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