Browse Source

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>
Christoph Hellwig 7 years ago
parent
commit
a403417382
1 changed files with 3 additions and 1 deletions
  1. 3 1
      drivers/mmc/host/ushc.c

+ 3 - 1
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);
 			pipe = usb_sndbulkpipe(ushc->usb_dev, 2);
 
 
 		usb_fill_bulk_urb(ushc->data_urb, ushc->usb_dev, pipe,
 		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);
 				  data_callback, ushc);
+		ushc->data_urb->num_sgs = 1;
+		ushc->data_urb->sg = data->sg;
 		ret = usb_submit_urb(ushc->data_urb, GFP_ATOMIC);
 		ret = usb_submit_urb(ushc->data_urb, GFP_ATOMIC);
 		if (ret < 0)
 		if (ret < 0)
 			goto out;
 			goto out;