Commit bb789d01 authored by FUJITA Tomonori's avatar FUJITA Tomonori Committed by James Bottomley

[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: default avatarFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Acked-by: default avatar"Desai, Kashyap" <Kashyap.Desai@lsi.com>
Signed-off-by: default avatarJames Bottomley <James.Bottomley@suse.de>
parent c4de0ceb
...@@ -988,7 +988,7 @@ _scsih_build_scatter_gather(struct MPT2SAS_ADAPTER *ioc, ...@@ -988,7 +988,7 @@ _scsih_build_scatter_gather(struct MPT2SAS_ADAPTER *ioc,
u32 chain_offset; u32 chain_offset;
u32 chain_length; u32 chain_length;
u32 chain_flags; u32 chain_flags;
u32 sges_left; int sges_left;
u32 sges_in_segment; u32 sges_in_segment;
u32 sgl_flags; u32 sgl_flags;
u32 sgl_flags_last_element; u32 sgl_flags_last_element;
...@@ -1009,7 +1009,7 @@ _scsih_build_scatter_gather(struct MPT2SAS_ADAPTER *ioc, ...@@ -1009,7 +1009,7 @@ _scsih_build_scatter_gather(struct MPT2SAS_ADAPTER *ioc,
sg_scmd = scsi_sglist(scmd); sg_scmd = scsi_sglist(scmd);
sges_left = scsi_dma_map(scmd); sges_left = scsi_dma_map(scmd);
if (!sges_left) { if (sges_left < 0) {
sdev_printk(KERN_ERR, scmd->device, "pci_map_sg" sdev_printk(KERN_ERR, scmd->device, "pci_map_sg"
" failed: request for %d bytes!\n", scsi_bufflen(scmd)); " failed: request for %d bytes!\n", scsi_bufflen(scmd));
return -ENOMEM; return -ENOMEM;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment