CC: [email protected] CC: [email protected] TO: Andy Shevchenko <[email protected]> CC: Andrew Morton <[email protected]> CC: Linux Memory Management List <[email protected]> CC: Cezary Rojewski <[email protected]>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: a96bfed64c8986d6404e553f18203cae1f5ac7e6 commit: e130816164e244b692921de49771eeb28205152d include/linux/list.h: add a macro to test if entry is pointing to the head date: 8 months ago :::::: branch date: 7 hours ago :::::: commit date: 8 months ago config: ia64-randconfig-s032-20210622 (attached as .config) compiler: ia64-linux-gcc (GCC) 9.3.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # apt-get install sparse # sparse version: v0.6.3-341-g8af24329-dirty # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e130816164e244b692921de49771eeb28205152d git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git git fetch --no-tags linus master git checkout e130816164e244b692921de49771eeb28205152d # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' W=1 ARCH=ia64 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <[email protected]> sparse warnings: (new ones prefixed by >>) >> drivers/dma/nbpfaxi.c:1122:27: sparse: sparse: context imbalance in >> 'nbpf_chan_tasklet' - different lock contexts for basic block vim +/nbpf_chan_tasklet +1122 drivers/dma/nbpfaxi.c b45b262cefd5b8 Guennadi Liakhovetski 2014-07-19 1115 bbc61540058a95 Allen Pais 2020-08-31 1116 static void nbpf_chan_tasklet(struct tasklet_struct *t) b45b262cefd5b8 Guennadi Liakhovetski 2014-07-19 1117 { bbc61540058a95 Allen Pais 2020-08-31 1118 struct nbpf_channel *chan = from_tasklet(chan, t, tasklet); b45b262cefd5b8 Guennadi Liakhovetski 2014-07-19 1119 struct nbpf_desc *desc, *tmp; 0024b2ac374490 Dave Jiang 2016-07-20 1120 struct dmaengine_desc_callback cb; b45b262cefd5b8 Guennadi Liakhovetski 2014-07-19 1121 b45b262cefd5b8 Guennadi Liakhovetski 2014-07-19 @1122 while (!list_empty(&chan->done)) { b45b262cefd5b8 Guennadi Liakhovetski 2014-07-19 1123 bool found = false, must_put, recycling = false; b45b262cefd5b8 Guennadi Liakhovetski 2014-07-19 1124 b45b262cefd5b8 Guennadi Liakhovetski 2014-07-19 1125 spin_lock_irq(&chan->lock); b45b262cefd5b8 Guennadi Liakhovetski 2014-07-19 1126 b45b262cefd5b8 Guennadi Liakhovetski 2014-07-19 1127 list_for_each_entry_safe(desc, tmp, &chan->done, node) { b45b262cefd5b8 Guennadi Liakhovetski 2014-07-19 1128 if (!desc->user_wait) { b45b262cefd5b8 Guennadi Liakhovetski 2014-07-19 1129 /* Newly completed descriptor, have to process */ b45b262cefd5b8 Guennadi Liakhovetski 2014-07-19 1130 found = true; b45b262cefd5b8 Guennadi Liakhovetski 2014-07-19 1131 break; b45b262cefd5b8 Guennadi Liakhovetski 2014-07-19 1132 } else if (async_tx_test_ack(&desc->async_tx)) { b45b262cefd5b8 Guennadi Liakhovetski 2014-07-19 1133 /* b45b262cefd5b8 Guennadi Liakhovetski 2014-07-19 1134 * This descriptor was waiting for a user ACK, b45b262cefd5b8 Guennadi Liakhovetski 2014-07-19 1135 * it can be recycled now. b45b262cefd5b8 Guennadi Liakhovetski 2014-07-19 1136 */ b45b262cefd5b8 Guennadi Liakhovetski 2014-07-19 1137 list_del(&desc->node); b45b262cefd5b8 Guennadi Liakhovetski 2014-07-19 1138 spin_unlock_irq(&chan->lock); b45b262cefd5b8 Guennadi Liakhovetski 2014-07-19 1139 nbpf_desc_put(desc); b45b262cefd5b8 Guennadi Liakhovetski 2014-07-19 1140 recycling = true; b45b262cefd5b8 Guennadi Liakhovetski 2014-07-19 1141 break; b45b262cefd5b8 Guennadi Liakhovetski 2014-07-19 1142 } b45b262cefd5b8 Guennadi Liakhovetski 2014-07-19 1143 } b45b262cefd5b8 Guennadi Liakhovetski 2014-07-19 1144 b45b262cefd5b8 Guennadi Liakhovetski 2014-07-19 1145 if (recycling) b45b262cefd5b8 Guennadi Liakhovetski 2014-07-19 1146 continue; b45b262cefd5b8 Guennadi Liakhovetski 2014-07-19 1147 b45b262cefd5b8 Guennadi Liakhovetski 2014-07-19 1148 if (!found) { b45b262cefd5b8 Guennadi Liakhovetski 2014-07-19 1149 /* This can happen if TERMINATE_ALL has been called */ b45b262cefd5b8 Guennadi Liakhovetski 2014-07-19 1150 spin_unlock_irq(&chan->lock); b45b262cefd5b8 Guennadi Liakhovetski 2014-07-19 1151 break; b45b262cefd5b8 Guennadi Liakhovetski 2014-07-19 1152 } b45b262cefd5b8 Guennadi Liakhovetski 2014-07-19 1153 b45b262cefd5b8 Guennadi Liakhovetski 2014-07-19 1154 dma_cookie_complete(&desc->async_tx); b45b262cefd5b8 Guennadi Liakhovetski 2014-07-19 1155 b45b262cefd5b8 Guennadi Liakhovetski 2014-07-19 1156 /* b45b262cefd5b8 Guennadi Liakhovetski 2014-07-19 1157 * With released lock we cannot dereference desc, maybe it's b45b262cefd5b8 Guennadi Liakhovetski 2014-07-19 1158 * still on the "done" list b45b262cefd5b8 Guennadi Liakhovetski 2014-07-19 1159 */ b45b262cefd5b8 Guennadi Liakhovetski 2014-07-19 1160 if (async_tx_test_ack(&desc->async_tx)) { b45b262cefd5b8 Guennadi Liakhovetski 2014-07-19 1161 list_del(&desc->node); b45b262cefd5b8 Guennadi Liakhovetski 2014-07-19 1162 must_put = true; b45b262cefd5b8 Guennadi Liakhovetski 2014-07-19 1163 } else { b45b262cefd5b8 Guennadi Liakhovetski 2014-07-19 1164 desc->user_wait = true; b45b262cefd5b8 Guennadi Liakhovetski 2014-07-19 1165 must_put = false; b45b262cefd5b8 Guennadi Liakhovetski 2014-07-19 1166 } b45b262cefd5b8 Guennadi Liakhovetski 2014-07-19 1167 0024b2ac374490 Dave Jiang 2016-07-20 1168 dmaengine_desc_get_callback(&desc->async_tx, &cb); b45b262cefd5b8 Guennadi Liakhovetski 2014-07-19 1169 b45b262cefd5b8 Guennadi Liakhovetski 2014-07-19 1170 /* ack and callback completed descriptor */ b45b262cefd5b8 Guennadi Liakhovetski 2014-07-19 1171 spin_unlock_irq(&chan->lock); b45b262cefd5b8 Guennadi Liakhovetski 2014-07-19 1172 0024b2ac374490 Dave Jiang 2016-07-20 1173 dmaengine_desc_callback_invoke(&cb, NULL); b45b262cefd5b8 Guennadi Liakhovetski 2014-07-19 1174 b45b262cefd5b8 Guennadi Liakhovetski 2014-07-19 1175 if (must_put) b45b262cefd5b8 Guennadi Liakhovetski 2014-07-19 1176 nbpf_desc_put(desc); b45b262cefd5b8 Guennadi Liakhovetski 2014-07-19 1177 } b45b262cefd5b8 Guennadi Liakhovetski 2014-07-19 1178 } b45b262cefd5b8 Guennadi Liakhovetski 2014-07-19 1179 :::::: The code at line 1122 was first introduced by commit :::::: b45b262cefd5b8eb2ba88d20e5bd295881293894 dmaengine: add a driver for AMBA AXI NBPF DMAC IP cores :::::: TO: Guennadi Liakhovetski <[email protected]> :::::: CC: Vinod Koul <[email protected]> --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/[email protected]
.config.gz
Description: application/gzip
_______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
