patch-2.4.0-test7 linux/drivers/scsi/qlogicfc.c

Next file: linux/drivers/scsi/scsi_error.c
Previous file: linux/drivers/scsi/ppa.h
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.4.0-test6/linux/drivers/scsi/qlogicfc.c linux/drivers/scsi/qlogicfc.c
@@ -1312,7 +1312,7 @@
 			}
 			sg_count -= n;
 		}
-	} else if (Cmnd->request_bufflen) {
+	} else if (Cmnd->request_bufflen && Cmnd->sc_data_direction != PCI_DMA_NONE) {
 		dma64_addr_t busaddr = pci64_map_single(hostdata->pci_dev, Cmnd->request_buffer, Cmnd->request_bufflen,
 							scsi_to_pci_dma_dir(Cmnd->sc_data_direction));
 
@@ -1569,7 +1569,7 @@
 					pci64_unmap_sg(hostdata->pci_dev,
 						       (struct scatterlist *)Cmnd->buffer, Cmnd->use_sg,
 						       scsi_to_pci_dma_dir(Cmnd->sc_data_direction));
-				else if (Cmnd->request_bufflen)
+				else if (Cmnd->request_bufflen && Cmnd->sc_data_direction != PCI_DMA_NONE)
 					pci64_unmap_single(hostdata->pci_dev, *(dma64_addr_t *)&Cmnd->SCp,
 							   Cmnd->request_bufflen,
 							   scsi_to_pci_dma_dir(Cmnd->sc_data_direction));

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)