[ofa-general] [PATCH 1/11] IB/ipoib: high dma support
Eli Cohen
eli at mellanox.co.il
Tue Sep 25 07:41:09 PDT 2007
On Tue, 2007-09-25 at 13:06 +0200, Or Gerlitz wrote:
> Eli Cohen wrote:
> > On Tue, 2007-09-25 at 12:22 +0200, Or Gerlitz wrote:
> >> Eli Cohen wrote:
>
> >>> Add high dma support to ipoib
> >>> This patch assumes all IB devices support 64 bit DMA.
>
> >> On some architectures DMA addresses are 32 bit, so I am not sure to
> >> follow your comment. This capability states that the network device can
> >> dma to high memory.
>
> > I believe it means that *if* the kernel hands buffers whose addresses
> > exceed 32 bits then the device can handle them.
>
> High-memory is well documents in books and elsewhere. I just want to say
> that the change-log comment is confusing and unrelated.
>
> What you want to say is that this patch assumes that for all IB devices,
> ib_dma_map_single and ib_dma_map_page supports high memory, which is not
> the case, see below.
>
> Ralph?
>
> Or.
>
> > static u64 ipath_dma_map_page(struct ib_device *dev,
> > struct page *page,
> > unsigned long offset,
> > size_t size,
> > enum dma_data_direction direction)
> > {
> > u64 addr;
> >
> > BUG_ON(!valid_dma_direction(direction));
> >
> > if (offset + size > PAGE_SIZE) {
> > addr = BAD_DMA_ADDRESS;
> > goto done;
> > }
> >
> > addr = (u64) page_address(page);
> > if (addr)
> > addr += offset;
> > /* TODO: handle highmem pages */
> >
> > done:
> > return addr;
> > }
>
I got the impression that all supported IB devices support dma-ing
to/from memory > 4GB. Perhaps other vendors can comment.
More information about the general
mailing list