Does kmalloc on MPC82xx work correctly with GFP_DMA?

Matt Porter mporter at
Wed Oct 20 00:27:54 EST 2004

On Mon, Oct 18, 2004 at 10:30:15AM +0100, Conor McLoughlin wrote:
> I have been looking at the ethernet device driver (fcc_enet) for the
> mpc82xx platform. This allocates buffer descriptors using kmalloc with
> the GFP_DMA flag. As far as I can see on my platform, this allocates

GFP_DMA has no meaning on PPC. All memory is DMAable.  GFP_DMA is for
PeeCees with a limited ISA DMA space.  Drivers should be using GFP_KERNEL
so they don't confuse people.

> from the regular kernel memory (0xCxxxxxxx). As the attributes of this
> block of memory are controlled by the block address translation
> registers, this cannot be DMA safe, can it?

Sure it can. It works with hardware snooping.

> Is there something I am missing here?

Yes, it's a 603e core and hardware snooping support manages cache
coherency between system memory and devices.


More information about the Linuxppc-embedded mailing list