On Wed, Jan 23, 2019 at 11:12:37AM -0800, Bart Van Assche wrote: > diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c > index 4e69f182a1e5..b0eb83526c54 100644 > --- a/drivers/scsi/sd.c > +++ b/drivers/scsi/sd.c > @@ -1129,6 +1129,10 @@ static blk_status_t sd_setup_rw6_cmnd(struct scsi_cmnd *cmd, bool write, > sector_t lba, unsigned int nr_blocks, > unsigned char flags) > { > + /* Avoid that 0 blocks gets translated into 256 blocks. */ > + if (WARN_ON_ONCE(nr_blocks == 0)) > + return BLK_STS_IOERR; > + While the WARN_ON here looks helpful shouldn't we instead ensure that sd_setup_rw6_cmnd never gets called with a 0 argument instead of bailing out like this?