summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2017-06-19 09:26:25 +0200
committerJens Axboe <axboe@kernel.dk>2017-06-27 12:13:45 -0600
commit0bf6595ec81d896451f0066c95f8cd34c74313dc (patch)
tree599046a16eb3b9e045b02f8128dce2c5b917224b
parent46685d1a9521054fa3a7a352f6bb54166cd5b2c5 (diff)
downloadlinux-0bf6595ec81d896451f0066c95f8cd34c74313dc.tar.bz2
block: don't set bounce limit in blk_init_allocated_queue
And just move it into scsi_transport_sas which needs it due to low-level drivers directly derferencing bio_data, and into blk_init_queue_node, which will need a further push into the callers. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Jens Axboe <axboe@kernel.dk>
-rw-r--r--block/blk-core.c10
-rw-r--r--drivers/scsi/scsi_transport_sas.c5
2 files changed, 10 insertions, 5 deletions
diff --git a/block/blk-core.c b/block/blk-core.c
index 8699c423fa6e..33b27541dc17 100644
--- a/block/blk-core.c
+++ b/block/blk-core.c
@@ -960,6 +960,11 @@ blk_init_queue_node(request_fn_proc *rfn, spinlock_t *lock, int node_id)
return NULL;
}
+ /*
+ * by default assume old behaviour and bounce for any highmem page
+ */
+ blk_queue_bounce_limit(q, BLK_BOUNCE_HIGH);
+
return q;
}
EXPORT_SYMBOL(blk_init_queue_node);
@@ -989,11 +994,6 @@ int blk_init_allocated_queue(struct request_queue *q)
*/
blk_queue_make_request(q, blk_queue_bio);
- /*
- * by default assume old behaviour and bounce for any highmem page
- */
- blk_queue_bounce_limit(q, BLK_BOUNCE_HIGH);
-
q->sg_reserved_size = INT_MAX;
/* Protect q->elevator from elevator_change */
diff --git a/drivers/scsi/scsi_transport_sas.c b/drivers/scsi/scsi_transport_sas.c
index a190c052cd93..5006a656e16a 100644
--- a/drivers/scsi/scsi_transport_sas.c
+++ b/drivers/scsi/scsi_transport_sas.c
@@ -251,6 +251,11 @@ static int sas_bsg_initialize(struct Scsi_Host *shost, struct sas_rphy *rphy)
if (error)
goto out_cleanup_queue;
+ /*
+ * by default assume old behaviour and bounce for any highmem page
+ */
+ blk_queue_bounce_limit(q, BLK_BOUNCE_HIGH);
+
error = bsg_register_queue(q, dev, name, release);
if (error)
goto out_cleanup_queue;