Re: [PATCH 1/4] lib: Update LZ4 compressor module

From: kbuild test robot
Date: Sat Jan 21 2017 - 11:17:40 EST


Hi Sven,

[auto build test ERROR on linus/master]
[also build test ERROR on v4.10-rc4 next-20170120]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url: https://github.com/0day-ci/linux/commits/Sven-Schmidt/Update-LZ4-compressor-module/20170121-231418
config: x86_64-lkp (attached as .config)
compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901
reproduce:
# save the attached .config to linux build tree
make ARCH=x86_64

Note: the linux-review/Sven-Schmidt/Update-LZ4-compressor-module/20170121-231418 HEAD 0472409e2a1c442b51502961aa6d83b866218953 builds fine.
It only hurts bisectibility.

All errors (new ones prefixed by >>):

In file included from lib/decompress_unlz4.c:19:0:
lib/decompress_unlz4.c: In function 'unlz4':
>> lib/decompress_unlz4.c:75:22: error: implicit declaration of function 'lz4_compressbound' [-Werror=implicit-function-declaration]
inp = large_malloc(lz4_compressbound(uncomp_chunksize));
^
include/linux/decompress/mm.h:83:33: note: in definition of macro 'large_malloc'
#define large_malloc(a) vmalloc(a)
^
cc1: some warnings being treated as errors

vim +/lz4_compressbound +75 lib/decompress_unlz4.c

e76e1fdf Kyungsik Lee 2013-07-08 13 #include "lz4/lz4_decompress.c"
e76e1fdf Kyungsik Lee 2013-07-08 14 #else
e76e1fdf Kyungsik Lee 2013-07-08 15 #include <linux/decompress/unlz4.h>
e76e1fdf Kyungsik Lee 2013-07-08 16 #endif
e76e1fdf Kyungsik Lee 2013-07-08 17 #include <linux/types.h>
e76e1fdf Kyungsik Lee 2013-07-08 18 #include <linux/lz4.h>
e76e1fdf Kyungsik Lee 2013-07-08 @19 #include <linux/decompress/mm.h>
e76e1fdf Kyungsik Lee 2013-07-08 20 #include <linux/compiler.h>
e76e1fdf Kyungsik Lee 2013-07-08 21
e76e1fdf Kyungsik Lee 2013-07-08 22 #include <asm/unaligned.h>
e76e1fdf Kyungsik Lee 2013-07-08 23
e76e1fdf Kyungsik Lee 2013-07-08 24 /*
e76e1fdf Kyungsik Lee 2013-07-08 25 * Note: Uncompressed chunk size is used in the compressor side
e76e1fdf Kyungsik Lee 2013-07-08 26 * (userspace side for compression).
e76e1fdf Kyungsik Lee 2013-07-08 27 * It is hardcoded because there is not proper way to extract it
e76e1fdf Kyungsik Lee 2013-07-08 28 * from the binary stream which is generated by the preliminary
e76e1fdf Kyungsik Lee 2013-07-08 29 * version of LZ4 tool so far.
e76e1fdf Kyungsik Lee 2013-07-08 30 */
e76e1fdf Kyungsik Lee 2013-07-08 31 #define LZ4_DEFAULT_UNCOMPRESSED_CHUNK_SIZE (8 << 20)
e76e1fdf Kyungsik Lee 2013-07-08 32 #define ARCHIVE_MAGICNUMBER 0x184C2102
e76e1fdf Kyungsik Lee 2013-07-08 33
d97b07c5 Yinghai Lu 2014-08-08 34 STATIC inline int INIT unlz4(u8 *input, long in_len,
d97b07c5 Yinghai Lu 2014-08-08 35 long (*fill)(void *, unsigned long),
d97b07c5 Yinghai Lu 2014-08-08 36 long (*flush)(void *, unsigned long),
d97b07c5 Yinghai Lu 2014-08-08 37 u8 *output, long *posp,
e76e1fdf Kyungsik Lee 2013-07-08 38 void (*error) (char *x))
e76e1fdf Kyungsik Lee 2013-07-08 39 {
e76e1fdf Kyungsik Lee 2013-07-08 40 int ret = -1;
e76e1fdf Kyungsik Lee 2013-07-08 41 size_t chunksize = 0;
e76e1fdf Kyungsik Lee 2013-07-08 42 size_t uncomp_chunksize = LZ4_DEFAULT_UNCOMPRESSED_CHUNK_SIZE;
e76e1fdf Kyungsik Lee 2013-07-08 43 u8 *inp;
e76e1fdf Kyungsik Lee 2013-07-08 44 u8 *inp_start;
e76e1fdf Kyungsik Lee 2013-07-08 45 u8 *outp;
d97b07c5 Yinghai Lu 2014-08-08 46 long size = in_len;
e76e1fdf Kyungsik Lee 2013-07-08 47 #ifdef PREBOOT
e76e1fdf Kyungsik Lee 2013-07-08 48 size_t out_len = get_unaligned_le32(input + in_len);
e76e1fdf Kyungsik Lee 2013-07-08 49 #endif
e76e1fdf Kyungsik Lee 2013-07-08 50 size_t dest_len;
e76e1fdf Kyungsik Lee 2013-07-08 51
e76e1fdf Kyungsik Lee 2013-07-08 52
e76e1fdf Kyungsik Lee 2013-07-08 53 if (output) {
e76e1fdf Kyungsik Lee 2013-07-08 54 outp = output;
e76e1fdf Kyungsik Lee 2013-07-08 55 } else if (!flush) {
e76e1fdf Kyungsik Lee 2013-07-08 56 error("NULL output pointer and no flush function provided");
e76e1fdf Kyungsik Lee 2013-07-08 57 goto exit_0;
e76e1fdf Kyungsik Lee 2013-07-08 58 } else {
e76e1fdf Kyungsik Lee 2013-07-08 59 outp = large_malloc(uncomp_chunksize);
e76e1fdf Kyungsik Lee 2013-07-08 60 if (!outp) {
e76e1fdf Kyungsik Lee 2013-07-08 61 error("Could not allocate output buffer");
e76e1fdf Kyungsik Lee 2013-07-08 62 goto exit_0;
e76e1fdf Kyungsik Lee 2013-07-08 63 }
e76e1fdf Kyungsik Lee 2013-07-08 64 }
e76e1fdf Kyungsik Lee 2013-07-08 65
e76e1fdf Kyungsik Lee 2013-07-08 66 if (input && fill) {
e76e1fdf Kyungsik Lee 2013-07-08 67 error("Both input pointer and fill function provided,");
e76e1fdf Kyungsik Lee 2013-07-08 68 goto exit_1;
e76e1fdf Kyungsik Lee 2013-07-08 69 } else if (input) {
e76e1fdf Kyungsik Lee 2013-07-08 70 inp = input;
e76e1fdf Kyungsik Lee 2013-07-08 71 } else if (!fill) {
e76e1fdf Kyungsik Lee 2013-07-08 72 error("NULL input pointer and missing fill function");
e76e1fdf Kyungsik Lee 2013-07-08 73 goto exit_1;
e76e1fdf Kyungsik Lee 2013-07-08 74 } else {
e76e1fdf Kyungsik Lee 2013-07-08 @75 inp = large_malloc(lz4_compressbound(uncomp_chunksize));
e76e1fdf Kyungsik Lee 2013-07-08 76 if (!inp) {
e76e1fdf Kyungsik Lee 2013-07-08 77 error("Could not allocate input buffer");
e76e1fdf Kyungsik Lee 2013-07-08 78 goto exit_1;

:::::: The code at line 75 was first introduced by commit
:::::: e76e1fdfa8f8dc1ea6699923cf5d92b5bee9c936 lib: add support for LZ4-compressed kernel

:::::: TO: Kyungsik Lee <kyungsik.lee@xxxxxxx>
:::::: CC: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation

Attachment: .config.gz
Description: application/gzip