>> >
>> >Even for kernels with a 64bit dma_addr_t you can get 32bit dma 
>> >addresses
>> >only.  As a start check whether the pci_set_dma_mask for 
>the 64bit mask
>> >failed - in that case you can always use 32bit SGLs.
>> >
>> 
>> Please help me understand: If dma_addr_t is 64 bit, I will get 64bit 
>> addresses in scatterlist regardless the outcome of pci_set_dma_mask, 
>> won't I? These addresses may have valid or null high 
>addresses. My idea
>> was to have 32(64) bit SGLs for 32(64) bit dma_addr_t.
>
>if pci_set_dma_mask for the 64bit mask fails the upper 32bit bit of
>dma_addr_t will guaranteed to be zero, so you don't need to take them
>into account for your hardware SGL.
>

Okay. I understood. Thanks. But please consider this also:

Arjan pointed out that by basing my 32/64 SGL decision solely on
#define IS_DMA64 sizeof(dma_addr_t)==8, I can rely on gcc to optimize the
unused portion of the code away. If I take pci_set_dma_mask also into
account, I can't do that, can I?

Thanks,
Sreenivas
-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to