Re: swiotlb default size (64 MB) too small?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



FUJITA Tomonori wrote:
> On Tue, 27 Jan 2009 18:03:40 +0100 (CET)
> Stefan Richter <stefanr@xxxxxxxxxxxxxxxxx> wrote:
>> +static void sbp2_unmap_scatterlist(struct device *card_device,
>> +				   struct sbp2_command_orb *orb)
>> +{
>> +	if (scsi_sg_count(orb->cmd))
>> +		dma_unmap_sg(card_device, scsi_sglist(orb->cmd),
>> +			     scsi_sg_count(orb->cmd),
>> +			     orb->cmd->sc_data_direction);
>> +
>> +	if (orb->page_table_bus)
>> +		dma_unmap_single(card_device, orb->page_table_bus,
>> +				 sizeof(orb->page_table), DMA_TO_DEVICE);
> 
> Well, this does not look correct since zero can be a valid dma
> address.

Hmm.

> static void sbp2_unmap_scatterlist(struct device *card_device,
> 				   struct sbp2_command_orb *orb)
> {
> 	if (scsi_sg_count(orb->cmd))
> 		dma_unmap_sg(card_device, scsi_sglist(orb->cmd),
> 			     scsi_sg_count(orb->cmd),
> 			     orb->cmd->sc_data_direction);
> 
> 	if (scsi_sg_count(orb->cmd) > 1)
> 		dma_unmap_single(card_device, orb->page_table_bus,
> 				 sizeof(orb->page_table), DMA_TO_DEVICE);
> 
> 
> Well, looks cranky a bit but firewire is cranky for me :)

Even if scsi_sg_count(cmd) > 1, the outcome of dma_map_sg() could have
been 1, couldn't it?  So I need to take note of that in another way.
-- 
Stefan Richter
-=====-==--= ---= ===--
http://arcgraph.de/sr/
--
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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux