[ofa-general] [PATCH 1/11] IB/ipoib: high dma support

Or Gerlitz ogerlitz at voltaire.com
Tue Sep 25 04:06:46 PDT 2007


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







More information about the general mailing list