2012-05-23 21:28:32

by Alessandro Rubini

[permalink] [raw]
Subject: [PATCH V2] x86/pci: sta2x11: fix a compiler warning

swiotlb_free_coherent(), exported by lib/swiotlb.b, cannot be used in
dma_ops, because it doesn't want the "attrs" argument. Add a wrapper,
like other users of the function already do.

Signed-off-by: Alessandro Rubini <[email protected]>
Acked-by: Giancarlo Asnaghi <[email protected]>
---

[V2: same patch, message fixed (sorry, I made a mess in the editor)]

Actually, we may instead add "args" to the exported functions in
lib/swiotlb. This would then remove a few other similar wrappers that
do nothing. If it's considered useful, I can propose a patch for that.
arch/unicore32/mm/dma-swiotlb.c is especially interesting in this
respect, because it only has the two wrappers.

arch/x86/pci/sta2x11-fixup.c | 9 ++++++++-
1 files changed, 8 insertions(+), 1 deletions(-)

diff --git a/arch/x86/pci/sta2x11-fixup.c b/arch/x86/pci/sta2x11-fixup.c
index e06334b..1ab70dc 100644
--- a/arch/x86/pci/sta2x11-fixup.c
+++ b/arch/x86/pci/sta2x11-fixup.c
@@ -181,10 +181,17 @@ static void *sta2x11_swiotlb_alloc_coherent(struct device *dev,
return vaddr;
}

+static void sta2x11_swiotlb_free_coherent(struct device *dev, size_t size,
+ void *vaddr, dma_addr_t dma_addr,
+ struct dma_attrs *attrs)
+{
+ swiotlb_free_coherent(dev, size, vaddr, dma_addr);
+}
+
/* We have our own dma_ops: the same as swiotlb but from alloc (above) */
static struct dma_map_ops sta2x11_dma_ops = {
.alloc = sta2x11_swiotlb_alloc_coherent,
- .free = swiotlb_free_coherent,
+ .free = sta2x11_swiotlb_free_coherent,
.map_page = swiotlb_map_page,
.unmap_page = swiotlb_unmap_page,
.map_sg = swiotlb_map_sg_attrs,
--
1.7.7.2


2012-05-23 23:26:04

by Thomas Gleixner

[permalink] [raw]
Subject: Re: [PATCH V2] x86/pci: sta2x11: fix a compiler warning

On Wed, 23 May 2012, Alessandro Rubini wrote:

> swiotlb_free_coherent(), exported by lib/swiotlb.b, cannot be used in
> dma_ops, because it doesn't want the "attrs" argument. Add a wrapper,
> like other users of the function already do.
>
> Signed-off-by: Alessandro Rubini <[email protected]>
> Acked-by: Giancarlo Asnaghi <[email protected]>
> ---
>
> [V2: same patch, message fixed (sorry, I made a mess in the editor)]
>
> Actually, we may instead add "args" to the exported functions in
> lib/swiotlb. This would then remove a few other similar wrappers that
> do nothing. If it's considered useful, I can propose a patch for that.

Yes please. Do nothing wrappers are harmful espcially if they get
common.

Thanks,

tglx