packages: kernel/kernel-patches.config, kernel/kernel.spec, kernel/kernel-s...

arekm arekm at pld-linux.org
Thu Jun 17 22:27:16 CEST 2010


Author: arekm                        Date: Thu Jun 17 20:27:16 2010 GMT
Module: packages                      Tag: HEAD
---- Log message:
- squashfs lzma is back

---- Files affected:
packages/kernel:
   kernel-patches.config (1.6 -> 1.7) , kernel.spec (1.791 -> 1.792) , kernel-squashfs-lzma.patch (1.4 -> 1.5) 

---- Diffs:

================================================================
Index: packages/kernel/kernel-patches.config
diff -u packages/kernel/kernel-patches.config:1.6 packages/kernel/kernel-patches.config:1.7
--- packages/kernel/kernel-patches.config:1.6	Mon May 31 22:28:15 2010
+++ packages/kernel/kernel-patches.config	Thu Jun 17 22:27:10 2010
@@ -34,7 +34,8 @@
 AUFS_HNOTIFY all=y
 AUFS_SP_IATTR all=y
 AUFS_STAT all=y
-AUFS_HINOTIFY all=y
+AUFS_HFSNOTIFY all=y
+AUFS_HINOTIFY all=n
 AUFS_EXPORT all=y
 AUFS_ROBR all=y
 AUFS_DLGT all=y

================================================================
Index: packages/kernel/kernel.spec
diff -u packages/kernel/kernel.spec:1.791 packages/kernel/kernel.spec:1.792
--- packages/kernel/kernel.spec:1.791	Mon May 31 22:26:55 2010
+++ packages/kernel/kernel.spec	Thu Jun 17 22:27:10 2010
@@ -257,6 +257,9 @@
 Patch55:	kernel-atm-vbr.patch
 Patch56:	kernel-atmdd.patch
 
+# https://trac.pentoo.ch/pentoo/export/1600/kernel/trunk/2.6/2.6.34/4305_sqlzma.patch
+Patch57:	kernel-squashfs-lzma.patch
+
 # http://synce.svn.sourceforge.net/svnroot/synce/trunk/patches/linux-2.6.22-rndis_host-wm5.patch
 Patch59:	kernel-rndis_host-wm5.patch
 
@@ -779,6 +782,9 @@
 %patch55 -p1
 %patch56 -p1
 
+# squashfs lzma support
+%patch57 -p1
+
 # kernel-rndis_host-wm5.patch
 %patch59 -p1
 
@@ -1593,6 +1599,9 @@
 All persons listed below can be reached at <cvs_login>@pld-linux.org
 
 $Log$
+Revision 1.792  2010/06/17 20:27:10  arekm
+- squashfs lzma is back
+
 Revision 1.791  2010/05/31 20:26:55  arekm
 - updated aufs2 patch
 

================================================================
Index: packages/kernel/kernel-squashfs-lzma.patch
diff -u /dev/null packages/kernel/kernel-squashfs-lzma.patch:1.5
--- /dev/null	Thu Jun 17 22:27:16 2010
+++ packages/kernel/kernel-squashfs-lzma.patch	Thu Jun 17 22:27:10 2010
@@ -0,0 +1,678 @@
+diff -Nru a/fs/squashfs/decompressor.c b/fs/squashfs/decompressor.c
+--- a/fs/squashfs/decompressor.c	2010-05-16 23:17:36.000000000 +0200
++++ b/fs/squashfs/decompressor.c	2010-05-17 14:57:45.271547099 +0200
+@@ -50,7 +50,11 @@
+ 
+ static const struct squashfs_decompressor *decompressor[] = {
+ 	&squashfs_zlib_comp_ops,
++#ifdef CONFIG_SQUASHFS_LZMA
++	&squashfs_lzma_comp_ops,
++#else
+ 	&squashfs_lzma_unsupported_comp_ops,
++#endif
+ 	&squashfs_lzo_unsupported_comp_ops,
+ 	&squashfs_unknown_comp_ops
+ };
+diff -Nru a/fs/squashfs/Kconfig b/fs/squashfs/Kconfig
+--- a/fs/squashfs/Kconfig	2010-05-16 23:17:36.000000000 +0200
++++ b/fs/squashfs/Kconfig	2010-05-17 15:13:49.807545765 +0200
+@@ -26,6 +26,12 @@
+ 
+ 	  If unsure, say N.
+ 
++config SQUASHFS_LZMA
++	bool "Include support for LZMA compressed file systems"
++	depends on SQUASHFS
++	select DECOMPRESS_LZMA
++	select DECOMPRESS_LZMA_NEEDED
++
+ config SQUASHFS_EMBEDDED
+ 
+ 	bool "Additional option for memory-constrained systems" 
+diff -Nru a/fs/squashfs/lzma_wrapper.c b/fs/squashfs/lzma_wrapper.c
+--- a/fs/squashfs/lzma_wrapper.c	1970-01-01 01:00:00.000000000 +0100
++++ b/fs/squashfs/lzma_wrapper.c	2010-05-17 15:15:12.637552661 +0200
+@@ -0,0 +1,152 @@
++/*
++ * Squashfs - a compressed read only filesystem for Linux
++ *
++ * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
++ * Phillip Lougher <phillip at lougher.demon.co.uk>
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License
++ * as published by the Free Software Foundation; either version 2,
++ * or (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
++ *
++ * lzma_wrapper.c
++ */
++
++#include <asm/unaligned.h>
++#include <linux/slab.h>
++#include <linux/buffer_head.h>
++#include <linux/mutex.h>
++#include <linux/vmalloc.h>
++#include <linux/decompress/unlzma.h>
++
++#include "squashfs_fs.h"
++#include "squashfs_fs_sb.h"
++#include "squashfs_fs_i.h"
++#include "squashfs.h"
++#include "decompressor.h"
++
++struct squashfs_lzma {
++	void	*input;
++	void	*output;
++};
++
++/* decompress_unlzma.c is currently non re-entrant... */
++DEFINE_MUTEX(lzma_mutex);
++
++/* decompress_unlzma.c doesn't provide any context in its callbacks... */
++static int lzma_error;
++
++static void error(char *m)
++{
++	ERROR("unlzma error: %s\n", m);
++	lzma_error = 1;
++}
++
++
++static void *lzma_init(struct squashfs_sb_info *msblk)
++{
++	struct squashfs_lzma *stream = kzalloc(sizeof(*stream), GFP_KERNEL);
++	if (stream == NULL)
++		goto failed;
++	stream->input = vmalloc(msblk->block_size);
++	if (stream->input == NULL)
++		goto failed;
++	stream->output = vmalloc(msblk->block_size);
++	if (stream->output == NULL)
++		goto failed2;
++
++	return stream;
++
++failed2:
++	vfree(stream->input);
++failed:
++	ERROR("failed to allocate lzma workspace\n");
++	kfree(stream);
++	return NULL;
++}
++
++
++static void lzma_free(void *strm)
++{
++	struct squashfs_lzma *stream = strm;
++
++	if (stream) {
++		vfree(stream->input);
++		vfree(stream->output);
++	}
++	kfree(stream);
++}
++
++
++static int lzma_uncompress(struct squashfs_sb_info *msblk, void **buffer,
++	struct buffer_head **bh, int b, int offset, int length, int srclength,
++	int pages)
++{
++	struct squashfs_lzma *stream = msblk->stream;
++	void *buff = stream->input;
++	int avail, i, bytes = length, res;
++
++	mutex_lock(&lzma_mutex);
++
++	for (i = 0; i < b; i++) {
++		wait_on_buffer(bh[i]);
++		if (!buffer_uptodate(bh[i]))
++			goto block_release;
++
++		avail = min(bytes, msblk->devblksize - offset);
++		memcpy(buff, bh[i]->b_data + offset, avail);
++		buff += avail;
++		bytes -= avail;
++		offset = 0;
++		put_bh(bh[i]);
++	}
++
++	lzma_error = 0;
++	res = unlzma(stream->input, length, NULL, NULL, stream->output, NULL,
++							error);
++	if (res || lzma_error)
++		goto failed;
++
++	/* uncompressed size is stored in the LZMA header (5 byte offset) */
++	res = bytes = get_unaligned_le32(stream->input + 5);
++	for (i = 0, buff = stream->output; bytes && i < pages; i++) {
++		avail = min_t(int, bytes, PAGE_CACHE_SIZE);
++		memcpy(buffer[i], buff, avail);
++		buff += avail;
++		bytes -= avail;
++	}
++	if (bytes)
++		goto failed;
++
++	mutex_unlock(&lzma_mutex);
++	return res;
++
++block_release:
++	for (; i < b; i++)
++		put_bh(bh[i]);
++
++failed:
++	mutex_unlock(&lzma_mutex);
++
++	ERROR("lzma decompression failed, data probably corrupt\n");
++	return -EIO;
++}
++
++const struct squashfs_decompressor squashfs_lzma_comp_ops = {
++	.init = lzma_init,
++	.free = lzma_free,
++	.decompress = lzma_uncompress,
++	.id = LZMA_COMPRESSION,
++	.name = "lzma",
++	.supported = 1
++};
++
+diff -Nru a/fs/squashfs/Makefile b/fs/squashfs/Makefile
+--- a/fs/squashfs/Makefile	2010-05-16 23:17:36.000000000 +0200
++++ b/fs/squashfs/Makefile	2010-05-17 14:57:45.270554026 +0200
+@@ -5,3 +5,4 @@
+ obj-$(CONFIG_SQUASHFS) += squashfs.o
+ squashfs-y += block.o cache.o dir.o export.o file.o fragment.o id.o inode.o
+ squashfs-y += namei.o super.o symlink.o zlib_wrapper.o decompressor.o
++squashfs-$(CONFIG_SQUASHFS_LZMA) += lzma_wrapper.o
+diff -Nru a/fs/squashfs/squashfs.h b/fs/squashfs/squashfs.h
+--- a/fs/squashfs/squashfs.h	2010-05-16 23:17:36.000000000 +0200
++++ b/fs/squashfs/squashfs.h	2010-05-17 14:57:45.310795600 +0200
+@@ -94,3 +94,6 @@
+ 
+ /* zlib_wrapper.c */
+ extern const struct squashfs_decompressor squashfs_zlib_comp_ops;
++
++/* lzma wrapper.c */
++extern const struct squashfs_decompressor squashfs_lzma_comp_ops;
+diff -Nru a/include/linux/decompress/bunzip2_mm.h b/include/linux/decompress/bunzip2_mm.h
+--- a/include/linux/decompress/bunzip2_mm.h	1970-01-01 01:00:00.000000000 +0100
++++ b/include/linux/decompress/bunzip2_mm.h	2010-05-17 15:14:15.255545839 +0200
+@@ -0,0 +1,13 @@
++#ifndef BUNZIP2_MM_H
++#define BUNZIP2_MM_H
++
++#ifdef STATIC
++/* Code active when included from pre-boot environment: */
++#define INIT
++#else
++/* Compile for initramfs/initrd code only */
++#define INIT __init
++static void(*error)(char *m);
++#endif
++
++#endif
+diff -Nru a/include/linux/decompress/inflate_mm.h b/include/linux/decompress/inflate_mm.h
+--- a/include/linux/decompress/inflate_mm.h	1970-01-01 01:00:00.000000000 +0100
++++ b/include/linux/decompress/inflate_mm.h	2010-05-17 15:14:15.255545839 +0200
+@@ -0,0 +1,13 @@
++#ifndef INFLATE_MM_H
++#define INFLATE_MM_H
++
++#ifdef STATIC
++/* Code active when included from pre-boot environment: */
++#define INIT
++#else
++/* Compile for initramfs/initrd code only */
++#define INIT __init
++static void(*error)(char *m);
++#endif
++
++#endif
+diff -Nru a/include/linux/decompress/mm.h b/include/linux/decompress/mm.h
+--- a/include/linux/decompress/mm.h	2010-05-16 23:17:36.000000000 +0200
++++ b/include/linux/decompress/mm.h	2010-05-17 15:14:15.259546209 +0200
+@@ -63,8 +63,6 @@
+ 
+ #define set_error_fn(x)
+ 
+-#define INIT
+-
+ #else /* STATIC */
+ 
+ /* Code active when compiled standalone for use when loading ramdisk: */
+@@ -84,10 +82,8 @@
+ #define large_malloc(a) vmalloc(a)
+ #define large_free(a) vfree(a)
+ 
+-static void(*error)(char *m);
+ #define set_error_fn(x) error = x;
+ 
+-#define INIT __init
+ #define STATIC
+ 
+ #include <linux/init.h>
+diff -Nru a/include/linux/decompress/unlzma_mm.h b/include/linux/decompress/unlzma_mm.h
+--- a/include/linux/decompress/unlzma_mm.h	1970-01-01 01:00:00.000000000 +0100
++++ b/include/linux/decompress/unlzma_mm.h	2010-05-17 15:13:10.802553245 +0200
+@@ -0,0 +1,20 @@
++#ifndef UNLZMA_MM_H
++#define UNLZMA_MM_H
++
++#ifdef STATIC
++
++/* Code active when included from pre-boot environment: */
++#define INIT
++
++#elif defined(CONFIG_DECOMPRESS_LZMA_NEEDED)
++
++/* Make it available to non initramfs/initrd code */
++#define INIT
++#include <linux/module.h>
++#else
++
++/* Compile for initramfs/initrd code only */
++#define INIT __init
++#endif
++
++#endif
+diff -Nru a/include/linux/decompress/unlzo_mm.h b/include/linux/decompress/unlzo_mm.h
+--- a/include/linux/decompress/unlzo_mm.h	1970-01-01 01:00:00.000000000 +0100
++++ b/include/linux/decompress/unlzo_mm.h	2010-05-17 15:14:15.259546209 +0200
+@@ -0,0 +1,13 @@
++#ifndef UNLZO_MM_H
++#define UNLZO_MM_H
++
++#ifdef STATIC
++/* Code active when included from pre-boot environment: */
++#define INIT
++#else
++/* Compile for initramfs/initrd code only */
++#define INIT __init
++static void(*error)(char *m);
++#endif
++
++#endif
+diff -Nru a/lib/decompress_bunzip2.c b/lib/decompress_bunzip2.c
+--- a/lib/decompress_bunzip2.c	2010-05-16 23:17:36.000000000 +0200
++++ b/lib/decompress_bunzip2.c	2010-05-17 15:13:10.812574144 +0200
+@@ -52,6 +52,7 @@
+ #include <linux/slab.h>
+ #endif /* STATIC */
+ 
++#include <linux/decompress/bunzip2_mm.h>
+ #include <linux/decompress/mm.h>
+ 
+ #ifndef INT_MAX
+diff -Nru a/lib/decompress_inflate.c b/lib/decompress_inflate.c
+--- a/lib/decompress_inflate.c	2010-05-16 23:17:36.000000000 +0200
++++ b/lib/decompress_inflate.c	2010-05-17 15:13:10.815573687 +0200
+@@ -23,6 +23,7 @@
+ 
+ #endif /* STATIC */
+ 
++#include <linux/decompress/inflate_mm.h>
+ #include <linux/decompress/mm.h>
+ 
+ #define GZIP_IOBUF_SIZE (16*1024)
+diff -Nru a/lib/decompress_unlzma.c b/lib/decompress_unlzma.c
+--- a/lib/decompress_unlzma.c	2010-05-16 23:17:36.000000000 +0200
++++ b/lib/decompress_unlzma.c	2010-05-17 15:14:15.260574202 +0200
+@@ -36,6 +36,7 @@
+ #include <linux/slab.h>
+ #endif /* STATIC */
+ 
++#include <linux/decompress/unlzma_mm.h>
+ #include <linux/decompress/mm.h>
+ 
+ #define	MIN(a, b) (((a) < (b)) ? (a) : (b))
+@@ -88,7 +89,7 @@
+ }
+ 
+ /* Called twice: once at startup and once in rc_normalize() */
+-static void INIT rc_read(struct rc *rc)
++static void INIT rc_read(struct rc *rc, void(*error)(char *x))
+ {
+ 	rc->buffer_size = rc->fill((char *)rc->buffer, LZMA_IOBUF_SIZE);
+ 	if (rc->buffer_size <= 0)
+@@ -115,13 +116,13 @@
+ 	rc->range = 0xFFFFFFFF;
+ }
+ 
+-static inline void INIT rc_init_code(struct rc *rc)
++static inline void INIT rc_init_code(struct rc *rc, void(*error)(char *x))
+ {
+ 	int i;
+ 
+ 	for (i = 0; i < 5; i++) {
+ 		if (rc->ptr >= rc->buffer_end)
+-			rc_read(rc);
++			rc_read(rc, error);
+ 		rc->code = (rc->code << 8) | *rc->ptr++;
+ 	}
+ }
+@@ -134,32 +135,33 @@
+ }
+ 
+ /* Called twice, but one callsite is in inline'd rc_is_bit_0_helper() */
+-static void INIT rc_do_normalize(struct rc *rc)
++static void INIT rc_do_normalize(struct rc *rc, void(*error)(char *x))
+ {
+ 	if (rc->ptr >= rc->buffer_end)
+-		rc_read(rc);
++		rc_read(rc, error);
+ 	rc->range <<= 8;
+ 	rc->code = (rc->code << 8) | *rc->ptr++;
+ }
+-static inline void INIT rc_normalize(struct rc *rc)
++static inline void INIT rc_normalize(struct rc *rc, void(*error)(char *x))
+ {
+ 	if (rc->range < (1 << RC_TOP_BITS))
+-		rc_do_normalize(rc);
++		rc_do_normalize(rc, error);
+ }
+ 
+ /* Called 9 times */
+ /* Why rc_is_bit_0_helper exists?
+  *Because we want to always expose (rc->code < rc->bound) to optimizer
+  */
+-static inline uint32_t INIT rc_is_bit_0_helper(struct rc *rc, uint16_t *p)
++static inline uint32_t INIT rc_is_bit_0_helper(struct rc *rc, uint16_t *p,
++						void (*error)(char *x))
+ {
+-	rc_normalize(rc);
++	rc_normalize(rc, error);
+ 	rc->bound = *p * (rc->range >> RC_MODEL_TOTAL_BITS);
+ 	return rc->bound;
+ }
+-static inline int INIT rc_is_bit_0(struct rc *rc, uint16_t *p)
++static inline int INIT rc_is_bit_0(struct rc *rc, uint16_t *p, void(*error)(char *x))
+ {
+-	uint32_t t = rc_is_bit_0_helper(rc, p);
++	uint32_t t = rc_is_bit_0_helper(rc, p, error);
+ 	return rc->code < t;
+ }
+ 
+@@ -177,9 +179,9 @@
+ }
+ 
+ /* Called 4 times in unlzma loop */
+-static int INIT rc_get_bit(struct rc *rc, uint16_t *p, int *symbol)
++static int INIT rc_get_bit(struct rc *rc, uint16_t *p, int *symbol, void(*error)(char *x))
+ {
+-	if (rc_is_bit_0(rc, p)) {
++	if (rc_is_bit_0(rc, p, error)) {
+ 		rc_update_bit_0(rc, p);
+ 		*symbol *= 2;
+ 		return 0;
+@@ -191,9 +193,9 @@
+ }
+ 
+ /* Called once */
+-static inline int INIT rc_direct_bit(struct rc *rc)
++static inline int INIT rc_direct_bit(struct rc *rc , void(*error)(char *x))
+ {
+-	rc_normalize(rc);
++	rc_normalize(rc, error);
+ 	rc->range >>= 1;
+ 	if (rc->code >= rc->range) {
+ 		rc->code -= rc->range;
+@@ -204,13 +206,14 @@
+ 
+ /* Called twice */
+ static inline void INIT
+-rc_bit_tree_decode(struct rc *rc, uint16_t *p, int num_levels, int *symbol)
++rc_bit_tree_decode(struct rc *rc, uint16_t *p, int num_levels, int *symbol,
++							void(*error)(char *x))
+ {
+ 	int i = num_levels;
+ 
+ 	*symbol = 1;
+ 	while (i--)
+-		rc_get_bit(rc, p + *symbol, symbol);
++		rc_get_bit(rc, p + *symbol, symbol, error);
+ 	*symbol -= 1 << num_levels;
+ }
+ 
+@@ -347,7 +350,8 @@
+ static inline void INIT process_bit0(struct writer *wr, struct rc *rc,
+ 				     struct cstate *cst, uint16_t *p,
+ 				     int pos_state, uint16_t *prob,
+-				     int lc, uint32_t literal_pos_mask) {
++				     int lc, uint32_t literal_pos_mask,
++				     void(*error)(char *x)) {
+ 	int mi = 1;
+ 	rc_update_bit_0(rc, prob);
+ 	prob = (p + LZMA_LITERAL +
+@@ -365,7 +369,7 @@
+ 			match_byte <<= 1;
+ 			bit = match_byte & 0x100;
+ 			prob_lit = prob + 0x100 + bit + mi;
+-			if (rc_get_bit(rc, prob_lit, &mi)) {
++			if (rc_get_bit(rc, prob_lit, &mi, error)) {
+ 				if (!bit)
+ 					break;
+ 			} else {
+@@ -376,7 +380,7 @@
+ 	}
+ 	while (mi < 0x100) {
+ 		uint16_t *prob_lit = prob + mi;
+-		rc_get_bit(rc, prob_lit, &mi);
++		rc_get_bit(rc, prob_lit, &mi, error);
+ 	}
+ 	write_byte(wr, mi);
+ 	if (cst->state < 4)
+@@ -389,7 +393,8 @@
+ 
+ static inline void INIT process_bit1(struct writer *wr, struct rc *rc,
+ 					    struct cstate *cst, uint16_t *p,
+-					    int pos_state, uint16_t *prob) {
++					    int pos_state, uint16_t *prob,
++					    void(*error)(char *x)) {
+   int offset;
+ 	uint16_t *prob_len;
+ 	int num_bits;
+@@ -397,7 +402,7 @@
+ 
+ 	rc_update_bit_1(rc, prob);
+ 	prob = p + LZMA_IS_REP + cst->state;
+-	if (rc_is_bit_0(rc, prob)) {
++	if (rc_is_bit_0(rc, prob, error)) {
+ 		rc_update_bit_0(rc, prob);
+ 		cst->rep3 = cst->rep2;
+ 		cst->rep2 = cst->rep1;
+@@ -407,13 +412,13 @@
+ 	} else {
+ 		rc_update_bit_1(rc, prob);
+ 		prob = p + LZMA_IS_REP_G0 + cst->state;
+-		if (rc_is_bit_0(rc, prob)) {
++		if (rc_is_bit_0(rc, prob, error)) {
+ 			rc_update_bit_0(rc, prob);
+ 			prob = (p + LZMA_IS_REP_0_LONG
+ 				+ (cst->state <<
+ 				   LZMA_NUM_POS_BITS_MAX) +
+ 				pos_state);
+-			if (rc_is_bit_0(rc, prob)) {
++			if (rc_is_bit_0(rc, prob, error)) {
+ 				rc_update_bit_0(rc, prob);
+ 
+ 				cst->state = cst->state < LZMA_NUM_LIT_STATES ?
+@@ -428,13 +433,13 @@
+ 
+ 			rc_update_bit_1(rc, prob);
+ 			prob = p + LZMA_IS_REP_G1 + cst->state;
+-			if (rc_is_bit_0(rc, prob)) {
++			if (rc_is_bit_0(rc, prob, error)) {
+ 				rc_update_bit_0(rc, prob);
+ 				distance = cst->rep1;
+ 			} else {
+ 				rc_update_bit_1(rc, prob);
+ 				prob = p + LZMA_IS_REP_G2 + cst->state;
+-				if (rc_is_bit_0(rc, prob)) {
++				if (rc_is_bit_0(rc, prob, error)) {
+ 					rc_update_bit_0(rc, prob);
+ 					distance = cst->rep2;
+ 				} else {
+@@ -452,7 +457,7 @@
+ 	}
+ 
+ 	prob_len = prob + LZMA_LEN_CHOICE;
+-	if (rc_is_bit_0(rc, prob_len)) {
++	if (rc_is_bit_0(rc, prob_len, error)) {
+ 		rc_update_bit_0(rc, prob_len);
+ 		prob_len = (prob + LZMA_LEN_LOW
+ 			    + (pos_state <<
+@@ -462,7 +467,7 @@
+ 	} else {
+ 		rc_update_bit_1(rc, prob_len);
+ 		prob_len = prob + LZMA_LEN_CHOICE_2;
+-		if (rc_is_bit_0(rc, prob_len)) {
++		if (rc_is_bit_0(rc, prob_len, error)) {
+ 			rc_update_bit_0(rc, prob_len);
+ 			prob_len = (prob + LZMA_LEN_MID
+ 				    + (pos_state <<
<<Diff was trimmed, longer than 597 lines>>

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/kernel/kernel-patches.config?r1=1.6&r2=1.7&f=u
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/kernel/kernel.spec?r1=1.791&r2=1.792&f=u
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/kernel/kernel-squashfs-lzma.patch?r1=1.4&r2=1.5&f=u



More information about the pld-cvs-commit mailing list