mirror of https://gitee.com/openkylin/linux.git
[SCSI] mpt2sas: fix the incorrect scsi_dma_map error checking
scsi_dma_map() returns -1 if an error occurred (zero means that the command has no data). So the following current code can't catch an error: sges_left = scsi_dma_map(scmd); if (!sges_left) { sdev_printk(KERN_ERR, scmd->device, "pci_map_sg" " failed: request for %d bytes!\n", scsi_bufflen(scmd)); return -ENOMEM; } Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> Acked-by: "Desai, Kashyap" <Kashyap.Desai@lsi.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
This commit is contained in:
parent
c4de0cebc5
commit
bb789d0162
|
@ -988,7 +988,7 @@ _scsih_build_scatter_gather(struct MPT2SAS_ADAPTER *ioc,
|
|||
u32 chain_offset;
|
||||
u32 chain_length;
|
||||
u32 chain_flags;
|
||||
u32 sges_left;
|
||||
int sges_left;
|
||||
u32 sges_in_segment;
|
||||
u32 sgl_flags;
|
||||
u32 sgl_flags_last_element;
|
||||
|
@ -1009,7 +1009,7 @@ _scsih_build_scatter_gather(struct MPT2SAS_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));
|
||||
return -ENOMEM;
|
||||
|
|
Loading…
Reference in New Issue