22 Sep, 2011

1 commit

  • xz_dec_run() could incorrectly return XZ_BUF_ERROR if all of the
    following was true:

    - The caller knows how many bytes of output to expect and only provides
    that much output space.

    - When the last output bytes are decoded, the caller-provided input
    buffer ends right before the LZMA2 end of payload marker. So LZMA2
    won't provide more output anymore, but it won't know it yet and thus
    won't return XZ_STREAM_END yet.

    - A BCJ filter is in use and it hasn't left any unfiltered bytes in the
    temp buffer. This can happen with any BCJ filter, but in practice
    it's more likely with filters other than the x86 BCJ.

    This fixes where
    Squashfs thinks that a valid file system is corrupt.

    This also fixes a similar bug in single-call mode where the uncompressed
    size of a block using BCJ + LZMA2 was 0 bytes and caller provided no
    output space. Many empty .xz files don't contain any blocks and thus
    don't trigger this bug.

    This also tweaks a closely related detail: xz_dec_bcj_run() could call
    xz_dec_lzma2_run() to decode into temp buffer when it was known to be
    useless. This was harmless although it wasted a minuscule number of CPU
    cycles.

    Signed-off-by: Lasse Collin
    Cc: stable
    Signed-off-by: Linus Torvalds

    Lasse Collin
     

25 Jul, 2011

1 commit

  • is needed for min_t. The old version
    happened to work on x86 because
    indirectly includes , but it didn't
    work on ARM.

    includes so it's
    not necessary to include it explicitly anymore.

    Signed-off-by: Lasse Collin
    Cc: stable
    Signed-off-by: Linus Torvalds

    Lasse Collin
     

02 May, 2011

1 commit


21 Jan, 2011

1 commit

  • The meaning of CONFIG_EMBEDDED has long since been obsoleted; the option
    is used to configure any non-standard kernel with a much larger scope than
    only small devices.

    This patch renames the option to CONFIG_EXPERT in init/Kconfig and fixes
    references to the option throughout the kernel. A new CONFIG_EMBEDDED
    option is added that automatically selects CONFIG_EXPERT when enabled and
    can be used in the future to isolate options that should only be
    considered for embedded systems (RISC architectures, SLOB, etc).

    Calling the option "EXPERT" more accurately represents its intention: only
    expert users who understand the impact of the configuration changes they
    are making should enable it.

    Reviewed-by: Ingo Molnar
    Acked-by: David Woodhouse
    Signed-off-by: David Rientjes
    Cc: Greg KH
    Cc: "David S. Miller"
    Cc: Jens Axboe
    Cc: Arnd Bergmann
    Cc: Robin Holt
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Rientjes
     

14 Jan, 2011

1 commit

  • In userspace, the .lzma format has become mostly a legacy file format that
    got superseded by the .xz format. Similarly, LZMA Utils was superseded by
    XZ Utils.

    These patches add support for XZ decompression into the kernel. Most of
    the code is as is from XZ Embedded .
    It was written for the Linux kernel but is usable in other projects too.

    Advantages of XZ over the current LZMA code in the kernel:
    - Nice API that can be used by other kernel modules; it's
    not limited to kernel, initramfs, and initrd decompression.
    - Integrity check support (CRC32)
    - BCJ filters improve compression of executable code on
    certain architectures. These together with LZMA2 can
    produce a few percent smaller kernel or Squashfs images
    than plain LZMA without making the decompression slower.

    This patch: Add the main decompression code (xz_dec), testing module
    (xz_dec_test), wrapper script (xz_wrap.sh) for the xz command line tool,
    and documentation. The xz_dec module is enough to have a usable XZ
    decompressor e.g. for Squashfs.

    Signed-off-by: Lasse Collin
    Cc: "H. Peter Anvin"
    Cc: Alain Knaff
    Cc: Albin Tonnerre
    Cc: Phillip Lougher
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Lasse Collin