diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index d94f4d0145a46..048a25b3791eb 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h @@ -919,8 +919,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)