From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: [linux-next:master 1545/9522] 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]
Date: Sun, 22 Aug 2021 04:16:18 +0800 [thread overview]
Message-ID: <202108220406.VOInvfit-lkp@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 21138 bytes --]
CC: clang-built-linux(a)googlegroups.com
CC: kbuild-all(a)lists.01.org
CC: Linux Memory Management List <linux-mm@kvack.org>
TO: Chris Down <chris@chrisdown.name>
CC: Petr Mladek <pmladek@suse.com>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: 86ed57fd8c93fdfaabb4f58e78455180fa7d8a84
commit: 337015573718b161891a3473d25f59273f2e626b [1545/9522] printk: Userspace format indexing support
:::::: branch date: 35 hours ago
:::::: commit date: 5 weeks ago
config: x86_64-randconfig-c001-20210813 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 62df4df41c939205b2dc0a2a3bfb75b8c1ed74fa)
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
# https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=337015573718b161891a3473d25f59273f2e626b
git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
git fetch --no-tags linux-next master
git checkout 337015573718b161891a3473d25f59273f2e626b
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64 clang-analyzer
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
clang-analyzer warnings: (new ones prefixed by >>)
if (--dev_dax->nr_range == 0) {
^~~~~~~~~~~~~~~~~~~~~~~~
drivers/dax/bus.c:383:2: note: Taking true branch
if (--dev_dax->nr_range == 0) {
^
drivers/dax/bus.c:385:3: note: Null pointer value stored to field 'ranges'
dev_dax->ranges = NULL;
^~~~~~~~~~~~~~~~~~~~~~
drivers/dax/bus.c:392:3: note: Returning from 'trim_dev_dax_range'
trim_dev_dax_range(dev_dax);
^~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/dax/bus.c:391:2: note: Loop condition is true. Entering loop body
while (dev_dax->nr_range)
^
drivers/dax/bus.c:392:3: note: Calling 'trim_dev_dax_range'
trim_dev_dax_range(dev_dax);
^~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/dax/bus.c:374:2: note: 'range' initialized to a null pointer value
struct range *range = &dev_dax->ranges[i].range;
^~~~~~~~~~~~~~~~~~~
drivers/dax/bus.c:378:2: note: Taking false branch
dev_dbg(&dev_dax->dev, "delete range[%d]: %#llx:%#llx\n", i,
^
include/linux/dev_printk.h:130:2: note: expanded from macro 'dev_dbg'
if (0) \
^
drivers/dax/bus.c:382:37: note: Access to field 'start' results in a dereference of a null pointer (loaded from variable 'range')
__release_region(&dax_region->res, range->start, range_len(range));
^~~~~
drivers/dax/bus.c:820:7: warning: Value stored to 'is_shrink' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
bool is_shrink = resource_size(res) > size;
^~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/dax/bus.c:820:7: note: Value stored to 'is_shrink' during its initialization is never read
bool is_shrink = resource_size(res) > size;
^~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/dax/bus.c:1109:17: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct device *dev = &dev_dax->dev;
^~~ ~~~~~~~~~~~~~
drivers/dax/bus.c:1109:17: note: Value stored to 'dev' during its initialization is never read
struct device *dev = &dev_dax->dev;
^~~ ~~~~~~~~~~~~~
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
6 warnings generated.
Suppressed 6 warnings (6 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
6 warnings generated.
Suppressed 6 warnings (6 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
6 warnings generated.
fs/binfmt_elf.c:1293:3: warning: Value stored to 'error' is never read [clang-analyzer-deadcode.DeadStores]
error = vm_mmap(NULL, 0, PAGE_SIZE, PROT_READ | PROT_EXEC,
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fs/binfmt_elf.c:1293:3: note: Value stored to 'error' is never read
error = vm_mmap(NULL, 0, PAGE_SIZE, PROT_READ | PROT_EXEC,
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
6 warnings generated.
Suppressed 6 warnings (6 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
6 warnings generated.
Suppressed 6 warnings (6 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
9 warnings generated.
fs/jffs2/write.c:154:5: warning: Value stored to 'flash_ofs' is never read [clang-analyzer-deadcode.DeadStores]
flash_ofs = write_ofs(c);
^
fs/jffs2/write.c:154:5: note: Value stored to 'flash_ofs' is never read
fs/jffs2/write.c:306:5: warning: Value stored to 'flash_ofs' is never read [clang-analyzer-deadcode.DeadStores]
flash_ofs = write_ofs(c);
^
fs/jffs2/write.c:306:5: note: Value stored to 'flash_ofs' is never read
fs/jffs2/write.c:603:3: warning: Value stored to 'fd' is never read [clang-analyzer-deadcode.DeadStores]
fd = dir_f->dents;
^ ~~~~~~~~~~~~
fs/jffs2/write.c:603:3: note: Value stored to 'fd' is never read
fd = dir_f->dents;
^ ~~~~~~~~~~~~
Suppressed 6 warnings (6 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
7 warnings generated.
fs/jffs2/scan.c:457:2: warning: Value stored to 'ofs' is never read [clang-analyzer-deadcode.DeadStores]
ofs = jeb->offset;
^ ~~~~~~~~~~~
fs/jffs2/scan.c:457:2: note: Value stored to 'ofs' is never read
ofs = jeb->offset;
^ ~~~~~~~~~~~
Suppressed 6 warnings (6 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
7 warnings generated.
>> 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:134:6: note: Assuming the condition is false
if (mutex_lock_interruptible(&c->alloc_sem))
^
include/linux/mutex.h:166:40: note: expanded from macro 'mutex_lock_interruptible'
#define mutex_lock_interruptible(lock) mutex_lock_interruptible_nested(lock, 0)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fs/jffs2/gc.c:134:2: note: Taking false branch
if (mutex_lock_interruptible(&c->alloc_sem))
^
fs/jffs2/gc.c:138:2: note: Loop condition is true. Entering loop body
for (;;) {
^
fs/jffs2/gc.c:144:7: note: Assuming field 'unchecked_size' is 0
if (!c->unchecked_size)
^~~~~~~~~~~~~~~~~~
fs/jffs2/gc.c:144:3: note: Taking true branch
if (!c->unchecked_size)
^
fs/jffs2/gc.c:145:4: note: Execution continues on line 248
break;
^
fs/jffs2/gc.c:248:6: note: Assuming the condition is false
if (!list_empty(&c->erase_complete_list) ||
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fs/jffs2/gc.c:248:6: note: Left side of '||' is false
fs/jffs2/gc.c:249:6: note: Assuming the condition is false
!list_empty(&c->erase_pending_list)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fs/jffs2/gc.c:248:2: note: Taking false branch
if (!list_empty(&c->erase_complete_list) ||
^
fs/jffs2/gc.c:264:6: note: Assuming 'jeb' is non-null
if (!jeb)
^~~~
fs/jffs2/gc.c:264:2: note: Taking false branch
if (!jeb)
^
fs/jffs2/gc.c:267:7: note: 'jeb' is non-null
if (!jeb) {
^~~
fs/jffs2/gc.c:267:2: note: Taking false branch
if (!jeb) {
^
fs/jffs2/gc.c:280:2: note: 0 is < 1
jffs2_dbg(1, "GC from block %08x, used_size %08x, dirty_size %08x, free_size %08x\n",
^
fs/jffs2/debug.h:69:6: note: expanded from macro 'jffs2_dbg'
if (CONFIG_JFFS2_FS_DEBUG >= level) \
^~~~~~~~~~~~~~~~~~~~~
./include/generated/autoconf.h:853:31: note: expanded from macro 'CONFIG_JFFS2_FS_DEBUG'
#define CONFIG_JFFS2_FS_DEBUG 0
^
fs/jffs2/gc.c:280:2: note: Taking false branch
jffs2_dbg(1, "GC from block %08x, used_size %08x, dirty_size %08x, free_size %08x\n",
^
fs/jffs2/debug.h:69:2: note: expanded from macro 'jffs2_dbg'
if (CONFIG_JFFS2_FS_DEBUG >= level) \
^
fs/jffs2/gc.c:280:2: note: Loop condition is false. Exiting loop
jffs2_dbg(1, "GC from block %08x, used_size %08x, dirty_size %08x, free_size %08x\n",
^
fs/jffs2/debug.h:67:37: note: expanded from macro 'jffs2_dbg'
#define jffs2_dbg(level, fmt, ...) \
^
fs/jffs2/gc.c:285:6: note: Assuming field 'used_size' is not equal to 0
if (!jeb->used_size) {
^~~~~~~~~~~~~~~
fs/jffs2/gc.c:285:2: note: Taking false branch
if (!jeb->used_size) {
^
fs/jffs2/gc.c:293:8: note: Assuming the condition is false
while(ref_obsolete(raw)) {
^
fs/jffs2/nodelist.h:138:28: note: expanded from macro 'ref_obsolete'
#define ref_obsolete(ref) (((ref)->flash_offset & 3) == REF_OBSOLETE)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fs/jffs2/gc.c:293:2: note: Loop condition is false. Execution continues on line 308
while(ref_obsolete(raw)) {
^
fs/jffs2/gc.c:310:2: note: 0 is < 1
jffs2_dbg(1, "Going to garbage collect node@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:853: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'
vim +/dev +846 fs/jffs2/gc.c
^1da177e4c3f41 Linus Torvalds 2005-04-16 757
^1da177e4c3f41 Linus Torvalds 2005-04-16 758 static int jffs2_garbage_collect_metadata(struct jffs2_sb_info *c, struct jffs2_eraseblock *jeb,
^1da177e4c3f41 Linus Torvalds 2005-04-16 759 struct jffs2_inode_info *f, struct jffs2_full_dnode *fn)
^1da177e4c3f41 Linus Torvalds 2005-04-16 760 {
^1da177e4c3f41 Linus Torvalds 2005-04-16 761 struct jffs2_full_dnode *new_fn;
^1da177e4c3f41 Linus Torvalds 2005-04-16 762 struct jffs2_raw_inode ri;
8557fd51c22e4c Artem B. Bityuckiy 2005-04-09 763 struct jffs2_node_frag *last_frag;
aef9ab47841af4 David Woodhouse 2006-05-19 764 union jffs2_device_node dev;
2e16cfca6e17ae David Woodhouse 2009-12-16 765 char *mdata = NULL;
2e16cfca6e17ae David Woodhouse 2009-12-16 766 int mdatalen = 0;
9fe4854cd1f602 David Woodhouse 2006-05-23 767 uint32_t alloclen, ilen;
^1da177e4c3f41 Linus Torvalds 2005-04-16 768 int ret;
^1da177e4c3f41 Linus Torvalds 2005-04-16 769
^1da177e4c3f41 Linus Torvalds 2005-04-16 770 if (S_ISBLK(JFFS2_F_I_MODE(f)) ||
^1da177e4c3f41 Linus Torvalds 2005-04-16 771 S_ISCHR(JFFS2_F_I_MODE(f)) ) {
^1da177e4c3f41 Linus Torvalds 2005-04-16 772 /* For these, we don't actually need to read the old node */
aef9ab47841af4 David Woodhouse 2006-05-19 773 mdatalen = jffs2_encode_dev(&dev, JFFS2_F_I_RDEV(f));
^1da177e4c3f41 Linus Torvalds 2005-04-16 774 mdata = (char *)&dev;
9c261b33a9c417 Joe Perches 2012-02-15 775 jffs2_dbg(1, "%s(): Writing %d bytes of kdev_t\n",
9c261b33a9c417 Joe Perches 2012-02-15 776 __func__, mdatalen);
^1da177e4c3f41 Linus Torvalds 2005-04-16 777 } else if (S_ISLNK(JFFS2_F_I_MODE(f))) {
^1da177e4c3f41 Linus Torvalds 2005-04-16 778 mdatalen = fn->size;
^1da177e4c3f41 Linus Torvalds 2005-04-16 779 mdata = kmalloc(fn->size, GFP_KERNEL);
^1da177e4c3f41 Linus Torvalds 2005-04-16 780 if (!mdata) {
da320f055a8818 Joe Perches 2012-02-15 781 pr_warn("kmalloc of mdata failed in jffs2_garbage_collect_metadata()\n");
^1da177e4c3f41 Linus Torvalds 2005-04-16 782 return -ENOMEM;
^1da177e4c3f41 Linus Torvalds 2005-04-16 783 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 784 ret = jffs2_read_dnode(c, f, fn, mdata, 0, mdatalen);
^1da177e4c3f41 Linus Torvalds 2005-04-16 785 if (ret) {
da320f055a8818 Joe Perches 2012-02-15 786 pr_warn("read of old metadata failed in jffs2_garbage_collect_metadata(): %d\n",
da320f055a8818 Joe Perches 2012-02-15 787 ret);
^1da177e4c3f41 Linus Torvalds 2005-04-16 788 kfree(mdata);
^1da177e4c3f41 Linus Torvalds 2005-04-16 789 return ret;
^1da177e4c3f41 Linus Torvalds 2005-04-16 790 }
9c261b33a9c417 Joe Perches 2012-02-15 791 jffs2_dbg(1, "%s(): Writing %d bites of symlink target\n",
9c261b33a9c417 Joe Perches 2012-02-15 792 __func__, mdatalen);
^1da177e4c3f41 Linus Torvalds 2005-04-16 793
^1da177e4c3f41 Linus Torvalds 2005-04-16 794 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 795
9fe4854cd1f602 David Woodhouse 2006-05-23 796 ret = jffs2_reserve_space_gc(c, sizeof(ri) + mdatalen, &alloclen,
e631ddba588783 Ferenc Havasi 2005-09-07 797 JFFS2_SUMMARY_INODE_SIZE);
^1da177e4c3f41 Linus Torvalds 2005-04-16 798 if (ret) {
da320f055a8818 Joe Perches 2012-02-15 799 pr_warn("jffs2_reserve_space_gc of %zd bytes for garbage_collect_metadata failed: %d\n",
^1da177e4c3f41 Linus Torvalds 2005-04-16 800 sizeof(ri) + mdatalen, ret);
^1da177e4c3f41 Linus Torvalds 2005-04-16 801 goto out;
^1da177e4c3f41 Linus Torvalds 2005-04-16 802 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 803
8557fd51c22e4c Artem B. Bityuckiy 2005-04-09 804 last_frag = frag_last(&f->fragtree);
8557fd51c22e4c Artem B. Bityuckiy 2005-04-09 805 if (last_frag)
8557fd51c22e4c Artem B. Bityuckiy 2005-04-09 806 /* Fetch the inode length from the fragtree rather then
8557fd51c22e4c Artem B. Bityuckiy 2005-04-09 807 * from i_size since i_size may have not been updated yet */
8557fd51c22e4c Artem B. Bityuckiy 2005-04-09 808 ilen = last_frag->ofs + last_frag->size;
8557fd51c22e4c Artem B. Bityuckiy 2005-04-09 809 else
8557fd51c22e4c Artem B. Bityuckiy 2005-04-09 810 ilen = JFFS2_F_I_SIZE(f);
8557fd51c22e4c Artem B. Bityuckiy 2005-04-09 811
^1da177e4c3f41 Linus Torvalds 2005-04-16 812 memset(&ri, 0, sizeof(ri));
^1da177e4c3f41 Linus Torvalds 2005-04-16 813 ri.magic = cpu_to_je16(JFFS2_MAGIC_BITMASK);
^1da177e4c3f41 Linus Torvalds 2005-04-16 814 ri.nodetype = cpu_to_je16(JFFS2_NODETYPE_INODE);
^1da177e4c3f41 Linus Torvalds 2005-04-16 815 ri.totlen = cpu_to_je32(sizeof(ri) + mdatalen);
^1da177e4c3f41 Linus Torvalds 2005-04-16 816 ri.hdr_crc = cpu_to_je32(crc32(0, &ri, sizeof(struct jffs2_unknown_node)-4));
^1da177e4c3f41 Linus Torvalds 2005-04-16 817
^1da177e4c3f41 Linus Torvalds 2005-04-16 818 ri.ino = cpu_to_je32(f->inocache->ino);
^1da177e4c3f41 Linus Torvalds 2005-04-16 819 ri.version = cpu_to_je32(++f->highest_version);
^1da177e4c3f41 Linus Torvalds 2005-04-16 820 ri.mode = cpu_to_jemode(JFFS2_F_I_MODE(f));
^1da177e4c3f41 Linus Torvalds 2005-04-16 821 ri.uid = cpu_to_je16(JFFS2_F_I_UID(f));
^1da177e4c3f41 Linus Torvalds 2005-04-16 822 ri.gid = cpu_to_je16(JFFS2_F_I_GID(f));
8557fd51c22e4c Artem B. Bityuckiy 2005-04-09 823 ri.isize = cpu_to_je32(ilen);
^1da177e4c3f41 Linus Torvalds 2005-04-16 824 ri.atime = cpu_to_je32(JFFS2_F_I_ATIME(f));
^1da177e4c3f41 Linus Torvalds 2005-04-16 825 ri.ctime = cpu_to_je32(JFFS2_F_I_CTIME(f));
^1da177e4c3f41 Linus Torvalds 2005-04-16 826 ri.mtime = cpu_to_je32(JFFS2_F_I_MTIME(f));
^1da177e4c3f41 Linus Torvalds 2005-04-16 827 ri.offset = cpu_to_je32(0);
^1da177e4c3f41 Linus Torvalds 2005-04-16 828 ri.csize = cpu_to_je32(mdatalen);
^1da177e4c3f41 Linus Torvalds 2005-04-16 829 ri.dsize = cpu_to_je32(mdatalen);
^1da177e4c3f41 Linus Torvalds 2005-04-16 830 ri.compr = JFFS2_COMPR_NONE;
^1da177e4c3f41 Linus Torvalds 2005-04-16 831 ri.node_crc = cpu_to_je32(crc32(0, &ri, sizeof(ri)-8));
^1da177e4c3f41 Linus Torvalds 2005-04-16 832 ri.data_crc = cpu_to_je32(crc32(0, mdata, mdatalen));
^1da177e4c3f41 Linus Torvalds 2005-04-16 833
9fe4854cd1f602 David Woodhouse 2006-05-23 834 new_fn = jffs2_write_dnode(c, f, &ri, mdata, mdatalen, ALLOC_GC);
^1da177e4c3f41 Linus Torvalds 2005-04-16 835
^1da177e4c3f41 Linus Torvalds 2005-04-16 836 if (IS_ERR(new_fn)) {
da320f055a8818 Joe Perches 2012-02-15 837 pr_warn("Error writing new dnode: %ld\n", PTR_ERR(new_fn));
^1da177e4c3f41 Linus Torvalds 2005-04-16 838 ret = PTR_ERR(new_fn);
^1da177e4c3f41 Linus Torvalds 2005-04-16 839 goto out;
^1da177e4c3f41 Linus Torvalds 2005-04-16 840 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 841 jffs2_mark_node_obsolete(c, fn->raw);
^1da177e4c3f41 Linus Torvalds 2005-04-16 842 jffs2_free_full_dnode(fn);
^1da177e4c3f41 Linus Torvalds 2005-04-16 843 f->metadata = new_fn;
^1da177e4c3f41 Linus Torvalds 2005-04-16 844 out:
^1da177e4c3f41 Linus Torvalds 2005-04-16 845 if (S_ISLNK(JFFS2_F_I_MODE(f)))
^1da177e4c3f41 Linus Torvalds 2005-04-16 @846 kfree(mdata);
^1da177e4c3f41 Linus Torvalds 2005-04-16 847 return ret;
^1da177e4c3f41 Linus Torvalds 2005-04-16 848 }
^1da177e4c3f41 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 <torvalds@ppc970.osdl.org>
:::::: CC: Linus Torvalds <torvalds@ppc970.osdl.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 37965 bytes --]
reply other threads:[~2021-08-21 20:16 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202108220406.VOInvfit-lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild@lists.01.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.