lib/maple_tree.c:3072:30-31: WARNING opportunity for min()
kernel test robot <[email protected]>
| Newsgroups | dev.linux.lists.oe-kbuild |
|---|---|
| Message-ID | <[email protected]> |
BCC: [email protected] CC: [email protected] CC: [email protected] TO: "Liam R. Howlett" <[email protected]> CC: Andrew Morton <[email protected]> CC: Linux Memory Management List <[email protected]> tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: f5bbbfec59b4e2fb7520a91de3df8a6174325d6a commit: a9c6716e088a1d4badd4fa6797469506bb99ec8b maple_tree: start using maple copy node for destination date: 4 months ago :::::: branch date: 31 hours ago :::::: commit date: 4 months ago config: nios2-randconfig-r063-20260812 (https://download.01.org/0day-ci/archive/20260813/[email protected]/config) compiler: nios2-linux-gcc (GCC) 9.5.0 If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Fixes: a9c6716e088a ("maple_tree: start using maple copy node for destination") | Reported-by: kernel test robot <[email protected]> | Reported-by: Julia Lawall <[email protected]> | Closes: https://lore.kernel.org/r/[email protected]/ cocci warnings: (new ones prefixed by >>) >> lib/maple_tree.c:3072:30-31: WARNING opportunity for min() vim +3072 lib/maple_tree.c 6953038cab845f Liam R. Howlett 2026-01-30 3037 9ec1e972c3de31 Liam R. Howlett 2026-01-30 3038 static inline a9c6716e088a1d Liam R. Howlett 2026-01-30 3039 void cp_data_write(struct maple_copy *cp, struct ma_state *mas) 9ec1e972c3de31 Liam R. Howlett 2026-01-30 3040 { a9c6716e088a1d Liam R. Howlett 2026-01-30 3041 struct maple_node *dst, *src; a9c6716e088a1d Liam R. Howlett 2026-01-30 3042 unsigned char s, d; a9c6716e088a1d Liam R. Howlett 2026-01-30 3043 unsigned char dst_offset; a9c6716e088a1d Liam R. Howlett 2026-01-30 3044 unsigned char data_offset; 9ec1e972c3de31 Liam R. Howlett 2026-01-30 3045 unsigned char src_end, s_offset; a9c6716e088a1d Liam R. Howlett 2026-01-30 3046 unsigned char split; a9c6716e088a1d Liam R. Howlett 2026-01-30 3047 unsigned long s_max, d_max; a9c6716e088a1d Liam R. Howlett 2026-01-30 3048 unsigned char dst_size; a9c6716e088a1d Liam R. Howlett 2026-01-30 3049 enum maple_type s_mt, d_mt; a9c6716e088a1d Liam R. Howlett 2026-01-30 3050 a9c6716e088a1d Liam R. Howlett 2026-01-30 3051 data_offset = 0; a9c6716e088a1d Liam R. Howlett 2026-01-30 3052 s = d = 0; a9c6716e088a1d Liam R. Howlett 2026-01-30 3053 /* Readability help */ a9c6716e088a1d Liam R. Howlett 2026-01-30 3054 src = cp->src[s].node; a9c6716e088a1d Liam R. Howlett 2026-01-30 3055 dst = cp->dst[d].node; a9c6716e088a1d Liam R. Howlett 2026-01-30 3056 s_offset = cp->src[s].start; a9c6716e088a1d Liam R. Howlett 2026-01-30 3057 src_end = cp->src[s].end; a9c6716e088a1d Liam R. Howlett 2026-01-30 3058 split = cp->split; a9c6716e088a1d Liam R. Howlett 2026-01-30 3059 s_max = cp->src[s].max; a9c6716e088a1d Liam R. Howlett 2026-01-30 3060 s_mt = cp->src[s].mt; a9c6716e088a1d Liam R. Howlett 2026-01-30 3061 d_mt = cp->dst[d].mt; 9ec1e972c3de31 Liam R. Howlett 2026-01-30 3062 do { a9c6716e088a1d Liam R. Howlett 2026-01-30 3063 dst_offset = 0; a9c6716e088a1d Liam R. Howlett 2026-01-30 3064 d_max = 0; a9c6716e088a1d Liam R. Howlett 2026-01-30 3065 dst = cp->dst[d].node; a9c6716e088a1d Liam R. Howlett 2026-01-30 3066 d_mt = cp->dst[d].mt; a9c6716e088a1d Liam R. Howlett 2026-01-30 3067 dst_size = split + 1; a9c6716e088a1d Liam R. Howlett 2026-01-30 3068 a9c6716e088a1d Liam R. Howlett 2026-01-30 3069 while (dst_size) { 9ec1e972c3de31 Liam R. Howlett 2026-01-30 3070 unsigned char size; 9ec1e972c3de31 Liam R. Howlett 2026-01-30 3071 a9c6716e088a1d Liam R. Howlett 2026-01-30 @3072 if (src_end - s_offset + 1 < dst_size) a9c6716e088a1d Liam R. Howlett 2026-01-30 3073 size = src_end - s_offset + 1; a9c6716e088a1d Liam R. Howlett 2026-01-30 3074 else a9c6716e088a1d Liam R. Howlett 2026-01-30 3075 size = dst_size; a9c6716e088a1d Liam R. Howlett 2026-01-30 3076 a9c6716e088a1d Liam R. Howlett 2026-01-30 3077 d_max = node_copy(mas, src, s_offset, size, s_max, s_mt, a9c6716e088a1d Liam R. Howlett 2026-01-30 3078 dst, dst_offset, d_mt); a9c6716e088a1d Liam R. Howlett 2026-01-30 3079 a9c6716e088a1d Liam R. Howlett 2026-01-30 3080 dst_offset += size; a9c6716e088a1d Liam R. Howlett 2026-01-30 3081 s_offset += size; a9c6716e088a1d Liam R. Howlett 2026-01-30 3082 if (s_offset > src_end) { a9c6716e088a1d Liam R. Howlett 2026-01-30 3083 /* This source is exhausted */ a9c6716e088a1d Liam R. Howlett 2026-01-30 3084 s++; a9c6716e088a1d Liam R. Howlett 2026-01-30 3085 if (s >= cp->s_count) { a9c6716e088a1d Liam R. Howlett 2026-01-30 3086 cp->dst[d].max = d_max; a9c6716e088a1d Liam R. Howlett 2026-01-30 3087 node_finalise(dst, d_mt, dst_offset); a9c6716e088a1d Liam R. Howlett 2026-01-30 3088 return; a9c6716e088a1d Liam R. Howlett 2026-01-30 3089 } a9c6716e088a1d Liam R. Howlett 2026-01-30 3090 /* Reset local src */ 9ec1e972c3de31 Liam R. Howlett 2026-01-30 3091 src = cp->src[s].node; 9ec1e972c3de31 Liam R. Howlett 2026-01-30 3092 s_offset = cp->src[s].start; 9ec1e972c3de31 Liam R. Howlett 2026-01-30 3093 src_end = cp->src[s].end; a9c6716e088a1d Liam R. Howlett 2026-01-30 3094 s_max = cp->src[s].max; a9c6716e088a1d Liam R. Howlett 2026-01-30 3095 s_mt = cp->src[s].mt; a9c6716e088a1d Liam R. Howlett 2026-01-30 3096 } a9c6716e088a1d Liam R. Howlett 2026-01-30 3097 a9c6716e088a1d Liam R. Howlett 2026-01-30 3098 dst_size -= size; a9c6716e088a1d Liam R. Howlett 2026-01-30 3099 data_offset += size; a9c6716e088a1d Liam R. Howlett 2026-01-30 3100 } a9c6716e088a1d Liam R. Howlett 2026-01-30 3101 a9c6716e088a1d Liam R. Howlett 2026-01-30 3102 split = cp->split; a9c6716e088a1d Liam R. Howlett 2026-01-30 3103 cp->dst[d].max = d_max; a9c6716e088a1d Liam R. Howlett 2026-01-30 3104 /* Handle null entries */ a9c6716e088a1d Liam R. Howlett 2026-01-30 3105 if (cp->dst[d].max != ULONG_MAX && a9c6716e088a1d Liam R. Howlett 2026-01-30 3106 !ma_slots(dst, d_mt)[dst_offset - 1]) { a9c6716e088a1d Liam R. Howlett 2026-01-30 3107 if (s_offset == cp->src[s].start) { a9c6716e088a1d Liam R. Howlett 2026-01-30 3108 s--; a9c6716e088a1d Liam R. Howlett 2026-01-30 3109 src = cp->src[s].node; a9c6716e088a1d Liam R. Howlett 2026-01-30 3110 src_end = cp->src[s].end; a9c6716e088a1d Liam R. Howlett 2026-01-30 3111 s_max = cp->src[s].max; a9c6716e088a1d Liam R. Howlett 2026-01-30 3112 s_mt = cp->src[s].mt; a9c6716e088a1d Liam R. Howlett 2026-01-30 3113 s_offset = src_end; a9c6716e088a1d Liam R. Howlett 2026-01-30 3114 } else { a9c6716e088a1d Liam R. Howlett 2026-01-30 3115 s_offset--; a9c6716e088a1d Liam R. Howlett 2026-01-30 3116 } a9c6716e088a1d Liam R. Howlett 2026-01-30 3117 /* Set dst max and clear pivot */ a9c6716e088a1d Liam R. Howlett 2026-01-30 3118 split++; a9c6716e088a1d Liam R. Howlett 2026-01-30 3119 data_offset--; a9c6716e088a1d Liam R. Howlett 2026-01-30 3120 dst_offset--; a9c6716e088a1d Liam R. Howlett 2026-01-30 3121 cp->dst[d].max = ma_pivots(dst, d_mt)[dst_offset - 1]; a9c6716e088a1d Liam R. Howlett 2026-01-30 3122 } a9c6716e088a1d Liam R. Howlett 2026-01-30 3123 a9c6716e088a1d Liam R. Howlett 2026-01-30 3124 node_finalise(dst, d_mt, dst_offset); a9c6716e088a1d Liam R. Howlett 2026-01-30 3125 ++d; /* Next destination */ a9c6716e088a1d Liam R. Howlett 2026-01-30 3126 if (d == cp->d_count - 1) a9c6716e088a1d Liam R. Howlett 2026-01-30 3127 split = cp->data - data_offset; a9c6716e088a1d Liam R. Howlett 2026-01-30 3128 a9c6716e088a1d Liam R. Howlett 2026-01-30 3129 if (d >= cp->d_count) { a9c6716e088a1d Liam R. Howlett 2026-01-30 3130 WARN_ON(data_offset < cp->data); a9c6716e088a1d Liam R. Howlett 2026-01-30 3131 return; a9c6716e088a1d Liam R. Howlett 2026-01-30 3132 } a9c6716e088a1d Liam R. Howlett 2026-01-30 3133 a9c6716e088a1d Liam R. Howlett 2026-01-30 3134 } while (data_offset <= cp->data); a9c6716e088a1d Liam R. Howlett 2026-01-30 3135 } a9c6716e088a1d Liam R. Howlett 2026-01-30 3136 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki