CC: [email protected] CC: [email protected] CC: [email protected] TO: Kees Cook <[email protected]>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 8ced7ca3570333998ad2088d5a6275701970e28e commit: a52f8a59aef46b59753e583bf4b28fccb069ce64 fortify: Explicitly disable Clang support date: 9 weeks ago :::::: branch date: 11 hours ago :::::: commit date: 9 weeks ago config: i386-randconfig-c001-20211115 (https://download.01.org/0day-ci/archive/20211126/[email protected]/config) compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project fbe72e41b99dc7994daac300d208a955be3e4a0a) 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/torvalds/linux.git/commit/?id=a52f8a59aef46b59753e583bf4b28fccb069ce64 git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git git fetch --no-tags linus master git checkout a52f8a59aef46b59753e583bf4b28fccb069ce64 # save the config file to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=i386 clang-analyzer If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <[email protected]> clang-analyzer warnings: (new ones prefixed by >>) ^ drivers/md/bcache/sysfs.h:67:3: note: expanded from macro 'sysfs_hprint' strcat(buf, "\n"); \ ^~~~~~ drivers/md/bcache/sysfs.c:740:2: warning: Call to function 'strcat' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcat'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy] sysfs_hprint(btree_cache_size, bch_cache_size(c)); ^ drivers/md/bcache/sysfs.h:67:3: note: expanded from macro 'sysfs_hprint' strcat(buf, "\n"); \ ^~~~~~ drivers/md/bcache/sysfs.c:740:2: note: Call to function 'strcat' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcat'. CWE-119 sysfs_hprint(btree_cache_size, bch_cache_size(c)); ^ drivers/md/bcache/sysfs.h:67:3: note: expanded from macro 'sysfs_hprint' strcat(buf, "\n"); \ ^~~~~~ drivers/md/bcache/sysfs.c:751:2: warning: Call to function 'strcat' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcat'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy] sysfs_hprint(average_key_size, bch_average_key_size(c)); ^ drivers/md/bcache/sysfs.h:67:3: note: expanded from macro 'sysfs_hprint' strcat(buf, "\n"); \ ^~~~~~ drivers/md/bcache/sysfs.c:751:2: note: Call to function 'strcat' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcat'. CWE-119 sysfs_hprint(average_key_size, bch_average_key_size(c)); ^ drivers/md/bcache/sysfs.h:67:3: note: expanded from macro 'sysfs_hprint' strcat(buf, "\n"); \ ^~~~~~ drivers/md/bcache/sysfs.c:778:2: warning: Call to function 'strcat' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcat'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy] sysfs_hprint(congested, ^ drivers/md/bcache/sysfs.h:67:3: note: expanded from macro 'sysfs_hprint' strcat(buf, "\n"); \ ^~~~~~ drivers/md/bcache/sysfs.c:778:2: note: Call to function 'strcat' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcat'. CWE-119 sysfs_hprint(congested, ^ drivers/md/bcache/sysfs.h:67:3: note: expanded from macro 'sysfs_hprint' strcat(buf, "\n"); \ ^~~~~~ drivers/md/bcache/sysfs.c:1037:2: warning: Call to function 'strcat' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcat'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy] sysfs_hprint(bucket_size, bucket_bytes(ca)); ^ drivers/md/bcache/sysfs.h:67:3: note: expanded from macro 'sysfs_hprint' strcat(buf, "\n"); \ ^~~~~~ drivers/md/bcache/sysfs.c:1037:2: note: Call to function 'strcat' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcat'. CWE-119 sysfs_hprint(bucket_size, bucket_bytes(ca)); ^ drivers/md/bcache/sysfs.h:67:3: note: expanded from macro 'sysfs_hprint' strcat(buf, "\n"); \ ^~~~~~ drivers/md/bcache/sysfs.c:1038:2: warning: Call to function 'strcat' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcat'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy] sysfs_hprint(block_size, block_bytes(ca)); ^ drivers/md/bcache/sysfs.h:67:3: note: expanded from macro 'sysfs_hprint' strcat(buf, "\n"); \ ^~~~~~ drivers/md/bcache/sysfs.c:1038:2: note: Call to function 'strcat' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcat'. CWE-119 sysfs_hprint(block_size, block_bytes(ca)); ^ drivers/md/bcache/sysfs.h:67:3: note: expanded from macro 'sysfs_hprint' strcat(buf, "\n"); \ ^~~~~~ drivers/md/bcache/sysfs.c:1041:2: warning: Call to function 'strcat' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcat'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy] sysfs_hprint(written, atomic_long_read(&ca->sectors_written) << 9); ^ drivers/md/bcache/sysfs.h:67:3: note: expanded from macro 'sysfs_hprint' strcat(buf, "\n"); \ ^~~~~~ drivers/md/bcache/sysfs.c:1041:2: note: Call to function 'strcat' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcat'. CWE-119 sysfs_hprint(written, atomic_long_read(&ca->sectors_written) << 9); ^ drivers/md/bcache/sysfs.h:67:3: note: expanded from macro 'sysfs_hprint' strcat(buf, "\n"); \ ^~~~~~ drivers/md/bcache/sysfs.c:1042:2: warning: Call to function 'strcat' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcat'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy] sysfs_hprint(btree_written, ^ drivers/md/bcache/sysfs.h:67:3: note: expanded from macro 'sysfs_hprint' strcat(buf, "\n"); \ ^~~~~~ drivers/md/bcache/sysfs.c:1042:2: note: Call to function 'strcat' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcat'. CWE-119 sysfs_hprint(btree_written, ^ drivers/md/bcache/sysfs.h:67:3: note: expanded from macro 'sysfs_hprint' strcat(buf, "\n"); \ ^~~~~~ drivers/md/bcache/sysfs.c:1044:2: warning: Call to function 'strcat' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcat'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy] sysfs_hprint(metadata_written, ^ drivers/md/bcache/sysfs.h:67:3: note: expanded from macro 'sysfs_hprint' strcat(buf, "\n"); \ ^~~~~~ drivers/md/bcache/sysfs.c:1044:2: note: Call to function 'strcat' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcat'. CWE-119 sysfs_hprint(metadata_written, ^ drivers/md/bcache/sysfs.h:67:3: note: expanded from macro 'sysfs_hprint' strcat(buf, "\n"); \ ^~~~~~ >> drivers/md/bcache/sysfs.c:1102:4: warning: Division by zero >> [clang-analyzer-core.DivideZero] do_div(sum, n); ^ arch/x86/include/asm/div64.h:33:21: note: expanded from macro 'do_div' __upper = __high % (__base); \ ~~~~~~~^~~~~~~~~~ drivers/md/bcache/sysfs.c:1035:21: note: Left side of '&&' is false struct cache *ca = container_of(kobj, struct cache, kobj); ^ include/linux/kernel.h:495:61: note: expanded from macro 'container_of' BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \ ^ drivers/md/bcache/sysfs.c:1035:21: note: '?' condition is true struct cache *ca = container_of(kobj, struct cache, kobj); ^ include/linux/kernel.h:495:2: note: expanded from macro 'container_of' BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \ ^ include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG' #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) ^ include/linux/compiler_types.h:317:2: note: expanded from macro 'compiletime_assert' _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) ^ note: (skipping 1 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all) include/linux/compiler_types.h:297:3: note: expanded from macro '__compiletime_assert' if (!(condition)) \ ^ include/linux/compiler.h:56:28: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^ include/linux/compiler.h:58:31: note: expanded from macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^ drivers/md/bcache/sysfs.c:1035:21: note: Left side of '&&' is false struct cache *ca = container_of(kobj, struct cache, kobj); ^ include/linux/kernel.h:495:61: note: expanded from macro 'container_of' BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \ ^ drivers/md/bcache/sysfs.c:1035:21: note: Taking false branch struct cache *ca = container_of(kobj, struct cache, kobj); ^ include/linux/kernel.h:495:2: note: expanded from macro 'container_of' BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \ ^ include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG' #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) ^ include/linux/compiler_types.h:317:2: note: expanded from macro 'compiletime_assert' _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) ^ include/linux/compiler_types.h:305:2: note: expanded from macro '_compiletime_assert' __compiletime_assert(condition, msg, prefix, suffix) ^ include/linux/compiler_types.h:297:3: note: expanded from macro '__compiletime_assert' if (!(condition)) \ ^ include/linux/compiler.h:56:23: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^ drivers/md/bcache/sysfs.c:1035:21: note: Loop condition is false. Exiting loop struct cache *ca = container_of(kobj, struct cache, kobj); ^ include/linux/kernel.h:495:2: note: expanded from macro 'container_of' BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \ ^ include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG' #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) ^ include/linux/compiler_types.h:317:2: note: expanded from macro 'compiletime_assert' _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) ^ include/linux/compiler_types.h:305:2: note: expanded from macro '_compiletime_assert' __compiletime_assert(condition, msg, prefix, suffix) ^ include/linux/compiler_types.h:295:2: note: expanded from macro '__compiletime_assert' do { \ ^ drivers/md/bcache/sysfs.c:1037:2: note: '?' condition is false sysfs_hprint(bucket_size, bucket_bytes(ca)); ^ drivers/md/bcache/sysfs.h:65:2: note: expanded from macro 'sysfs_hprint' if (attr == &sysfs_ ## file) { \ ^ include/linux/compiler.h:56:28: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^ include/linux/compiler.h:58:31: note: expanded from macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^ drivers/md/bcache/sysfs.c:1037:2: note: Assuming the condition is false sysfs_hprint(bucket_size, bucket_bytes(ca)); ^ drivers/md/bcache/sysfs.h:65:2: note: expanded from macro 'sysfs_hprint' if (attr == &sysfs_ ## file) { \ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/compiler.h:56:44: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/compiler.h:58:86: note: expanded from macro '__trace_if_var' vim +1102 drivers/md/bcache/sysfs.c 58f913dce2814a9 Peter Foley 2017-10-13 1032 cafe563591446cf Kent Overstreet 2013-03-23 1033 SHOW(__bch_cache) cafe563591446cf Kent Overstreet 2013-03-23 1034 { cafe563591446cf Kent Overstreet 2013-03-23 1035 struct cache *ca = container_of(kobj, struct cache, kobj); cafe563591446cf Kent Overstreet 2013-03-23 1036 cafe563591446cf Kent Overstreet 2013-03-23 1037 sysfs_hprint(bucket_size, bucket_bytes(ca)); cafe563591446cf Kent Overstreet 2013-03-23 1038 sysfs_hprint(block_size, block_bytes(ca)); cafe563591446cf Kent Overstreet 2013-03-23 1039 sysfs_print(nbuckets, ca->sb.nbuckets); cafe563591446cf Kent Overstreet 2013-03-23 1040 sysfs_print(discard, ca->discard); cafe563591446cf Kent Overstreet 2013-03-23 1041 sysfs_hprint(written, atomic_long_read(&ca->sectors_written) << 9); cafe563591446cf Kent Overstreet 2013-03-23 1042 sysfs_hprint(btree_written, cafe563591446cf Kent Overstreet 2013-03-23 1043 atomic_long_read(&ca->btree_sectors_written) << 9); cafe563591446cf Kent Overstreet 2013-03-23 @1044 sysfs_hprint(metadata_written, cafe563591446cf Kent Overstreet 2013-03-23 1045 (atomic_long_read(&ca->meta_sectors_written) + cafe563591446cf Kent Overstreet 2013-03-23 1046 atomic_long_read(&ca->btree_sectors_written)) << 9); cafe563591446cf Kent Overstreet 2013-03-23 1047 cafe563591446cf Kent Overstreet 2013-03-23 1048 sysfs_print(io_errors, cafe563591446cf Kent Overstreet 2013-03-23 1049 atomic_read(&ca->io_errors) >> IO_ERROR_SHIFT); cafe563591446cf Kent Overstreet 2013-03-23 1050 cafe563591446cf Kent Overstreet 2013-03-23 1051 if (attr == &sysfs_cache_replacement_policy) 169ef1cf6171d35 Kent Overstreet 2013-03-28 1052 return bch_snprint_string_list(buf, PAGE_SIZE, cafe563591446cf Kent Overstreet 2013-03-23 1053 cache_replacement_policies, cafe563591446cf Kent Overstreet 2013-03-23 1054 CACHE_REPLACEMENT(&ca->sb)); cafe563591446cf Kent Overstreet 2013-03-23 1055 cafe563591446cf Kent Overstreet 2013-03-23 1056 if (attr == &sysfs_priority_stats) { 15754020524a565 Kent Overstreet 2014-02-25 1057 struct bucket *b; 15754020524a565 Kent Overstreet 2014-02-25 1058 size_t n = ca->sb.nbuckets, i; 15754020524a565 Kent Overstreet 2014-02-25 1059 size_t unused = 0, available = 0, dirty = 0, meta = 0; cafe563591446cf Kent Overstreet 2013-03-23 1060 uint64_t sum = 0; bbc77aa7fb72e61 Kent Overstreet 2013-05-28 1061 /* Compute 31 quantiles */ bbc77aa7fb72e61 Kent Overstreet 2013-05-28 1062 uint16_t q[31], *p, *cached; cafe563591446cf Kent Overstreet 2013-03-23 1063 ssize_t ret; cafe563591446cf Kent Overstreet 2013-03-23 1064 42bc47b35320e0e Kees Cook 2018-06-12 1065 cached = p = vmalloc(array_size(sizeof(uint16_t), 42bc47b35320e0e Kees Cook 2018-06-12 1066 ca->sb.nbuckets)); cafe563591446cf Kent Overstreet 2013-03-23 1067 if (!p) cafe563591446cf Kent Overstreet 2013-03-23 1068 return -ENOMEM; cafe563591446cf Kent Overstreet 2013-03-23 1069 cafe563591446cf Kent Overstreet 2013-03-23 1070 mutex_lock(&ca->set->bucket_lock); 15754020524a565 Kent Overstreet 2014-02-25 1071 for_each_bucket(b, ca) { 15754020524a565 Kent Overstreet 2014-02-25 1072 if (!GC_SECTORS_USED(b)) 15754020524a565 Kent Overstreet 2014-02-25 1073 unused++; 15754020524a565 Kent Overstreet 2014-02-25 1074 if (GC_MARK(b) == GC_MARK_RECLAIMABLE) 15754020524a565 Kent Overstreet 2014-02-25 1075 available++; 15754020524a565 Kent Overstreet 2014-02-25 1076 if (GC_MARK(b) == GC_MARK_DIRTY) 15754020524a565 Kent Overstreet 2014-02-25 1077 dirty++; 15754020524a565 Kent Overstreet 2014-02-25 1078 if (GC_MARK(b) == GC_MARK_METADATA) 15754020524a565 Kent Overstreet 2014-02-25 1079 meta++; 15754020524a565 Kent Overstreet 2014-02-25 1080 } 15754020524a565 Kent Overstreet 2014-02-25 1081 cafe563591446cf Kent Overstreet 2013-03-23 1082 for (i = ca->sb.first_bucket; i < n; i++) cafe563591446cf Kent Overstreet 2013-03-23 1083 p[i] = ca->buckets[i].prio; cafe563591446cf Kent Overstreet 2013-03-23 1084 mutex_unlock(&ca->set->bucket_lock); cafe563591446cf Kent Overstreet 2013-03-23 1085 58f913dce2814a9 Peter Foley 2017-10-13 1086 sort(p, n, sizeof(uint16_t), __bch_cache_cmp, NULL); cafe563591446cf Kent Overstreet 2013-03-23 1087 cafe563591446cf Kent Overstreet 2013-03-23 1088 while (n && cafe563591446cf Kent Overstreet 2013-03-23 1089 !cached[n - 1]) cafe563591446cf Kent Overstreet 2013-03-23 1090 --n; cafe563591446cf Kent Overstreet 2013-03-23 1091 cafe563591446cf Kent Overstreet 2013-03-23 1092 while (cached < p + n && 6751c1e3cff3aa7 Joe Perches 2021-02-10 1093 *cached == BTREE_PRIO) { 6751c1e3cff3aa7 Joe Perches 2021-02-10 1094 cached++; 6751c1e3cff3aa7 Joe Perches 2021-02-10 1095 n--; 6751c1e3cff3aa7 Joe Perches 2021-02-10 1096 } cafe563591446cf Kent Overstreet 2013-03-23 1097 cafe563591446cf Kent Overstreet 2013-03-23 1098 for (i = 0; i < n; i++) cafe563591446cf Kent Overstreet 2013-03-23 1099 sum += INITIAL_PRIO - cached[i]; cafe563591446cf Kent Overstreet 2013-03-23 1100 cafe563591446cf Kent Overstreet 2013-03-23 1101 if (n) cafe563591446cf Kent Overstreet 2013-03-23 @1102 do_div(sum, n); cafe563591446cf Kent Overstreet 2013-03-23 1103 bbc77aa7fb72e61 Kent Overstreet 2013-05-28 1104 for (i = 0; i < ARRAY_SIZE(q); i++) bbc77aa7fb72e61 Kent Overstreet 2013-05-28 1105 q[i] = INITIAL_PRIO - cached[n * (i + 1) / bbc77aa7fb72e61 Kent Overstreet 2013-05-28 1106 (ARRAY_SIZE(q) + 1)]; cafe563591446cf Kent Overstreet 2013-03-23 1107 cafe563591446cf Kent Overstreet 2013-03-23 1108 vfree(p); cafe563591446cf Kent Overstreet 2013-03-23 1109 bbc77aa7fb72e61 Kent Overstreet 2013-05-28 1110 ret = scnprintf(buf, PAGE_SIZE, cafe563591446cf Kent Overstreet 2013-03-23 1111 "Unused: %zu%%\n" 15754020524a565 Kent Overstreet 2014-02-25 1112 "Clean: %zu%%\n" 15754020524a565 Kent Overstreet 2014-02-25 1113 "Dirty: %zu%%\n" cafe563591446cf Kent Overstreet 2013-03-23 1114 "Metadata: %zu%%\n" cafe563591446cf Kent Overstreet 2013-03-23 1115 "Average: %llu\n" cafe563591446cf Kent Overstreet 2013-03-23 1116 "Sectors per Q: %zu\n" cafe563591446cf Kent Overstreet 2013-03-23 1117 "Quantiles: [", cafe563591446cf Kent Overstreet 2013-03-23 1118 unused * 100 / (size_t) ca->sb.nbuckets, 15754020524a565 Kent Overstreet 2014-02-25 1119 available * 100 / (size_t) ca->sb.nbuckets, 15754020524a565 Kent Overstreet 2014-02-25 1120 dirty * 100 / (size_t) ca->sb.nbuckets, 15754020524a565 Kent Overstreet 2014-02-25 1121 meta * 100 / (size_t) ca->sb.nbuckets, sum, bbc77aa7fb72e61 Kent Overstreet 2013-05-28 1122 n * ca->sb.bucket_size / (ARRAY_SIZE(q) + 1)); bbc77aa7fb72e61 Kent Overstreet 2013-05-28 1123 bbc77aa7fb72e61 Kent Overstreet 2013-05-28 1124 for (i = 0; i < ARRAY_SIZE(q); i++) bbc77aa7fb72e61 Kent Overstreet 2013-05-28 1125 ret += scnprintf(buf + ret, PAGE_SIZE - ret, bbc77aa7fb72e61 Kent Overstreet 2013-05-28 1126 "%u ", q[i]); bbc77aa7fb72e61 Kent Overstreet 2013-05-28 1127 ret--; cafe563591446cf Kent Overstreet 2013-03-23 1128 bbc77aa7fb72e61 Kent Overstreet 2013-05-28 1129 ret += scnprintf(buf + ret, PAGE_SIZE - ret, "]\n"); cafe563591446cf Kent Overstreet 2013-03-23 1130 cafe563591446cf Kent Overstreet 2013-03-23 1131 return ret; cafe563591446cf Kent Overstreet 2013-03-23 1132 } cafe563591446cf Kent Overstreet 2013-03-23 1133 cafe563591446cf Kent Overstreet 2013-03-23 1134 return 0; cafe563591446cf Kent Overstreet 2013-03-23 1135 } cafe563591446cf Kent Overstreet 2013-03-23 1136 SHOW_LOCKED(bch_cache) cafe563591446cf Kent Overstreet 2013-03-23 1137 :::::: The code at line 1102 was first introduced by commit :::::: cafe563591446cf80bfbc2fe3bc72a2e36cf1060 bcache: A block layer cache :::::: TO: Kent Overstreet <[email protected]> :::::: CC: Kent Overstreet <[email protected]> --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/[email protected] _______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
