Subject: Re: linux-next: async_tx tree build failure

From: Dan Williams <[email-masked]>
Date: Wed, 22 Jul 2009 21:33:40 -0700

On Wed, 2009-07-22 at 19:00 -0700, Stephen Rothwell wrote:
> Hi Dan,
> 
> Since next-20090623, the linux-next build (i386 allmodconfig) has failed
> like this:
> 
> crypto/async_tx/async_xor.c: In function ‘async_xor_init’:
> crypto/async_tx/async_xor.c:310: error: size of array ‘type name’ is negative
> 
> The failing line is this:
> 
> 	BUILD_BUG_ON(sizeof(dma_addr_t) > sizeof(struct page *));
> 
> in async_xor_init() introduced by commit
> 0036731c88fdb5bf4f04a796a30b5e445fc57f54 ("async_tx: kill tx_set_src and
> tx_set_dest methods") in Feb, 2008.
> 
> Bisecting in the next-20090623 tree pointed to commit
> 3c30a9ca1fb95214e60e3bf43957971df6668033 ("dmaengine: move HIGHMEM64G
> restriction to ASYNC_TX_DMA") from the async_tx tree.  This is now commit
> f3c56e57f66a73a241299dbec1ad55491aa0e403.

Gah, yes that commit was half baked.  I have pushed out an updated tree
with the following fix:

diff --git a/crypto/async_tx/async_xor.c b/crypto/async_tx/async_xor.c
index 95fe2c8..90dd3f8 100644
--- a/crypto/async_tx/async_xor.c
+++ b/crypto/async_tx/async_xor.c
@@ -300,7 +300,7 @@ EXPORT_SYMBOL_GPL(async_xor_zero_sum);
 
 static int __init async_xor_init(void)
 {
-	#ifdef CONFIG_DMA_ENGINE
+	#ifdef CONFIG_ASYNC_TX_DMA
 	/* To conserve stack space the input src_list (array of page pointers)
 	 * is reused to hold the array of dma addresses passed to the driver.
 	 * This conversion is only possible when dma_addr_t is less than the

Thanks,
Dan