linux-next: build failure after merge of the dma-mapping tree

3 messages, 3 authors, 2012-02-13 · open the first message on its own page

linux-next: build failure after merge of the dma-mapping tree

From: Stephen Rothwell <hidden>
Date: 2012-02-13 05:40:14

Hi all,

After merging the dma-mapping tree, today's linux-next build (powerpc
ppc64_defconfig) failed like this:

arch/powerpc/kernel/vio.c: In function 'vio_dma_iommu_alloc_coherent':
arch/powerpc/kernel/vio.c:500:21: error: 'struct dma_map_ops' has no member named 'alloc_coherent'
arch/powerpc/kernel/vio.c: In function 'vio_dma_iommu_free_coherent':
arch/powerpc/kernel/vio.c:514:15: error: 'struct dma_map_ops' has no member named 'free_coherent'
arch/powerpc/kernel/vio.c: At top level:
arch/powerpc/kernel/vio.c:615:2: error: unknown field 'alloc_coherent' specified in initializer
arch/powerpc/kernel/vio.c:615:2: error: initialization from incompatible pointer type [-Werror]
arch/powerpc/kernel/vio.c:615:2: error: (near initialization for 'vio_dma_mapping_ops.alloc') [-Werror]
arch/powerpc/kernel/vio.c:616:2: error: unknown field 'free_coherent' specified in initializer
arch/powerpc/kernel/vio.c:616:2: error: initialization from incompatible pointer type [-Werror]
arch/powerpc/kernel/vio.c:616:2: error: (near initialization for 'vio_dma_mapping_ops.free') [-Werror]

I have dropped the dma-mapping tree for today.
-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

Re: linux-next: build failure after merge of the dma-mapping tree

From: Kyungmin Park <kyungmin.park@samsung.com>
Date: 2012-02-13 07:31:44

Hi,

It's maybe missing modify arch/powerpc/kernel/vio.c at that time.

following patch will fix it.

Thank you,
Kyungmin Park
diff --git a/arch/powerpc/kernel/vio.c b/arch/powerpc/kernel/vio.c
index 8b08629..b12a77a 100644
--- a/arch/powerpc/kernel/vio.c
+++ b/arch/powerpc/kernel/vio.c
@@ -487,7 +487,7 @@ static void vio_cmo_balance(struct work_struct *work)
 }
diff --git a/arch/powerpc/kernel/vio.c b/arch/powerpc/kernel/vio.c
index 8b08629..b12a77a 100644
--- a/arch/powerpc/kernel/vio.c
+++ b/arch/powerpc/kernel/vio.c
@@ -487,7 +487,7 @@ static void vio_cmo_balance(struct work_struct *work)
 }

 static void *vio_dma_iommu_alloc_coherent(struct device *dev, size_t size,
-                                          dma_addr_t *dma_handle, gfp_t flag)
+               dma_addr_t *dma_handle, gfp_t flag, struct dma_attrs *attrs)
 {
        struct vio_dev *viodev = to_vio_dev(dev);
        void *ret;
@@ -497,7 +497,7 @@ static void *vio_dma_iommu_alloc_coherent(struct device *dev
                return NULL;
        }

-       ret = dma_iommu_ops.alloc_coherent(dev, size, dma_handle, flag);
+       ret = dma_iommu_ops.alloc(dev, size, dma_handle, flag, attrs);
        if (unlikely(ret == NULL)) {
                vio_cmo_dealloc(viodev, roundup(size, PAGE_SIZE));
                atomic_inc(&viodev->cmo.allocs_failed);
@@ -507,11 +507,11 @@ static void *vio_dma_iommu_alloc_coherent(struct device *d
 }

 static void vio_dma_iommu_free_coherent(struct device *dev, size_t size,
-                                        void *vaddr, dma_addr_t dma_handle)
+               void *vaddr, dma_addr_t dma_handle, struct dma_attrs *attrs)
 {
        struct vio_dev *viodev = to_vio_dev(dev);

-       dma_iommu_ops.free_coherent(dev, size, vaddr, dma_handle);
+       dma_iommu_ops.free(dev, size, vaddr, dma_handle, attrs);

        vio_cmo_dealloc(viodev, roundup(size, PAGE_SIZE));
 }
@@ -612,8 +612,8 @@ static u64 vio_dma_get_required_mask(struct device *dev)
 }

 struct dma_map_ops vio_dma_mapping_ops = {
-       .alloc_coherent    = vio_dma_iommu_alloc_coherent,
-       .free_coherent     = vio_dma_iommu_free_coherent,
+       .alloc             = vio_dma_iommu_alloc_coherent,
+       .free              = vio_dma_iommu_free_coherent,
        .map_sg            = vio_dma_iommu_map_sg,
        .unmap_sg          = vio_dma_iommu_unmap_sg,
        .map_page          = vio_dma_iommu_map_page,
On 2/13/12, Stephen Rothwell [off-list ref] wrote:
Hi all,

After merging the dma-mapping tree, today's linux-next build (powerpc
ppc64_defconfig) failed like this:

arch/powerpc/kernel/vio.c: In function 'vio_dma_iommu_alloc_coherent':
arch/powerpc/kernel/vio.c:500:21: error: 'struct dma_map_ops' has no member
named 'alloc_coherent'
arch/powerpc/kernel/vio.c: In function 'vio_dma_iommu_free_coherent':
arch/powerpc/kernel/vio.c:514:15: error: 'struct dma_map_ops' has no member
named 'free_coherent'
arch/powerpc/kernel/vio.c: At top level:
arch/powerpc/kernel/vio.c:615:2: error: unknown field 'alloc_coherent'
specified in initializer
arch/powerpc/kernel/vio.c:615:2: error: initialization from incompatible
pointer type [-Werror]
arch/powerpc/kernel/vio.c:615:2: error: (near initialization for
'vio_dma_mapping_ops.alloc') [-Werror]
arch/powerpc/kernel/vio.c:616:2: error: unknown field 'free_coherent'
specified in initializer
arch/powerpc/kernel/vio.c:616:2: error: initialization from incompatible
pointer type [-Werror]
arch/powerpc/kernel/vio.c:616:2: error: (near initialization for
'vio_dma_mapping_ops.free') [-Werror]

I have dropped the dma-mapping tree for today.
--
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

RE: linux-next: build failure after merge of the dma-mapping tree

From: Marek Szyprowski <m.szyprowski@samsung.com>
Date: 2012-02-13 15:05:33

Hi Stephen,

On Monday, February 13, 2012 6:40 AM Stephen Rothwell wrote:
 
After merging the dma-mapping tree, today's linux-next build (powerpc
ppc64_defconfig) failed like this:
(snipped)

I'm sorry for the problems. I've updated patches to fix these issues, as 
well as similar problems with MIPS and Hexagon architecture.

Best regards
-- 
Marek Szyprowski
Samsung Poland R&D Center
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help