25 Aug, 2020

1 commit

  • The following build error for powerpc64 was reported by Nathan Chancellor:

    "$ scripts/config --file arch/powerpc/configs/powernv_defconfig -e KERNEL_XZ

    $ make -skj"$(nproc)" ARCH=powerpc CROSS_COMPILE=powerpc64le-linux- distclean powernv_defconfig zImage
    ...
    In file included from arch/powerpc/boot/../../../lib/decompress_unxz.c:234,
    from arch/powerpc/boot/decompress.c:38:
    arch/powerpc/boot/../../../lib/xz/xz_dec_stream.c: In function 'dec_main':
    arch/powerpc/boot/../../../lib/xz/xz_dec_stream.c:586:4: error: 'fallthrough' undeclared (first use in this function)
    586 | fallthrough;
    | ^~~~~~~~~~~

    This will end up affecting distribution configurations such as Debian
    and OpenSUSE according to my testing. I am not sure what the solution
    is, the PowerPC wrapper does not set -D__KERNEL__ so I am not sure
    that compiler_attributes.h can be safely included."

    In order to avoid these sort of problems, it seems that the best
    solution is to use /* fall through */ comments instead of the
    fallthrough pseudo-keyword macro in lib/, for now.

    Reported-by: Nathan Chancellor
    Fixes: df561f6688fe ("treewide: Use fallthrough pseudo-keyword")
    Signed-off-by: Gustavo A. R. Silva
    Reviewed-and-tested-by: Nathan Chancellor
    Signed-off-by: Linus Torvalds

    Gustavo A. R. Silva
     

24 Aug, 2020

1 commit

  • Replace the existing /* fall through */ comments and its variants with
    the new pseudo-keyword macro fallthrough[1]. Also, remove unnecessary
    fall-through markings when it is the case.

    [1] https://www.kernel.org/doc/html/v5.7/process/deprecated.html?highlight=fallthrough#implicit-switch-case-fall-through

    Signed-off-by: Gustavo A. R. Silva

    Gustavo A. R. Silva
     

13 Aug, 2020

1 commit

  • Rationale:
    Reduces attack surface on kernel devs opening the links for MITM
    as HTTPS traffic is much harder to manipulate.

    Signed-off-by: Alexander A. Klimov
    Signed-off-by: Andrew Morton
    Acked-by: Coly Li [crc64.c]
    Link: http://lkml.kernel.org/r/20200726112154.16510-1-grandmaster@al2klimov.de
    Signed-off-by: Linus Torvalds

    Alexander A. Klimov
     

20 Jun, 2020

1 commit

  • There are several files that I was unable to find a proper place
    for them, and 3 ones that are still in plain old text format.

    Let's place those stuff behind the carpet, as we'd like to keep the
    root directory clean.

    We can later discuss and move those into better places.

    Signed-off-by: Mauro Carvalho Chehab
    Link: https://lore.kernel.org/r/11bd0d75e65a874f7c276a0aeab0fe13f3376f5f.1592203650.git.mchehab+huawei@kernel.org
    Signed-off-by: Jonathan Corbet

    Mauro Carvalho Chehab
     

16 Nov, 2019

1 commit

  • s->dict.allocated was initialized to 0 but never set after a successful
    allocation, thus the code always thought that the dictionary buffer has
    to be reallocated.

    Link: http://lkml.kernel.org/r/20191104185107.3b6330df@tukaani.org
    Signed-off-by: Lasse Collin
    Reported-by: Yu Sun
    Acked-by: Daniel Walker
    Cc: "Yixia Si (yisi)"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Lasse Collin
     

21 May, 2019

1 commit


02 Oct, 2018

1 commit

  • This fixes a regression introduced by faa16bc404d72a5 ("lib: Use
    existing define with polynomial").

    The cleanup added a dependency on include/linux, which broke the PowerPC
    boot wrapper/decompresser when KERNEL_XZ is enabled:

    BOOTCC arch/powerpc/boot/decompress.o
    In file included from arch/powerpc/boot/../../../lib/decompress_unxz.c:233,
    from arch/powerpc/boot/decompress.c:42:
    arch/powerpc/boot/../../../lib/xz/xz_crc32.c:18:10: fatal error:
    linux/crc32poly.h: No such file or directory
    #include
    ^~~~~~~~~~~~~~~~~~~

    The powerpc decompresser is a hairy corner of the kernel. Even while building
    a 64-bit kernel it needs to build a 32-bit binary and therefore avoid including
    files from include/linux.

    This allows users of the xz library to avoid including headers from
    'include/linux/' while still achieving the cleanup of the magic number.

    Fixes: faa16bc404d72a5 ("lib: Use existing define with polynomial")
    Reported-by: Meelis Roos
    Reported-by: kbuild test robot
    Suggested-by: Christophe LEROY
    Signed-off-by: Joel Stanley
    Tested-by: Meelis Roos
    Signed-off-by: Michael Ellerman

    Joel Stanley
     

27 Jul, 2018

1 commit


12 Oct, 2017

1 commit


05 Jun, 2014

2 commits


14 Mar, 2013

1 commit

  • Commit 5dc49c75a26b ("decompressors: make the default XZ_DEC_* config
    match the selected architecture") added

    default y if POWERPC

    to lib/xz/Kconfig. But there is no Kconfig symbol POWERPC. The most
    general Kconfig symbol for the powerpc architecture is PPC. So let's
    use that.

    Signed-off-by: Paul Bolle
    Cc: Florian Fainelli
    Cc: Lasse Collin
    Cc: Benjamin Herrenschmidt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Paul Bolle
     

22 Feb, 2013

3 commits


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