On Fri, Jun 12, 2015 at 03:12:27PM +0530, Sreekanth Reddy wrote: > scsi_dma_map API will return a negative value (i.e. -ENOMEM) > if DMA mapping of sg lists fails and zero if the sg list in the > SCSI cmd is NULL. But drivers doesn't handled sg list DMA mapping > failure case properly. > > So, Updated the code to return host busy error status to SCSI MID Layer(SML), > when DMA mapping of scatter gather list fails for a SCSI command. > So that SML will retry this SCSI cmd after some time. > > Signed-off-by: Sreekanth Reddy <Sreekanth.Reddy@xxxxxxxxxxxxx> > --- > drivers/scsi/mpt3sas/mpt3sas_base.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/scsi/mpt3sas/mpt3sas_base.c b/drivers/scsi/mpt3sas/mpt3sas_base.c > index 267e489..0b26c8d 100644 > --- a/drivers/scsi/mpt3sas/mpt3sas_base.c > +++ b/drivers/scsi/mpt3sas/mpt3sas_base.c > @@ -1345,7 +1345,7 @@ _base_build_sg_scmd_ieee(struct MPT3SAS_ADAPTER *ioc, > > sg_scmd = scsi_sglist(scmd); > sges_left = scsi_dma_map(scmd); > - if (!sges_left) { > + if (!sges_left < 0) { > sdev_printk(KERN_ERR, scmd->device, > "pci_map_sg failed: request for %d bytes!\n", > scsi_bufflen(scmd)); > @@ -1414,7 +1414,7 @@ _base_build_sg_scmd_ieee(struct MPT3SAS_ADAPTER *ioc, > fill_in_last_segment: > > /* fill the last segment */ > - while (sges_left) { > + while (sges_left > 0) { > if (sges_left == 1) > _base_add_sg_single_ieee(sg_local, > simple_sgl_flags_last, 0, sg_dma_len(sg_scmd), > -- > 2.0.2 > > -- > 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 Reviewed-by: Johannes Thumshirn <jthumshirn@xxxxxxx> -- Johannes Thumshirn Storage jthumshirn@xxxxxxx +49 911 74053 689 SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton HRB 21284 (AG Nürnberg) -- 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