2007-10-23 15:20:40

by Grant Likely

[permalink] [raw]
Subject: [PATCH] Bugfix to commit 18dabf473e15850c0dbc8ff13ac1e2806d542c15

From: Grant Likely <[email protected]>

Fixup for commit 18dabf473e15850c0dbc8ff13ac1e2806d542c15. Changes to
dma_map_sg where done in asm-x86/dma-mapping_32.h, but were not mirrored
in include/asm-powerpc/dma-mapping.h

Signed-off-by: Grant Likely <[email protected]>
---

Linus, I cannot build an arch/powerpc kernel without this patch.

Cheers,
g.

include/asm-powerpc/dma-mapping.h | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/include/asm-powerpc/dma-mapping.h b/include/asm-powerpc/dma-mapping.h
index 65be95d..fd33ce4 100644
--- a/include/asm-powerpc/dma-mapping.h
+++ b/include/asm-powerpc/dma-mapping.h
@@ -285,9 +285,9 @@ dma_map_sg(struct device *dev, struct scatterlist *sgl, int nents,
BUG_ON(direction == DMA_NONE);

for_each_sg(sgl, sg, nents, i) {
- BUG_ON(!sg->page);
+ BUG_ON(!sg_page(sg));
__dma_sync_page(sg->page, sg->offset, sg->length, direction);
- sg->dma_address = page_to_bus(sg->page) + sg->offset;
+ sg->dma_address = sg_phys(sg);
}

return nents;


2007-10-23 15:28:01

by Josh Boyer

[permalink] [raw]
Subject: Re: [PATCH] Bugfix to commit 18dabf473e15850c0dbc8ff13ac1e2806d542c15

On Tue, 23 Oct 2007 09:20:25 -0600
Grant Likely <[email protected]> wrote:

> From: Grant Likely <[email protected]>
>
> Fixup for commit 18dabf473e15850c0dbc8ff13ac1e2806d542c15. Changes to
> dma_map_sg where done in asm-x86/dma-mapping_32.h, but were not mirrored
> in include/asm-powerpc/dma-mapping.h
>
> Signed-off-by: Grant Likely <[email protected]>
> ---
>
> Linus, I cannot build an arch/powerpc kernel without this patch.

Olof Johansson already sent a patch out for this that had some other
fixes in it. I think Jens already applied it to his tree.

josh

2007-10-23 15:35:57

by Grant Likely

[permalink] [raw]
Subject: Re: [PATCH] Bugfix to commit 18dabf473e15850c0dbc8ff13ac1e2806d542c15

On 10/23/07, Grant Likely <[email protected]> wrote:
> From: Grant Likely <[email protected]>
>
> Fixup for commit 18dabf473e15850c0dbc8ff13ac1e2806d542c15. Changes to
> dma_map_sg where done in asm-x86/dma-mapping_32.h, but were not mirrored
> in include/asm-powerpc/dma-mapping.h
>
> Signed-off-by: Grant Likely <[email protected]>
> ---
>
> Linus, I cannot build an arch/powerpc kernel without this patch.

Oops, ignore this patch. It's doesn't change all the references, it
uses the wrong method for calculating dma_address and 2 other people
have already sent the fix for this.

/me puts on a paper bag
g.

>
> Cheers,
> g.
>
> include/asm-powerpc/dma-mapping.h | 4 ++--
> 1 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/include/asm-powerpc/dma-mapping.h b/include/asm-powerpc/dma-mapping.h
> index 65be95d..fd33ce4 100644
> --- a/include/asm-powerpc/dma-mapping.h
> +++ b/include/asm-powerpc/dma-mapping.h
> @@ -285,9 +285,9 @@ dma_map_sg(struct device *dev, struct scatterlist *sgl, int nents,
> BUG_ON(direction == DMA_NONE);
>
> for_each_sg(sgl, sg, nents, i) {
> - BUG_ON(!sg->page);
> + BUG_ON(!sg_page(sg));
> __dma_sync_page(sg->page, sg->offset, sg->length, direction);
> - sg->dma_address = page_to_bus(sg->page) + sg->offset;
> + sg->dma_address = sg_phys(sg);
> }
>
> return nents;
>
>


--
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
[email protected]
(403) 399-0195