Messages in this thread | | | Date | Thu, 21 Aug 2008 23:16:49 +0900 | Subject | Re: [PATCH 1/8] x86: add alloc_coherent dma_ops callback to GART driver | From | FUJITA Tomonori <> |
| |
On Tue, 19 Aug 2008 16:32:39 +0200 Joerg Roedel <joerg.roedel@amd.com> wrote:
> Signed-off-by: Joerg Roedel <joerg.roedel@amd.com> > --- > arch/x86/kernel/pci-gart_64.c | 21 +++++++++++++++++++++ > 1 files changed, 21 insertions(+), 0 deletions(-) > > diff --git a/arch/x86/kernel/pci-gart_64.c b/arch/x86/kernel/pci-gart_64.c > index 4d8efb0..44a75a6 100644 > --- a/arch/x86/kernel/pci-gart_64.c > +++ b/arch/x86/kernel/pci-gart_64.c > @@ -506,6 +506,26 @@ error: > return 0; > } > > +/* allocate and map a coherent mapping */ > +static void * > +gart_alloc_coherent(struct device *dev, size_t size, dma_addr_t *dma_addr, > + gfp_t flag) > +{ > + void *vaddr; > + > + vaddr = (void *)__get_free_pages(flag, get_order(size)); > + if (!vaddr) > + return NULL; > + > + *dma_addr = gart_map_single(dev, __pa(vaddr), size, DMA_BIDIRECTIONAL); > + if (*dma_addr != bad_dma_address) > + return vaddr;
I'm not sure a rule is documented or not, but I think that IOMMUs return zeroed memory wrt dma_alloc_coherent. The current pci-dma.c does, so I think that it would be better to keep the current behavior.
| |