|
@@ -1705,7 +1705,8 @@ static void nvme_set_queue_limits(struct nvme_ctrl *ctrl,
|
|
|
blk_queue_max_hw_sectors(q, ctrl->max_hw_sectors);
|
|
|
blk_queue_max_segments(q, min_t(u32, max_segments, USHRT_MAX));
|
|
|
}
|
|
|
- if (ctrl->quirks & NVME_QUIRK_STRIPE_SIZE)
|
|
|
+ if ((ctrl->quirks & NVME_QUIRK_STRIPE_SIZE) &&
|
|
|
+ is_power_of_2(ctrl->max_hw_sectors))
|
|
|
blk_queue_chunk_sectors(q, ctrl->max_hw_sectors);
|
|
|
blk_queue_virt_boundary(q, ctrl->page_size - 1);
|
|
|
if (ctrl->vwc & NVME_CTRL_VWC_PRESENT)
|