>> > >> >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