Damien, > The unsigned 32 bits overflow check for the zone size value is already > done within sd_zbc_check_zones() with the test: > > } else if (logical_to_sectors(sdkp->device, zone_blocks) > UINT_MAX) { > > so there is no need to check again for an out of range value in > sd_zbc_read_zones(). Simplify the code and fix sd_zbc_check_zones() > error return to -EFBIG instead of -ENODEV if the zone size is too large. > Change the return type of sd_zbc_check_zones() to an int for the error > code and return the zone size (zone_blocks) through a u32 pointer to > avoid overflowing the signed 32 return value. Acked-by: Martin K. Petersen <martin.petersen@xxxxxxxxxx> -- Martin K. Petersen Oracle Linux Engineering