Merge branch 'for-4.5/drivers' of git://git.kernel.dk/linux-block
[deliverable/linux.git] / drivers / block / mtip32xx / mtip32xx.c
index 2641a98f2246c2e06a629f7e9e8eb4814076ff8c..9b180dbbd03cc822c776e636183614bf59a76d3d 100644 (file)
@@ -173,7 +173,7 @@ static struct mtip_cmd *mtip_get_int_command(struct driver_data *dd)
 {
        struct request *rq;
 
-       rq = blk_mq_alloc_request(dd->queue, 0, __GFP_RECLAIM, true);
+       rq = blk_mq_alloc_request(dd->queue, 0, BLK_MQ_REQ_RESERVED);
        return blk_mq_rq_to_pdu(rq);
 }
 
@@ -2029,13 +2029,10 @@ static int exec_drive_taskfile(struct driver_data *dd,
        }
 
        if (taskout) {
-               outbuf = kzalloc(taskout, GFP_KERNEL);
-               if (outbuf == NULL) {
-                       err = -ENOMEM;
-                       goto abort;
-               }
-               if (copy_from_user(outbuf, buf + outtotal, taskout)) {
-                       err = -EFAULT;
+               outbuf = memdup_user(buf + outtotal, taskout);
+               if (IS_ERR(outbuf)) {
+                       err = PTR_ERR(outbuf);
+                       outbuf = NULL;
                        goto abort;
                }
                outbuf_dma = pci_map_single(dd->pdev,
@@ -2050,14 +2047,10 @@ static int exec_drive_taskfile(struct driver_data *dd,
        }
 
        if (taskin) {
-               inbuf = kzalloc(taskin, GFP_KERNEL);
-               if (inbuf == NULL) {
-                       err = -ENOMEM;
-                       goto abort;
-               }
-
-               if (copy_from_user(inbuf, buf + intotal, taskin)) {
-                       err = -EFAULT;
+               inbuf = memdup_user(buf + intotal, taskin);
+               if (IS_ERR(inbuf)) {
+                       err = PTR_ERR(inbuf);
+                       inbuf = NULL;
                        goto abort;
                }
                inbuf_dma = pci_map_single(dd->pdev,
This page took 0.026153 seconds and 5 git commands to generate.