diff options
author | Mike Snitzer <snitzer@redhat.com> | 2014-10-04 12:55:32 -0400 |
---|---|---|
committer | Jens Axboe <axboe@fb.com> | 2014-10-04 12:55:32 -0400 |
commit | b277da0a8a594308e17881f4926879bd5fca2a2d (patch) | |
tree | 1af7df6ade218a4b246dd43a0771701a672c6cb8 /drivers/s390 | |
parent | 7b7b7f7e024460cb7d77f8f96b6eb1a8803f94d9 (diff) |
block: disable entropy contributions for nonrot devices
Clear QUEUE_FLAG_ADD_RANDOM in all block drivers that set
QUEUE_FLAG_NONROT.
Historically, all block devices have automatically made entropy
contributions. But as previously stated in commit e2e1a148 ("block: add
sysfs knob for turning off disk entropy contributions"):
- On SSD disks, the completion times aren't as random as they
are for rotational drives. So it's questionable whether they
should contribute to the random pool in the first place.
- Calling add_disk_randomness() has a lot of overhead.
There are more reliable sources for randomness than non-rotational block
devices. From a security perspective it is better to err on the side of
caution than to allow entropy contributions from unreliable "random"
sources.
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
Diffstat (limited to 'drivers/s390')
-rw-r--r-- | drivers/s390/block/scm_blk.c | 1 | ||||
-rw-r--r-- | drivers/s390/block/xpram.c | 1 |
2 files changed, 2 insertions, 0 deletions
diff --git a/drivers/s390/block/scm_blk.c b/drivers/s390/block/scm_blk.c index 76bed1743db1..56046ab39629 100644 --- a/drivers/s390/block/scm_blk.c +++ b/drivers/s390/block/scm_blk.c | |||
@@ -386,6 +386,7 @@ int scm_blk_dev_setup(struct scm_blk_dev *bdev, struct scm_device *scmdev) | |||
386 | blk_queue_max_hw_sectors(rq, nr_max_blk << 3); /* 8 * 512 = blk_size */ | 386 | blk_queue_max_hw_sectors(rq, nr_max_blk << 3); /* 8 * 512 = blk_size */ |
387 | blk_queue_max_segments(rq, nr_max_blk); | 387 | blk_queue_max_segments(rq, nr_max_blk); |
388 | queue_flag_set_unlocked(QUEUE_FLAG_NONROT, rq); | 388 | queue_flag_set_unlocked(QUEUE_FLAG_NONROT, rq); |
389 | queue_flag_clear_unlocked(QUEUE_FLAG_ADD_RANDOM, rq); | ||
389 | scm_blk_dev_cluster_setup(bdev); | 390 | scm_blk_dev_cluster_setup(bdev); |
390 | 391 | ||
391 | bdev->gendisk = alloc_disk(SCM_NR_PARTS); | 392 | bdev->gendisk = alloc_disk(SCM_NR_PARTS); |
diff --git a/drivers/s390/block/xpram.c b/drivers/s390/block/xpram.c index 6969d39f1e2e..9e0de9c9a6fc 100644 --- a/drivers/s390/block/xpram.c +++ b/drivers/s390/block/xpram.c | |||
@@ -346,6 +346,7 @@ static int __init xpram_setup_blkdev(void) | |||
346 | goto out; | 346 | goto out; |
347 | } | 347 | } |
348 | queue_flag_set_unlocked(QUEUE_FLAG_NONROT, xpram_queues[i]); | 348 | queue_flag_set_unlocked(QUEUE_FLAG_NONROT, xpram_queues[i]); |
349 | queue_flag_clear_unlocked(QUEUE_FLAG_ADD_RANDOM, xpram_queues[i]); | ||
349 | blk_queue_make_request(xpram_queues[i], xpram_make_request); | 350 | blk_queue_make_request(xpram_queues[i], xpram_make_request); |
350 | blk_queue_logical_block_size(xpram_queues[i], 4096); | 351 | blk_queue_logical_block_size(xpram_queues[i], 4096); |
351 | } | 352 | } |