:::::: :::::: Manual check reason: "low confidence static check first_new_problem: fs/jffs2/gc.c:846:3: warning: Argument to kfree() is the address of the local variable 'dev', which is not memory allocated by malloc() [clang-analyzer-unix.Malloc]" ::::::
CC: [email protected] CC: [email protected] BCC: [email protected] CC: [email protected] TO: Chris Down <[email protected]> CC: Petr Mladek <[email protected]> tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: ff6992735ade75aae3e35d16b17da1008d753d28 commit: 337015573718b161891a3473d25f59273f2e626b printk: Userspace format indexing support date: 12 months ago :::::: branch date: 5 hours ago :::::: commit date: 12 months ago config: s390-randconfig-c005-20220715 (https://download.01.org/0day-ci/archive/20220718/[email protected]/config) compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 2da550140aa98cf6a3e96417c87f1e89e3a26047) reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # install s390 cross compiling tool for clang build # apt-get install binutils-s390x-linux-gnu # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=337015573718b161891a3473d25f59273f2e626b git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git git fetch --no-tags linus master git checkout 337015573718b161891a3473d25f59273f2e626b # save the config file COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=s390 clang-analyzer If you fix the issue, kindly add following tag where applicable Reported-by: kernel test robot <[email protected]> clang-analyzer warnings: (new ones prefixed by >>) fs/jffs2/gc.c:310:2: note: 0 is < 1 jffs2_dbg(1, "Going to garbage collect node at 0x%08x\n", ^ fs/jffs2/debug.h:69:6: note: expanded from macro 'jffs2_dbg' if (CONFIG_JFFS2_FS_DEBUG >= level) \ ^~~~~~~~~~~~~~~~~~~~~ ./include/generated/autoconf.h:384:31: note: expanded from macro 'CONFIG_JFFS2_FS_DEBUG' #define CONFIG_JFFS2_FS_DEBUG 0 ^ fs/jffs2/gc.c:310:2: note: Taking false branch jffs2_dbg(1, "Going to garbage collect node at 0x%08x\n", ^ fs/jffs2/debug.h:69:2: note: expanded from macro 'jffs2_dbg' if (CONFIG_JFFS2_FS_DEBUG >= level) \ ^ fs/jffs2/gc.c:310:2: note: Loop condition is false. Exiting loop jffs2_dbg(1, "Going to garbage collect node at 0x%08x\n", ^ fs/jffs2/debug.h:67:37: note: expanded from macro 'jffs2_dbg' #define jffs2_dbg(level, fmt, ...) \ ^ fs/jffs2/gc.c:313:6: note: Assuming field 'next_in_ino' is non-null if (!raw->next_in_ino) { ^~~~~~~~~~~~~~~~~ fs/jffs2/gc.c:313:2: note: Taking false branch if (!raw->next_in_ino) { ^ fs/jffs2/gc.c:332:6: note: Assuming field 'class' is not equal to RAWNODE_CLASS_XATTR_DATUM if (ic->class == RAWNODE_CLASS_XATTR_DATUM ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ fs/jffs2/gc.c:332:6: note: Left side of '||' is false fs/jffs2/gc.c:333:9: note: Assuming field 'class' is not equal to RAWNODE_CLASS_XATTR_REF || ic->class == RAWNODE_CLASS_XATTR_REF) { ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ fs/jffs2/gc.c:332:2: note: Taking false branch if (ic->class == RAWNODE_CLASS_XATTR_DATUM ^ fs/jffs2/gc.c:352:2: note: 0 is < 1 jffs2_dbg(1, "%s(): collecting from block @0x%08x. Node @0x%08x(%d), ino #%u\n", ^ fs/jffs2/debug.h:69:6: note: expanded from macro 'jffs2_dbg' if (CONFIG_JFFS2_FS_DEBUG >= level) \ ^~~~~~~~~~~~~~~~~~~~~ ./include/generated/autoconf.h:384:31: note: expanded from macro 'CONFIG_JFFS2_FS_DEBUG' #define CONFIG_JFFS2_FS_DEBUG 0 ^ fs/jffs2/gc.c:352:2: note: Taking false branch jffs2_dbg(1, "%s(): collecting from block @0x%08x. Node @0x%08x(%d), ino #%u\n", ^ fs/jffs2/debug.h:69:2: note: expanded from macro 'jffs2_dbg' if (CONFIG_JFFS2_FS_DEBUG >= level) \ ^ fs/jffs2/gc.c:352:2: note: Loop condition is false. Exiting loop jffs2_dbg(1, "%s(): collecting from block @0x%08x. Node @0x%08x(%d), ino #%u\n", ^ fs/jffs2/debug.h:67:37: note: expanded from macro 'jffs2_dbg' #define jffs2_dbg(level, fmt, ...) \ ^ fs/jffs2/gc.c:365:2: note: Control jumps to 'case 5:' at line 397 switch(ic->state) { ^ fs/jffs2/gc.c:405:3: note: 0 is < 1 jffs2_dbg(1, "%s(): waiting for ino #%u in state %d\n", ^ fs/jffs2/debug.h:69:6: note: expanded from macro 'jffs2_dbg' if (CONFIG_JFFS2_FS_DEBUG >= level) \ ^~~~~~~~~~~~~~~~~~~~~ ./include/generated/autoconf.h:384:31: note: expanded from macro 'CONFIG_JFFS2_FS_DEBUG' #define CONFIG_JFFS2_FS_DEBUG 0 ^ fs/jffs2/gc.c:405:3: note: Taking false branch jffs2_dbg(1, "%s(): waiting for ino #%u in state %d\n", ^ fs/jffs2/debug.h:69:2: note: expanded from macro 'jffs2_dbg' if (CONFIG_JFFS2_FS_DEBUG >= level) \ ^ fs/jffs2/gc.c:405:3: note: Loop condition is false. Exiting loop jffs2_dbg(1, "%s(): waiting for ino #%u in state %d\n", ^ fs/jffs2/debug.h:67:37: note: expanded from macro 'jffs2_dbg' #define jffs2_dbg(level, fmt, ...) \ ^ fs/jffs2/gc.c:407:3: note: Dereference of null pointer sleep_on_spinunlock(&c->inocache_wq, &c->inocache_lock); ^ fs/jffs2/os-linux.h:43:29: note: expanded from macro 'sleep_on_spinunlock' DECLARE_WAITQUEUE(__wait, current); \ ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~ arch/s390/include/asm/current.h:17:45: note: expanded from macro 'current' #define current ((struct task_struct *const)S390_lowcore.current_task) ^ arch/s390/include/asm/lowcore.h:200:22: note: expanded from macro 'S390_lowcore' #define S390_lowcore (*((struct lowcore *) 0)) ^ include/linux/wait.h:55:63: note: expanded from macro 'DECLARE_WAITQUEUE' struct wait_queue_entry name = __WAITQUEUE_INITIALIZER(name, tsk) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ include/linux/wait.h:50:13: note: expanded from macro '__WAITQUEUE_INITIALIZER' .private = tsk, \ ^~~ >> fs/jffs2/gc.c:846:3: warning: Argument to kfree() is the address of the >> local variable 'dev', which is not memory allocated by malloc() >> [clang-analyzer-unix.Malloc] kfree(mdata); ^ ~~~~~ fs/jffs2/gc.c:770:6: note: Assuming the condition is true if (S_ISBLK(JFFS2_F_I_MODE(f)) || ^ include/uapi/linux/stat.h:25:21: note: expanded from macro 'S_ISBLK' #define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK) ^~~~~~~~~~~~~~~~~~~~~~~~~ fs/jffs2/gc.c:770:33: note: Left side of '||' is true if (S_ISBLK(JFFS2_F_I_MODE(f)) || ^ fs/jffs2/gc.c:775:3: note: 0 is < 1 jffs2_dbg(1, "%s(): Writing %d bytes of kdev_t\n", ^ fs/jffs2/debug.h:69:6: note: expanded from macro 'jffs2_dbg' if (CONFIG_JFFS2_FS_DEBUG >= level) \ ^~~~~~~~~~~~~~~~~~~~~ ./include/generated/autoconf.h:384:31: note: expanded from macro 'CONFIG_JFFS2_FS_DEBUG' #define CONFIG_JFFS2_FS_DEBUG 0 ^ fs/jffs2/gc.c:775:3: note: Taking false branch jffs2_dbg(1, "%s(): Writing %d bytes of kdev_t\n", ^ fs/jffs2/debug.h:69:2: note: expanded from macro 'jffs2_dbg' if (CONFIG_JFFS2_FS_DEBUG >= level) \ ^ fs/jffs2/gc.c:775:3: note: Loop condition is false. Exiting loop jffs2_dbg(1, "%s(): Writing %d bytes of kdev_t\n", ^ fs/jffs2/debug.h:67:37: note: expanded from macro 'jffs2_dbg' #define jffs2_dbg(level, fmt, ...) \ ^ fs/jffs2/gc.c:798:6: note: Assuming 'ret' is 0 if (ret) { ^~~ fs/jffs2/gc.c:798:2: note: Taking false branch if (ret) { ^ fs/jffs2/gc.c:805:6: note: 'last_frag' is null if (last_frag) ^~~~~~~~~ fs/jffs2/gc.c:805:2: note: Taking false branch if (last_frag) ^ fs/jffs2/gc.c:824:25: note: Assuming '__UNIQUE_ID___x281' is <= '__UNIQUE_ID___y282' ri.atime = cpu_to_je32(JFFS2_F_I_ATIME(f)); ^ fs/jffs2/os-linux.h:40:28: note: expanded from macro 'JFFS2_F_I_ATIME' #define JFFS2_F_I_ATIME(f) I_SEC(OFNI_EDONI_2SFFJ(f)->i_atime) ^ fs/jffs2/os-linux.h:37:19: note: expanded from macro 'I_SEC' #define I_SEC(tv) JFFS2_CLAMP_TIME((tv).tv_sec) ^ fs/jffs2/os-linux.h:34:40: note: expanded from macro 'JFFS2_CLAMP_TIME' #define JFFS2_CLAMP_TIME(t) ((uint32_t)clamp_t(time64_t, (t), 0, U32_MAX)) ^ note: (skipping 6 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all) include/linux/minmax.h:38:14: note: expanded from macro '__careful_cmp' __cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op)) ^ include/linux/minmax.h:31:25: note: expanded from macro '__cmp_once' typeof(x) unique_x = (x); \ ^ fs/jffs2/nodelist.h:37:36: note: expanded from macro 'cpu_to_je32' #define cpu_to_je32(x) ((jint32_t){x}) ^ fs/jffs2/gc.c:824:25: note: '?' condition is false ri.atime = cpu_to_je32(JFFS2_F_I_ATIME(f)); ^ fs/jffs2/os-linux.h:40:28: note: expanded from macro 'JFFS2_F_I_ATIME' #define JFFS2_F_I_ATIME(f) I_SEC(OFNI_EDONI_2SFFJ(f)->i_atime) ^ fs/jffs2/os-linux.h:37:19: note: expanded from macro 'I_SEC' #define I_SEC(tv) JFFS2_CLAMP_TIME((tv).tv_sec) ^ fs/jffs2/os-linux.h:34:40: note: expanded from macro 'JFFS2_CLAMP_TIME' #define JFFS2_CLAMP_TIME(t) ((uint32_t)clamp_t(time64_t, (t), 0, U32_MAX)) ^ note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all) include/linux/minmax.h:38:3: note: expanded from macro '__careful_cmp' __cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op)) ^ include/linux/minmax.h:33:3: note: expanded from macro '__cmp_once' __cmp(unique_x, unique_y, op); }) ^ include/linux/minmax.h:28:26: note: expanded from macro '__cmp' #define __cmp(x, y, op) ((x) op (y) ? (x) : (y)) ^ fs/jffs2/gc.c:824:25: note: '__UNIQUE_ID___x283' is < '__UNIQUE_ID___y284' ri.atime = cpu_to_je32(JFFS2_F_I_ATIME(f)); ^ fs/jffs2/os-linux.h:40:28: note: expanded from macro 'JFFS2_F_I_ATIME' #define JFFS2_F_I_ATIME(f) I_SEC(OFNI_EDONI_2SFFJ(f)->i_atime) ^ fs/jffs2/os-linux.h:37:19: note: expanded from macro 'I_SEC' #define I_SEC(tv) JFFS2_CLAMP_TIME((tv).tv_sec) ^ fs/jffs2/os-linux.h:34:40: note: expanded from macro 'JFFS2_CLAMP_TIME' #define JFFS2_CLAMP_TIME(t) ((uint32_t)clamp_t(time64_t, (t), 0, U32_MAX)) ^ vim +/dev +846 fs/jffs2/gc.c ^1da177e4c3f415 Linus Torvalds 2005-04-16 757 ^1da177e4c3f415 Linus Torvalds 2005-04-16 758 static int jffs2_garbage_collect_metadata(struct jffs2_sb_info *c, struct jffs2_eraseblock *jeb, ^1da177e4c3f415 Linus Torvalds 2005-04-16 759 struct jffs2_inode_info *f, struct jffs2_full_dnode *fn) ^1da177e4c3f415 Linus Torvalds 2005-04-16 760 { ^1da177e4c3f415 Linus Torvalds 2005-04-16 761 struct jffs2_full_dnode *new_fn; ^1da177e4c3f415 Linus Torvalds 2005-04-16 762 struct jffs2_raw_inode ri; 8557fd51c22e4c2 Artem B. Bityuckiy 2005-04-09 763 struct jffs2_node_frag *last_frag; aef9ab47841af45 David Woodhouse 2006-05-19 764 union jffs2_device_node dev; 2e16cfca6e17ae3 David Woodhouse 2009-12-16 765 char *mdata = NULL; 2e16cfca6e17ae3 David Woodhouse 2009-12-16 766 int mdatalen = 0; 9fe4854cd1f6027 David Woodhouse 2006-05-23 767 uint32_t alloclen, ilen; ^1da177e4c3f415 Linus Torvalds 2005-04-16 768 int ret; ^1da177e4c3f415 Linus Torvalds 2005-04-16 769 ^1da177e4c3f415 Linus Torvalds 2005-04-16 770 if (S_ISBLK(JFFS2_F_I_MODE(f)) || ^1da177e4c3f415 Linus Torvalds 2005-04-16 771 S_ISCHR(JFFS2_F_I_MODE(f)) ) { ^1da177e4c3f415 Linus Torvalds 2005-04-16 772 /* For these, we don't actually need to read the old node */ aef9ab47841af45 David Woodhouse 2006-05-19 773 mdatalen = jffs2_encode_dev(&dev, JFFS2_F_I_RDEV(f)); ^1da177e4c3f415 Linus Torvalds 2005-04-16 774 mdata = (char *)&dev; 9c261b33a9c417c Joe Perches 2012-02-15 775 jffs2_dbg(1, "%s(): Writing %d bytes of kdev_t\n", 9c261b33a9c417c Joe Perches 2012-02-15 776 __func__, mdatalen); ^1da177e4c3f415 Linus Torvalds 2005-04-16 777 } else if (S_ISLNK(JFFS2_F_I_MODE(f))) { ^1da177e4c3f415 Linus Torvalds 2005-04-16 778 mdatalen = fn->size; ^1da177e4c3f415 Linus Torvalds 2005-04-16 779 mdata = kmalloc(fn->size, GFP_KERNEL); ^1da177e4c3f415 Linus Torvalds 2005-04-16 780 if (!mdata) { da320f055a88182 Joe Perches 2012-02-15 781 pr_warn("kmalloc of mdata failed in jffs2_garbage_collect_metadata()\n"); ^1da177e4c3f415 Linus Torvalds 2005-04-16 782 return -ENOMEM; ^1da177e4c3f415 Linus Torvalds 2005-04-16 783 } ^1da177e4c3f415 Linus Torvalds 2005-04-16 784 ret = jffs2_read_dnode(c, f, fn, mdata, 0, mdatalen); ^1da177e4c3f415 Linus Torvalds 2005-04-16 785 if (ret) { da320f055a88182 Joe Perches 2012-02-15 786 pr_warn("read of old metadata failed in jffs2_garbage_collect_metadata(): %d\n", da320f055a88182 Joe Perches 2012-02-15 787 ret); ^1da177e4c3f415 Linus Torvalds 2005-04-16 788 kfree(mdata); ^1da177e4c3f415 Linus Torvalds 2005-04-16 789 return ret; ^1da177e4c3f415 Linus Torvalds 2005-04-16 790 } 9c261b33a9c417c Joe Perches 2012-02-15 791 jffs2_dbg(1, "%s(): Writing %d bites of symlink target\n", 9c261b33a9c417c Joe Perches 2012-02-15 792 __func__, mdatalen); ^1da177e4c3f415 Linus Torvalds 2005-04-16 793 ^1da177e4c3f415 Linus Torvalds 2005-04-16 794 } ^1da177e4c3f415 Linus Torvalds 2005-04-16 795 9fe4854cd1f6027 David Woodhouse 2006-05-23 796 ret = jffs2_reserve_space_gc(c, sizeof(ri) + mdatalen, &alloclen, e631ddba588783e Ferenc Havasi 2005-09-07 797 JFFS2_SUMMARY_INODE_SIZE); ^1da177e4c3f415 Linus Torvalds 2005-04-16 798 if (ret) { da320f055a88182 Joe Perches 2012-02-15 799 pr_warn("jffs2_reserve_space_gc of %zd bytes for garbage_collect_metadata failed: %d\n", ^1da177e4c3f415 Linus Torvalds 2005-04-16 800 sizeof(ri) + mdatalen, ret); ^1da177e4c3f415 Linus Torvalds 2005-04-16 801 goto out; ^1da177e4c3f415 Linus Torvalds 2005-04-16 802 } ^1da177e4c3f415 Linus Torvalds 2005-04-16 803 8557fd51c22e4c2 Artem B. Bityuckiy 2005-04-09 804 last_frag = frag_last(&f->fragtree); 8557fd51c22e4c2 Artem B. Bityuckiy 2005-04-09 805 if (last_frag) 8557fd51c22e4c2 Artem B. Bityuckiy 2005-04-09 806 /* Fetch the inode length from the fragtree rather then 8557fd51c22e4c2 Artem B. Bityuckiy 2005-04-09 807 * from i_size since i_size may have not been updated yet */ 8557fd51c22e4c2 Artem B. Bityuckiy 2005-04-09 808 ilen = last_frag->ofs + last_frag->size; 8557fd51c22e4c2 Artem B. Bityuckiy 2005-04-09 809 else 8557fd51c22e4c2 Artem B. Bityuckiy 2005-04-09 810 ilen = JFFS2_F_I_SIZE(f); 8557fd51c22e4c2 Artem B. Bityuckiy 2005-04-09 811 ^1da177e4c3f415 Linus Torvalds 2005-04-16 812 memset(&ri, 0, sizeof(ri)); ^1da177e4c3f415 Linus Torvalds 2005-04-16 813 ri.magic = cpu_to_je16(JFFS2_MAGIC_BITMASK); ^1da177e4c3f415 Linus Torvalds 2005-04-16 814 ri.nodetype = cpu_to_je16(JFFS2_NODETYPE_INODE); ^1da177e4c3f415 Linus Torvalds 2005-04-16 815 ri.totlen = cpu_to_je32(sizeof(ri) + mdatalen); ^1da177e4c3f415 Linus Torvalds 2005-04-16 816 ri.hdr_crc = cpu_to_je32(crc32(0, &ri, sizeof(struct jffs2_unknown_node)-4)); ^1da177e4c3f415 Linus Torvalds 2005-04-16 817 ^1da177e4c3f415 Linus Torvalds 2005-04-16 818 ri.ino = cpu_to_je32(f->inocache->ino); ^1da177e4c3f415 Linus Torvalds 2005-04-16 819 ri.version = cpu_to_je32(++f->highest_version); ^1da177e4c3f415 Linus Torvalds 2005-04-16 820 ri.mode = cpu_to_jemode(JFFS2_F_I_MODE(f)); ^1da177e4c3f415 Linus Torvalds 2005-04-16 821 ri.uid = cpu_to_je16(JFFS2_F_I_UID(f)); ^1da177e4c3f415 Linus Torvalds 2005-04-16 822 ri.gid = cpu_to_je16(JFFS2_F_I_GID(f)); 8557fd51c22e4c2 Artem B. Bityuckiy 2005-04-09 823 ri.isize = cpu_to_je32(ilen); ^1da177e4c3f415 Linus Torvalds 2005-04-16 824 ri.atime = cpu_to_je32(JFFS2_F_I_ATIME(f)); ^1da177e4c3f415 Linus Torvalds 2005-04-16 825 ri.ctime = cpu_to_je32(JFFS2_F_I_CTIME(f)); ^1da177e4c3f415 Linus Torvalds 2005-04-16 826 ri.mtime = cpu_to_je32(JFFS2_F_I_MTIME(f)); ^1da177e4c3f415 Linus Torvalds 2005-04-16 827 ri.offset = cpu_to_je32(0); ^1da177e4c3f415 Linus Torvalds 2005-04-16 828 ri.csize = cpu_to_je32(mdatalen); ^1da177e4c3f415 Linus Torvalds 2005-04-16 829 ri.dsize = cpu_to_je32(mdatalen); ^1da177e4c3f415 Linus Torvalds 2005-04-16 830 ri.compr = JFFS2_COMPR_NONE; ^1da177e4c3f415 Linus Torvalds 2005-04-16 831 ri.node_crc = cpu_to_je32(crc32(0, &ri, sizeof(ri)-8)); ^1da177e4c3f415 Linus Torvalds 2005-04-16 832 ri.data_crc = cpu_to_je32(crc32(0, mdata, mdatalen)); ^1da177e4c3f415 Linus Torvalds 2005-04-16 833 9fe4854cd1f6027 David Woodhouse 2006-05-23 834 new_fn = jffs2_write_dnode(c, f, &ri, mdata, mdatalen, ALLOC_GC); ^1da177e4c3f415 Linus Torvalds 2005-04-16 835 ^1da177e4c3f415 Linus Torvalds 2005-04-16 836 if (IS_ERR(new_fn)) { da320f055a88182 Joe Perches 2012-02-15 837 pr_warn("Error writing new dnode: %ld\n", PTR_ERR(new_fn)); ^1da177e4c3f415 Linus Torvalds 2005-04-16 838 ret = PTR_ERR(new_fn); ^1da177e4c3f415 Linus Torvalds 2005-04-16 839 goto out; ^1da177e4c3f415 Linus Torvalds 2005-04-16 840 } ^1da177e4c3f415 Linus Torvalds 2005-04-16 841 jffs2_mark_node_obsolete(c, fn->raw); ^1da177e4c3f415 Linus Torvalds 2005-04-16 842 jffs2_free_full_dnode(fn); ^1da177e4c3f415 Linus Torvalds 2005-04-16 843 f->metadata = new_fn; ^1da177e4c3f415 Linus Torvalds 2005-04-16 844 out: ^1da177e4c3f415 Linus Torvalds 2005-04-16 845 if (S_ISLNK(JFFS2_F_I_MODE(f))) ^1da177e4c3f415 Linus Torvalds 2005-04-16 @846 kfree(mdata); ^1da177e4c3f415 Linus Torvalds 2005-04-16 847 return ret; ^1da177e4c3f415 Linus Torvalds 2005-04-16 848 } ^1da177e4c3f415 Linus Torvalds 2005-04-16 849 :::::: The code at line 846 was first introduced by commit :::::: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Linux-2.6.12-rc2 :::::: TO: Linus Torvalds <[email protected]> :::::: CC: Linus Torvalds <[email protected]> -- 0-DAY CI Kernel Test Service https://01.org/lkp _______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
