2005-03-09 23:14:03

by Bagalkote, Sreenivas

[permalink] [raw]
Subject: RE: [ANNOUNCE][PATCH 2.6.11 2/3] megaraid_sas: Announcing new mod ule for LSI Logic's SAS based MegaRAID controllers

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

Thanks,
Sreenivas


2005-03-09 23:16:50

by Christoph Hellwig

[permalink] [raw]
Subject: Re: [ANNOUNCE][PATCH 2.6.11 2/3] megaraid_sas: Announcing new mod ule for LSI Logic's SAS based MegaRAID controllers

On Wed, Mar 09, 2005 at 05:47:27PM -0500, Bagalkote, Sreenivas wrote:
> >
> >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.