mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-06 10:00:17 +00:00
block: sanitize chunk_sectors for atomic write limits
[ Upstream commit1de67e8e28] Currently we just ensure that a non-zero value in chunk_sectors aligns with any atomic write boundary, as the blk boundary functionality uses both these values. However it is also improper to have atomic write unit max > chunk_sectors (for non-zero chunk_sectors), as this would lead to splitting of atomic write bios (which is disallowed). Sanitize atomic write unit max against chunk_sectors to avoid any potential problems. Fixes:d00eea91de("block: Add extra checks in blk_validate_atomic_write_limits()") Reviewed-by: Nilay Shroff <nilay@linux.ibm.com> Signed-off-by: John Garry <john.g.garry@oracle.com> Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com> Link: https://lore.kernel.org/r/20250711105258.3135198-3-john.g.garry@oracle.com Signed-off-by: Jens Axboe <axboe@kernel.dk> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
6784367b2f
commit
22fbb40212
@@ -186,6 +186,8 @@ static void blk_atomic_writes_update_limits(struct queue_limits *lim)
|
||||
static void blk_validate_atomic_write_limits(struct queue_limits *lim)
|
||||
{
|
||||
unsigned int boundary_sectors;
|
||||
unsigned int atomic_write_hw_max_sectors =
|
||||
lim->atomic_write_hw_max >> SECTOR_SHIFT;
|
||||
|
||||
if (!(lim->features & BLK_FEAT_ATOMIC_WRITES))
|
||||
goto unsupported;
|
||||
@@ -207,6 +209,10 @@ static void blk_validate_atomic_write_limits(struct queue_limits *lim)
|
||||
lim->atomic_write_hw_max))
|
||||
goto unsupported;
|
||||
|
||||
if (WARN_ON_ONCE(lim->chunk_sectors &&
|
||||
atomic_write_hw_max_sectors > lim->chunk_sectors))
|
||||
goto unsupported;
|
||||
|
||||
boundary_sectors = lim->atomic_write_hw_boundary >> SECTOR_SHIFT;
|
||||
|
||||
if (boundary_sectors) {
|
||||
|
||||
Reference in New Issue
Block a user