mmc: ushc: handle highmem pages
authorChristoph Hellwig <hch@lst.de>
Fri, 18 May 2018 17:18:45 +0000 (19:18 +0200)
committerUlf Hansson <ulf.hansson@linaro.org>
Mon, 21 May 2018 13:49:20 +0000 (15:49 +0200)
Pass the scatterlist on to the USB subsystem instead of expecting a
kernel virtual address.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/host/ushc.c

index 81dac17064d75c1df707cc9383a18e0fc8ef30ed..b2b379b10dfabf9bb4f3d7171751671ce11d0ff7 100644 (file)
@@ -300,8 +300,10 @@ static void ushc_request(struct mmc_host *mmc, struct mmc_request *req)
                        pipe = usb_sndbulkpipe(ushc->usb_dev, 2);
 
                usb_fill_bulk_urb(ushc->data_urb, ushc->usb_dev, pipe,
-                                 sg_virt(data->sg), data->sg->length,
+                                 NULL, data->sg->length,
                                  data_callback, ushc);
+               ushc->data_urb->num_sgs = 1;
+               ushc->data_urb->sg = data->sg;
                ret = usb_submit_urb(ushc->data_urb, GFP_ATOMIC);
                if (ret < 0)
                        goto out;