diff --git a/block/blk-settings.c b/block/blk-settings.c index b3d64dc36017..6876791f3073 100644 --- a/block/blk-settings.c +++ b/block/blk-settings.c @@ -125,10 +125,11 @@ EXPORT_SYMBOL(blk_queue_bounce_limit); void blk_queue_max_hw_sectors(struct request_queue *q, unsigned int max_hw_sectors) { struct queue_limits *limits = &q->limits; + unsigned int min_max_hw_sectors = PAGE_SIZE >> SECTOR_SHIFT; unsigned int max_sectors; - if ((max_hw_sectors << 9) < PAGE_SIZE) { - max_hw_sectors = 1 << (PAGE_SHIFT - 9); + if (max_hw_sectors < min_max_hw_sectors) { + max_hw_sectors = min_max_hw_sectors; pr_info("set to minimum %u\n", max_hw_sectors); } @@ -278,8 +279,10 @@ EXPORT_SYMBOL_GPL(blk_queue_max_discard_segments); **/ void blk_queue_max_segment_size(struct request_queue *q, unsigned int max_size) { - if (max_size < PAGE_SIZE) { - max_size = PAGE_SIZE; + unsigned int min_max_segment_size = PAGE_SIZE; + + if (max_size < min_max_segment_size) { + max_size = min_max_segment_size; pr_info("set to minimum %u\n", max_size); }