summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2009-09-11 18:49:19 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2009-09-24 08:27:28 -0700
commit98d53d73e1a28f0f55de4141ef91799aba0507b6 (patch)
tree93767bb4923fc479ffbcf2e40f196bcc08eacdc7
parent330c9c3402b93246476e685c41da974663c152cc (diff)
downloadlwn-98d53d73e1a28f0f55de4141ef91799aba0507b6.tar.gz
lwn-98d53d73e1a28f0f55de4141ef91799aba0507b6.zip
virtio_blk: don't bounce highmem requests
commit 4eff3cae9c9809720c636e64bc72f212258e0bd5 upstream 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> Cc: Chuck Ebbert <cebbert@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-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 5d34764c8a87..69c6dbdd2511 100644
--- a/drivers/block/virtio_blk.c
+++ b/drivers/block/virtio_blk.c
@@ -308,6 +308,9 @@ static int virtblk_probe(struct virtio_device *vdev)
else
blk_queue_max_segment_size(vblk->disk->queue, -1U);
+ /* No need to bounce any requests */
+ blk_queue_bounce_limit(vblk->disk->queue, BLK_BOUNCE_ANY);
+
/* Host can optionally specify the block size of the device */
err = virtio_config_val(vdev, VIRTIO_BLK_F_BLK_SIZE,
offsetof(struct virtio_blk_config, blk_size),