diff --git a/drivers/md/dm-table.c b/drivers/md/dm-table.c
index a6f2dc66c3db12b09606218e1595e147b20c8a57..9b1e2f5ca63049dbb1dd2dad9e642382374fbbf5 100644
--- a/drivers/md/dm-table.c
+++ b/drivers/md/dm-table.c
@@ -508,7 +508,7 @@ int dm_get_device(struct dm_target *ti, const char *path, sector_t start,
 		if (q->merge_bvec_fn)
 			rs->max_sectors =
 				min_not_zero(rs->max_sectors,
-					     (unsigned short)(PAGE_SIZE >> 9));
+					     (unsigned int) (PAGE_SIZE >> 9));
 
 		rs->max_phys_segments =
 			min_not_zero(rs->max_phys_segments,
diff --git a/include/linux/device-mapper.h b/include/linux/device-mapper.h
index 83c7d207b80e7e8416e68813cf20dc38c9545e9e..51e0e95a421a1a19ed3bfbc30e6e530b112dee55 100644
--- a/include/linux/device-mapper.h
+++ b/include/linux/device-mapper.h
@@ -91,7 +91,7 @@ struct target_type {
 };
 
 struct io_restrictions {
-	unsigned short		max_sectors;
+	unsigned int		max_sectors;
 	unsigned short		max_phys_segments;
 	unsigned short		max_hw_segments;
 	unsigned short		hardsect_size;