diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c index 26e1afec564..dc1c2f4520f 100644 --- a/drivers/scsi/scsi_lib.c +++ b/drivers/scsi/scsi_lib.c @@ -1011,7 +1011,8 @@ int scsi_init_io(struct scsi_cmnd *cmd, gfp_t gfp_mask) struct request *rq = cmd->request; int error; - BUG_ON(!rq->nr_phys_segments); + if (WARN_ON_ONCE(!rq->nr_phys_segments)) + return -EINVAL; error = scsi_init_sgtable(rq, &cmd->sdb, gfp_mask); if (error)