diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index 6362e3606aa5..4d4af0e94059 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h @@ -1088,8 +1088,8 @@ static inline unsigned int blk_max_size_offset(struct request_queue *q, if (!q->limits.chunk_sectors) return q->limits.max_sectors; - return q->limits.chunk_sectors - - (offset & (q->limits.chunk_sectors - 1)); + return min(q->limits.max_sectors, (unsigned int)(q->limits.chunk_sectors - + (offset & (q->limits.chunk_sectors - 1)))); } static inline unsigned int blk_rq_get_max_sectors(struct request *rq,