2013-04-16 05:37:56

by EUNBONG SONG

[permalink] [raw]
Subject: [PATCH] swiotlb: Replace dma_length to sg_dma_len() macro


This patch replace dma_length in "lib/swiotlb.c" to sg_dma_len() macro, because the build error can occur
if CONFIG_NEED_SG_DMA_LENGTH is not set, and CONFIG_SWIOTLB is set.
I confirmed compile only.

Singed-off-by: EunBong Song <[email protected]>

---
lib/swiotlb.c | 8 ++++----
1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/lib/swiotlb.c b/lib/swiotlb.c
index bfe02b8..7b16f4a 100644
--- a/lib/swiotlb.c
+++ b/lib/swiotlb.c
@@ -859,13 +859,13 @@ swiotlb_map_sg_attrs(struct device *hwdev, struct scatterlist *sgl, int nelems,
swiotlb_full(hwdev, sg->length, dir, 0);
swiotlb_unmap_sg_attrs(hwdev, sgl, i, dir,
attrs);
- sgl[0].dma_length = 0;
+ sg_dma_len(sgl) = 0;
return 0;
}
sg->dma_address = phys_to_dma(hwdev, map);
} else
sg->dma_address = dev_addr;
- sg->dma_length = sg->length;
+ sg_dma_len(sg) = sg->length;
}
return nelems;
}
@@ -893,7 +893,7 @@ swiotlb_unmap_sg_attrs(struct device *hwdev, struct scatterlist *sgl,
BUG_ON(dir == DMA_NONE);

for_each_sg(sgl, sg, nelems, i)
- unmap_single(hwdev, sg->dma_address, sg->dma_length, dir);
+ unmap_single(hwdev, sg->dma_address, sg_dma_len(sg), dir);

}
EXPORT_SYMBOL(swiotlb_unmap_sg_attrs);
@@ -923,7 +923,7 @@ swiotlb_sync_sg(struct device *hwdev, struct scatterlist *sgl,

for_each_sg(sgl, sg, nelems, i)
swiotlb_sync_single(hwdev, sg->dma_address,
- sg->dma_length, dir, target);
+ sg_dma_len(sg), dir, target);
}

void
--
1.7.0.4
????{.n?+???????+%?????ݶ??w??{.n?+????{??G?????{ay?ʇڙ?,j??f???h?????????z_??(?階?ݢj"???m??????G????????????&???~???iO???z??v?^?m???? ????????I?


2013-08-02 16:26:54

by Konrad Rzeszutek Wilk

[permalink] [raw]
Subject: Re: [PATCH] swiotlb: Replace dma_length to sg_dma_len() macro

On Tue, Apr 16, 2013 at 05:37:52AM +0000, EUNBONG SONG wrote:
>
> This patch replace dma_length in "lib/swiotlb.c" to sg_dma_len() macro, because the build error can occur
> if CONFIG_NEED_SG_DMA_LENGTH is not set, and CONFIG_SWIOTLB is set.
> I confirmed compile only.

Stefano, This patch should fix the ARM issues, but when I tried to apply it
would go all wonky.

>
> Singed-off-by: EunBong Song <[email protected]>
>
> ---
> lib/swiotlb.c | 8 ++++----
> 1 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/lib/swiotlb.c b/lib/swiotlb.c
> index bfe02b8..7b16f4a 100644
> --- a/lib/swiotlb.c
> +++ b/lib/swiotlb.c
> @@ -859,13 +859,13 @@ swiotlb_map_sg_attrs(struct device *hwdev, struct scatterlist *sgl, int nelems,
> swiotlb_full(hwdev, sg->length, dir, 0);
> swiotlb_unmap_sg_attrs(hwdev, sgl, i, dir,
> attrs);
> - sgl[0].dma_length = 0;
> + sg_dma_len(sgl) = 0;
> return 0;
> }
> sg->dma_address = phys_to_dma(hwdev, map);
> } else
> sg->dma_address = dev_addr;
> - sg->dma_length = sg->length;
> + sg_dma_len(sg) = sg->length;
> }
> return nelems;
> }
> @@ -893,7 +893,7 @@ swiotlb_unmap_sg_attrs(struct device *hwdev, struct scatterlist *sgl,
> BUG_ON(dir == DMA_NONE);
>
> for_each_sg(sgl, sg, nelems, i)
> - unmap_single(hwdev, sg->dma_address, sg->dma_length, dir);
> + unmap_single(hwdev, sg->dma_address, sg_dma_len(sg), dir);
>
> }
> EXPORT_SYMBOL(swiotlb_unmap_sg_attrs);
> @@ -923,7 +923,7 @@ swiotlb_sync_sg(struct device *hwdev, struct scatterlist *sgl,
>
> for_each_sg(sgl, sg, nelems, i)
> swiotlb_sync_single(hwdev, sg->dma_address,
> - sg->dma_length, dir, target);
> + sg_dma_len(sg), dir, target);
> }
>
> void
> --
> 1.7.0.4

2013-08-02 16:33:09

by Stefano Stabellini

[permalink] [raw]
Subject: Re: [PATCH] swiotlb: Replace dma_length to sg_dma_len() macro

On Fri, 2 Aug 2013, Konrad Rzeszutek Wilk wrote:
> On Tue, Apr 16, 2013 at 05:37:52AM +0000, EUNBONG SONG wrote:
> >
> > This patch replace dma_length in "lib/swiotlb.c" to sg_dma_len() macro, because the build error can occur
> > if CONFIG_NEED_SG_DMA_LENGTH is not set, and CONFIG_SWIOTLB is set.
> > I confirmed compile only.
>
> Stefano, This patch should fix the ARM issues,

Thanks!!

> but when I tried to apply it
> would go all wonky.

no problems, I can rebase it

> >
> > Singed-off-by: EunBong Song <[email protected]>
> >
> > ---
> > lib/swiotlb.c | 8 ++++----
> > 1 files changed, 4 insertions(+), 4 deletions(-)
> >
> > diff --git a/lib/swiotlb.c b/lib/swiotlb.c
> > index bfe02b8..7b16f4a 100644
> > --- a/lib/swiotlb.c
> > +++ b/lib/swiotlb.c
> > @@ -859,13 +859,13 @@ swiotlb_map_sg_attrs(struct device *hwdev, struct scatterlist *sgl, int nelems,
> > swiotlb_full(hwdev, sg->length, dir, 0);
> > swiotlb_unmap_sg_attrs(hwdev, sgl, i, dir,
> > attrs);
> > - sgl[0].dma_length = 0;
> > + sg_dma_len(sgl) = 0;
> > return 0;
> > }
> > sg->dma_address = phys_to_dma(hwdev, map);
> > } else
> > sg->dma_address = dev_addr;
> > - sg->dma_length = sg->length;
> > + sg_dma_len(sg) = sg->length;
> > }
> > return nelems;
> > }
> > @@ -893,7 +893,7 @@ swiotlb_unmap_sg_attrs(struct device *hwdev, struct scatterlist *sgl,
> > BUG_ON(dir == DMA_NONE);
> >
> > for_each_sg(sgl, sg, nelems, i)
> > - unmap_single(hwdev, sg->dma_address, sg->dma_length, dir);
> > + unmap_single(hwdev, sg->dma_address, sg_dma_len(sg), dir);
> >
> > }
> > EXPORT_SYMBOL(swiotlb_unmap_sg_attrs);
> > @@ -923,7 +923,7 @@ swiotlb_sync_sg(struct device *hwdev, struct scatterlist *sgl,
> >
> > for_each_sg(sgl, sg, nelems, i)
> > swiotlb_sync_single(hwdev, sg->dma_address,
> > - sg->dma_length, dir, target);
> > + sg_dma_len(sg), dir, target);
> > }
> >
> > void
> > --
> > 1.7.0.4
>