summaryrefslogtreecommitdiff
path: root/drivers/mmc
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2018-05-18 20:18:45 +0300
committerUlf Hansson <ulf.hansson@linaro.org>2018-05-21 16:49:20 +0300
commita4034173822e6a9092245f546739946489f8f30d (patch)
treef3732c0975da74ac35081d796876c4abbb825929 /drivers/mmc
parentb189e7589f6d3411e85c6b7ae6eef158f08f388f (diff)
downloadlinux-a4034173822e6a9092245f546739946489f8f30d.tar.xz
mmc: ushc: handle highmem pages
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>
Diffstat (limited to 'drivers/mmc')
-rw-r--r--drivers/mmc/host/ushc.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/mmc/host/ushc.c b/drivers/mmc/host/ushc.c
index 81dac17064d7..b2b379b10dfa 100644
--- a/drivers/mmc/host/ushc.c
+++ b/drivers/mmc/host/ushc.c
@@ -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;