The attached patch fixes my issue, but am not sure if it is correct or will cause problems else where.
diff -Naurp linux-2.6.28.7.a/arch/arm/include/asm/scatterlist.h linux-2.6.28.7.b/arch/arm/include/asm/scatterlist.h --- linux-2.6.28.7.a/arch/arm/include/asm/scatterlist.h 2009-02-20 23:41:27.000000000 +0100 +++ linux-2.6.28.7.b/arch/arm/include/asm/scatterlist.h 2009-02-25 16:19:59.000000000 +0100 @@ -24,4 +24,6 @@ struct scatterlist { #define sg_dma_address(sg) ((sg)->dma_address) #define sg_dma_len(sg) ((sg)->length) +#define ARCH_HAS_SG_CHAIN + #endif /* _ASMARM_SCATTERLIST_H */ diff -Naurp linux-2.6.28.7.a/crypto/eseqiv.c linux-2.6.28.7.b/crypto/eseqiv.c --- linux-2.6.28.7.a/crypto/eseqiv.c 2009-02-20 23:41:27.000000000 +0100 +++ linux-2.6.28.7.b/crypto/eseqiv.c 2009-02-25 16:17:09.000000000 +0100 @@ -17,7 +17,6 @@ #include <crypto/internal/skcipher.h> #include <crypto/rng.h> -#include <crypto/scatterwalk.h> #include <linux/err.h> #include <linux/init.h> #include <linux/kernel.h> @@ -67,11 +66,11 @@ static void eseqiv_chain(struct scatterl { if (chain) { head->length += sg->length; - sg = scatterwalk_sg_next(sg); + sg = sg_next(sg); } if (sg) - scatterwalk_sg_chain(head, 2, sg); + sg_chain(head, 2, sg); else sg_mark_end(head); }