[PATCH 2/2] fix lzo usage on 64bit systems

Sebastian Andrzej Siewior sebastian at breakpoint.cc
Mon Feb 23 16:38:54 EST 2009


the compress size parameter in lzo is defined in the header file as lzo_uint.
This looks very much like uint32_t, I know, but is defined as unsigned long.
So on 64bit LE systems we zero some bytes near by and on BE systems we
get a size of zero.

Signed-off-by: Sebastian Andrzej Siewior <sebastian at breakpoint.cc>
---
 compr_lzo.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/compr_lzo.c b/compr_lzo.c
index a0bb362..3d7dad7 100644
--- a/compr_lzo.c
+++ b/compr_lzo.c
@@ -48,7 +48,7 @@ static void *lzo_compress_buf;
 static int jffs2_lzo_cmpr(unsigned char *data_in, unsigned char *cpage_out,
 			  uint32_t *sourcelen, uint32_t *dstlen, void *model)
 {
-	uint32_t compress_size;
+	lzo_uint compress_size;
 	int ret;
 
 	ret = lzo1x_999_compress(data_in, *sourcelen, lzo_compress_buf, &compress_size, lzo_mem);
@@ -69,7 +69,7 @@ static int jffs2_lzo_decompress(unsigned char *data_in, unsigned char *cpage_out
 				 uint32_t srclen, uint32_t destlen, void *model)
 {
 	int ret;
-	uint32_t dl;
+	lzo_uint dl;
 
 	ret = lzo1x_decompress_safe(data_in,srclen,cpage_out,&dl,NULL);
 
-- 
1.6.1.3




More information about the linux-mtd mailing list