aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2009-07-17 21:47:45 -0600
committerRusty Russell <rusty@rustcorp.com.au>2009-07-17 21:47:46 +0930
commit4eff3cae9c9809720c636e64bc72f212258e0bd5 (patch)
tree2a6a33f09a59ec8bdc7f2422b36c72eaa85af055
parent7a5049205f7265620c48781814155f2763e70abb (diff)
downloadkernel_goldelico_gta04-4eff3cae9c9809720c636e64bc72f212258e0bd5.zip
kernel_goldelico_gta04-4eff3cae9c9809720c636e64bc72f212258e0bd5.tar.gz
kernel_goldelico_gta04-4eff3cae9c9809720c636e64bc72f212258e0bd5.tar.bz2
virtio_blk: don't bounce highmem requests
By default a block driver bounces highmem requests, but virtio-blk is perfectly fine with any request that fit into it's 64 bit addressing scheme, mapped in the kernel virtual space or not. Besides improving performance on highmem systems this also makes the reproducible oops in __bounce_end_io go away (but hiding the real cause). Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
-rw-r--r--drivers/block/virtio_blk.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/block/virtio_blk.c b/drivers/block/virtio_blk.c
index 43db3ea..4c47859 100644
--- a/drivers/block/virtio_blk.c
+++ b/drivers/block/virtio_blk.c
@@ -360,6 +360,9 @@ static int __devinit virtblk_probe(struct virtio_device *vdev)
blk_queue_max_phys_segments(vblk->disk->queue, vblk->sg_elems-2);
blk_queue_max_hw_segments(vblk->disk->queue, vblk->sg_elems-2);
+ /* No need to bounce any requests */
+ blk_queue_bounce_limit(vblk->disk->queue, BLK_BOUNCE_ANY);
+
/* No real sector limit. */
blk_queue_max_sectors(vblk->disk->queue, -1U);