Browse Source

lib: correct 842 decompress for 32 bit

Avoid 64 bit mod operation, which won't work on 32 bit systems.
Simple subtraction can be used instead in this case.

Reported-By: Fengguang Wu <fengguang.wu@intel.com>
Signed-off-by: Dan Streetman <ddstreet@ieee.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Dan Streetman 10 years ago
parent
commit
ca7fc7e962
1 changed files with 1 additions and 1 deletions
  1. 1 1
      lib/842/842_decompress.c

+ 1 - 1
lib/842/842_decompress.c

@@ -185,7 +185,7 @@ static int __do_index(struct sw842_param *p, u8 size, u8 bits, u64 fsize)
 		/* this is where the current fifo is */
 		/* this is where the current fifo is */
 		u64 section = round_down(total, fsize);
 		u64 section = round_down(total, fsize);
 		/* the current pos in the fifo */
 		/* the current pos in the fifo */
-		u64 pos = total % fsize;
+		u64 pos = total - section;
 
 
 		/* if the offset is past/at the pos, we need to
 		/* if the offset is past/at the pos, we need to
 		 * go back to the last fifo section
 		 * go back to the last fifo section