diff options
Diffstat (limited to 'block/blk-settings.c')
-rw-r--r-- | block/blk-settings.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/block/blk-settings.c b/block/blk-settings.c index a234f4bf1d6f..315b88c8cbbb 100644 --- a/block/blk-settings.c +++ b/block/blk-settings.c | |||
@@ -111,6 +111,7 @@ EXPORT_SYMBOL_GPL(blk_queue_lld_busy); | |||
111 | void blk_set_default_limits(struct queue_limits *lim) | 111 | void blk_set_default_limits(struct queue_limits *lim) |
112 | { | 112 | { |
113 | lim->max_segments = BLK_MAX_SEGMENTS; | 113 | lim->max_segments = BLK_MAX_SEGMENTS; |
114 | lim->max_integrity_segments = 0; | ||
114 | lim->seg_boundary_mask = BLK_SEG_BOUNDARY_MASK; | 115 | lim->seg_boundary_mask = BLK_SEG_BOUNDARY_MASK; |
115 | lim->max_segment_size = BLK_MAX_SEGMENT_SIZE; | 116 | lim->max_segment_size = BLK_MAX_SEGMENT_SIZE; |
116 | lim->max_sectors = BLK_DEF_MAX_SECTORS; | 117 | lim->max_sectors = BLK_DEF_MAX_SECTORS; |
@@ -213,7 +214,7 @@ void blk_queue_bounce_limit(struct request_queue *q, u64 dma_mask) | |||
213 | */ | 214 | */ |
214 | if (b_pfn < (min_t(u64, 0xffffffffUL, BLK_BOUNCE_HIGH) >> PAGE_SHIFT)) | 215 | if (b_pfn < (min_t(u64, 0xffffffffUL, BLK_BOUNCE_HIGH) >> PAGE_SHIFT)) |
215 | dma = 1; | 216 | dma = 1; |
216 | q->limits.bounce_pfn = max_low_pfn; | 217 | q->limits.bounce_pfn = max(max_low_pfn, b_pfn); |
217 | #else | 218 | #else |
218 | if (b_pfn < blk_max_low_pfn) | 219 | if (b_pfn < blk_max_low_pfn) |
219 | dma = 1; | 220 | dma = 1; |
@@ -343,7 +344,7 @@ EXPORT_SYMBOL(blk_queue_logical_block_size); | |||
343 | * hardware can operate on without reverting to read-modify-write | 344 | * hardware can operate on without reverting to read-modify-write |
344 | * operations. | 345 | * operations. |
345 | */ | 346 | */ |
346 | void blk_queue_physical_block_size(struct request_queue *q, unsigned short size) | 347 | void blk_queue_physical_block_size(struct request_queue *q, unsigned int size) |
347 | { | 348 | { |
348 | q->limits.physical_block_size = size; | 349 | q->limits.physical_block_size = size; |
349 | 350 | ||
@@ -455,11 +456,6 @@ void blk_queue_io_opt(struct request_queue *q, unsigned int opt) | |||
455 | } | 456 | } |
456 | EXPORT_SYMBOL(blk_queue_io_opt); | 457 | EXPORT_SYMBOL(blk_queue_io_opt); |
457 | 458 | ||
458 | /* | ||
459 | * Returns the minimum that is _not_ zero, unless both are zero. | ||
460 | */ | ||
461 | #define min_not_zero(l, r) (l == 0) ? r : ((r == 0) ? l : min(l, r)) | ||
462 | |||
463 | /** | 459 | /** |
464 | * blk_queue_stack_limits - inherit underlying queue limits for stacked drivers | 460 | * blk_queue_stack_limits - inherit underlying queue limits for stacked drivers |
465 | * @t: the stacking driver (top) | 461 | * @t: the stacking driver (top) |
@@ -514,6 +510,8 @@ int blk_stack_limits(struct queue_limits *t, struct queue_limits *b, | |||
514 | b->seg_boundary_mask); | 510 | b->seg_boundary_mask); |
515 | 511 | ||
516 | t->max_segments = min_not_zero(t->max_segments, b->max_segments); | 512 | t->max_segments = min_not_zero(t->max_segments, b->max_segments); |
513 | t->max_integrity_segments = min_not_zero(t->max_integrity_segments, | ||
514 | b->max_integrity_segments); | ||
517 | 515 | ||
518 | t->max_segment_size = min_not_zero(t->max_segment_size, | 516 | t->max_segment_size = min_not_zero(t->max_segment_size, |
519 | b->max_segment_size); | 517 | b->max_segment_size); |