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?