aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/blkdev.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/blkdev.h')
-rw-r--r--include/linux/blkdev.h5
1 files changed, 2 insertions, 3 deletions
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index 038b40f84c7a..554639249fd6 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -1279,10 +1279,9 @@ static inline int queue_alignment_offset(struct request_queue *q)
1279static inline int queue_limit_alignment_offset(struct queue_limits *lim, sector_t sector) 1279static inline int queue_limit_alignment_offset(struct queue_limits *lim, sector_t sector)
1280{ 1280{
1281 unsigned int granularity = max(lim->physical_block_size, lim->io_min); 1281 unsigned int granularity = max(lim->physical_block_size, lim->io_min);
1282 unsigned int alignment = (sector << 9) & (granularity - 1); 1282 unsigned int alignment = sector_div(sector, granularity >> 9) << 9;
1283 1283
1284 return (granularity + lim->alignment_offset - alignment) 1284 return (granularity + lim->alignment_offset - alignment) % granularity;
1285 & (granularity - 1);
1286} 1285}
1287 1286
1288static inline int bdev_alignment_offset(struct block_device *bdev) 1287static inline int bdev_alignment_offset(struct block_device *bdev)