Re: Latest git build failure on s390 - dma_get_cache_alignment()

Previous thread: JMicron chipset update by Alex Dubov on Thursday, August 12, 2010 - 12:27 am. (1 message)

Next thread: [patch] mfd: snprintf() returns largish values by Dan Carpenter on Thursday, August 12, 2010 - 12:50 am. (2 messages)
From: Sachin Sant
Date: Thursday, August 12, 2010 - 12:40 am

Latest 2.6.35 git (2.6.35-git11 : 5af568cbd...) fails to build
on s390 with following errors :

arch/s390/mm/fault.c:396: warning: frame size of 'do_protection_exception' is 264 bytes
In file included from include/linux/dmaengine.h:26,
            from include/linux/skbuff.h:30,
            from include/linux/icmpv6.h:82,
            from include/linux/ipv6.h:220,
            from include/net/ipv6.h:16,
            from include/linux/sunrpc/clnt.h:25,
            from include/linux/nfs_fs.h:48,
            from init/do_mounts.c:20:
include/linux/dma-mapping.h:145: error: static declaration of 'dma_get_cache_alignment' follows non-static declaration
include/asm-generic/dma-mapping-broken.h:73: error: previous declaration of 'dma_get_cache_alignment' was here
make[1]: *** [init/do_mounts.o] Error 1
make[1]: *** Waiting for unfinished jobs....
init/do_mounts_md.c: In function 'md_setup_drive':
init/do_mounts_md.c:241: warning: frame size of 'md_setup_drive' is 496 bytes
make: *** [init] Error 2
make: *** Waiting for unfinished jobs....

The code in question was last changed via following commit

commit 4565f0170dfc849b3629c27d769db800467baa62
dma-mapping: unify dma_get_cache_alignment implementations

Thanks
-Sachin

-- 

---------------------------------
Sachin Sant
IBM Linux Technology Center
India Systems and Technology Labs
Bangalore, India
---------------------------------

--

From: Heiko Carstens
Date: Thursday, August 12, 2010 - 12:55 am

Cc'ing linux-arch since the original patch got posted there as well.

Patch below should fix it.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
---

 include/asm-generic/dma-mapping-common.h |    8 ++++++++
 include/linux/dma-mapping.h              |    8 --------
 2 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/include/asm-generic/dma-mapping-common.h b/include/asm-generic/dma-mapping-common.h
index 0c80bb3..8079c72 100644
--- a/include/asm-generic/dma-mapping-common.h
+++ b/include/asm-generic/dma-mapping-common.h
@@ -160,6 +160,14 @@ dma_sync_sg_for_device(struct device *dev, struct scatterlist *sg,
 
 }
 
+static inline int dma_get_cache_alignment(void)
+{
+#ifdef ARCH_DMA_MINALIGN
+	return ARCH_DMA_MINALIGN;
+#endif
+	return 1;
+}
+
 #define dma_map_single(d, a, s, r) dma_map_single_attrs(d, a, s, r, NULL)
 #define dma_unmap_single(d, a, s, r) dma_unmap_single_attrs(d, a, s, r, NULL)
 #define dma_map_sg(d, s, n, r) dma_map_sg_attrs(d, s, n, r, NULL)
diff --git a/include/linux/dma-mapping.h b/include/linux/dma-mapping.h
index e0670a5..89b7e1a 100644
--- a/include/linux/dma-mapping.h
+++ b/include/linux/dma-mapping.h
@@ -142,14 +142,6 @@ static inline int dma_set_seg_boundary(struct device *dev, unsigned long mask)
 		return -EIO;
 }
 
-static inline int dma_get_cache_alignment(void)
-{
-#ifdef ARCH_DMA_MINALIGN
-	return ARCH_DMA_MINALIGN;
-#endif
-	return 1;
-}
-
 /* flags for the coherent memory api */
 #define	DMA_MEMORY_MAP			0x01
 #define DMA_MEMORY_IO			0x02
--

From: Heiko Carstens
Date: Thursday, August 12, 2010 - 1:07 am

Crap. By far not all converted architectures include dma-mapping-common.h
from their private dma-mapping header file. So the patch would probably
introduce a couple of new compile errors.
Looks like we need an explicit ifdef.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
---

 include/linux/dma-mapping.h |    2 ++
 1 file changed, 2 insertions(+)


diff --git a/include/linux/dma-mapping.h b/include/linux/dma-mapping.h
index e0670a5..ce29b81 100644
--- a/include/linux/dma-mapping.h
+++ b/include/linux/dma-mapping.h
@@ -142,6 +142,7 @@ static inline int dma_set_seg_boundary(struct device *dev, unsigned long mask)
 		return -EIO;
 }
 
+#ifdef CONFIG_HAS_DMA
 static inline int dma_get_cache_alignment(void)
 {
 #ifdef ARCH_DMA_MINALIGN
@@ -149,6 +150,7 @@ static inline int dma_get_cache_alignment(void)
 #endif
 	return 1;
 }
+#endif
 
 /* flags for the coherent memory api */
 #define	DMA_MEMORY_MAP			0x01
--

From: Geert Uytterhoeven
Date: Thursday, August 12, 2010 - 2:03 am

Seems Sun3 suffers from this as well:
http://kisskb.ellerman.id.au/kisskb/buildresult/3022174/

<std_rant>
Funny how these things never show up in linux-next...
</std_rant>

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds
--

From: FUJITA Tomonori
Date: Thursday, August 12, 2010 - 11:45 pm

On Thu, 12 Aug 2010 11:03:37 +0200

Any chance to test the -mm tree on linux-next compile platform?
--

From: Stephen Rothwell
Date: Friday, August 13, 2010 - 12:27 am

Hi,


We do, I just have to remember to import the -mm tree manually.

See: http://kisskb.ellerman.id.au/kisskb/branch/14/

Even better would be to get most of the -mm tree into linux-next itself ... ;-)
-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/
From: FUJITA Tomonori
Date: Saturday, August 14, 2010 - 12:39 am

On Fri, 13 Aug 2010 17:27:52 +1000


Yeah, is there any way to push patches into both -mm and linux-next?
--

From: Stephen Rothwell
Date: Saturday, August 14, 2010 - 12:41 am

Hi,


-mm is based on linux-next so if something is in linux-next, it will be
in -mm (next time -mm is released).

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/
From: FUJITA Tomonori
Date: Thursday, August 12, 2010 - 11:45 pm

On Thu, 12 Aug 2010 10:07:01 +0200

Very sorry about this.

Acked-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>

Looks like we had better to clean up dma-mapping headers on both
HAS_DMA and !HAS_DMA though.
--

Previous thread: JMicron chipset update by Alex Dubov on Thursday, August 12, 2010 - 12:27 am. (1 message)

Next thread: [patch] mfd: snprintf() returns largish values by Dan Carpenter on Thursday, August 12, 2010 - 12:50 am. (2 messages)