Re: Does kmalloc always return address below 4GB?

From: David S. Miller (davem@redhat.com)
Date: Tue Mar 05 2002 - 06:16:36 EST


   From: "Adam J. Richter" <adam@yggdrasil.com>
   Date: Tue, 5 Mar 2002 03:12:52 -0800

   If not, then I guess I can use
   pci_alloc_consistent and pci_map_single as necessary, since they
   should can potentially know that I am using a device that
   only understands 32-bit addresses, from my earlier call to
   pci_set_dma_mask. However, I assume that it is considered
   simpler and therefore better to avoid these routines when possible.

Just use pci_alloc_consistent, it never gives you
anything larger than 32-bit addresses, please read the
documentation :-)

On 64-bit platforms without CONFIG_HIGHMEM, kmalloc can return any
pointer, but that is fine since your DMA mask will instruct the
IOMMU layer of the platform to map it in the low 32-bits of DMA
address space.

If you follow DMA-mapping.txt to the letter, it will just work, trust
us. :-)
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Thu Mar 07 2002 - 21:00:40 EST