On Wed, 2015-01-14 at 20:18 -0500, Martin K. Petersen wrote: > >>>>> "Ewan" == Ewan D Milne <emilne@xxxxxxxxxx> writes: > > Ewan> This can happen if a multipathed device uses DIX and another path > Ewan> is added via an adapter that does not support it. Multipath > Ewan> should not allow this path to be added, > > No it shouldn't :) > > diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c > index 6d5c0b8..4f14f4a 100644 > --- a/drivers/scsi/scsi_lib.c > +++ b/drivers/scsi/scsi_lib.c > @@ -1143,7 +1143,17 @@ int scsi_init_io(struct scsi_cmnd *cmd) > struct scsi_data_buffer *prot_sdb = cmd->prot_sdb; > int ivecs, count; > > - BUG_ON(prot_sdb == NULL); > + if (prot_sdb == NULL) { > + /* > + * This can happen if someone (e.g. multipath) > + * queues a command to a device on an adapter > + * that does not support T10 PI. > > s/T10 PI/DIX/ Good point. I'll submit a v2 to change the comment. > > + */ > + WARN_ON_ONCE(1); > + error = BLKPREP_KILL; > + goto err_exit; > + } > + > ivecs = blk_rq_count_integrity_sg(rq->q, rq->bio); > > if (scsi_alloc_sgtable(prot_sdb, ivecs, is_mq)) { > > Failing more gracefully is OK with me. > > Acked-by: Martin K. Petersen <martin.petersen@xxxxxxxxxx> > -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html