* [linux-rt-devel:linux-5.10.y-rt-rebase 211/269] drivers/md/raid5.c:2221:20: sparse: sparse: incorrect type in argument 1 (different address spaces)
@ 2021-01-07 14:29 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2021-01-07 14:29 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 12022 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git linux-5.10.y-rt-rebase
head: d57d7d09825f034b4ec37457940c83158c3731c8
commit: 309733a592ba448bc36d0e8d4a57597ac0218388 [211/269] md: raid5: Make raid5_percpu handling RT aware
config: m68k-randconfig-s031-20210107 (attached as .config)
compiler: m68k-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-208-g46a52ca4-dirty
# https://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git/commit/?id=309733a592ba448bc36d0e8d4a57597ac0218388
git remote add linux-rt-devel https://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git
git fetch --no-tags linux-rt-devel linux-5.10.y-rt-rebase
git checkout 309733a592ba448bc36d0e8d4a57597ac0218388
# 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__' ARCH=m68k
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
"sparse warnings: (new ones prefixed by >>)"
drivers/md/raid5.c: note: in included file:
drivers/md/raid5.h:270:14: sparse: sparse: array of flexible structures
drivers/md/raid5.c:641:40: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid5.c:641:40: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid5.c:641:40: sparse: struct md_rdev *
drivers/md/raid5.c:643:32: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid5.c:643:32: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid5.c:643:32: sparse: struct md_rdev *
drivers/md/raid5.c:667:40: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid5.c:667:40: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid5.c:667:40: sparse: struct md_rdev *
drivers/md/raid5.c:669:32: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid5.c:669:32: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid5.c:669:32: sparse: struct md_rdev *
drivers/md/raid5.c:1100:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid5.c:1100:25: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid5.c:1100:25: sparse: struct md_rdev *
drivers/md/raid5.c:1102:24: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid5.c:1102:24: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid5.c:1102:24: sparse: struct md_rdev *
>> drivers/md/raid5.c:2221:20: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __percpu * @@
drivers/md/raid5.c:2221:20: sparse: expected struct spinlock [usertype] *lock
drivers/md/raid5.c:2221:20: sparse: got struct spinlock [noderef] __percpu *
drivers/md/raid5.c:2280:22: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __percpu * @@
drivers/md/raid5.c:2280:22: sparse: expected struct spinlock [usertype] *lock
drivers/md/raid5.c:2280:22: sparse: got struct spinlock [noderef] __percpu *
drivers/md/raid5.c:3564:32: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid5.c:3564:32: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid5.c:3564:32: sparse: struct md_rdev *
drivers/md/raid5.c:3690:48: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid5.c:3690:48: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid5.c:3690:48: sparse: struct md_rdev *
drivers/md/raid5.c:3697:32: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid5.c:3697:32: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid5.c:3697:32: sparse: struct md_rdev *
drivers/md/raid5.c:3719:16: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid5.c:3719:16: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid5.c:3719:16: sparse: struct md_rdev *
drivers/md/raid5.c:4647:24: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid5.c:4647:24: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid5.c:4647:24: sparse: struct md_rdev *
drivers/md/raid5.c:4658:32: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid5.c:4658:32: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid5.c:4658:32: sparse: struct md_rdev *
drivers/md/raid5.c:4705:49: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid5.c:4705:49: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid5.c:4705:49: sparse: struct md_rdev *
drivers/md/raid5.c:4718:49: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid5.c:4718:49: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid5.c:4718:49: sparse: struct md_rdev *
drivers/md/raid5.c:4727:49: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid5.c:4727:49: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid5.c:4727:49: sparse: struct md_rdev *
drivers/md/raid5.c:4749:40: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid5.c:4749:40: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid5.c:4749:40: sparse: struct md_rdev *
drivers/md/raid5.c:5428:16: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid5.c:5428:16: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid5.c:5428:16: sparse: struct md_rdev *
drivers/md/raid5.c:5431:24: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid5.c:5431:24: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid5.c:5431:24: sparse: struct md_rdev *
drivers/md/raid5.c:7103:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __percpu * @@
drivers/md/raid5.c:7103:9: sparse: expected struct spinlock [usertype] *lock
drivers/md/raid5.c:7103:9: sparse: got struct spinlock [noderef] __percpu *
drivers/md/raid5.c:7809:40: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid5.c:7809:40: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid5.c:7809:40: sparse: struct md_rdev *
drivers/md/raid5.c:8022:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid5.c:8022:25: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid5.c:8022:25: sparse: struct md_rdev *
drivers/md/raid5.c:8038:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid5.c:8038:25: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid5.c:8038:25: sparse: struct md_rdev *
drivers/md/raid5.c:1475:16: sparse: sparse: dereference of noderef expression
drivers/md/raid5.c:1475:39: sparse: sparse: dereference of noderef expression
drivers/md/raid5.c:2207:54: sparse: sparse: dereference of noderef expression
drivers/md/raid5.c:2420:16: sparse: sparse: dereference of noderef expression
drivers/md/raid5.c:2422:9: sparse: sparse: dereference of noderef expression
drivers/md/raid5.c:2423:9: sparse: sparse: dereference of noderef expression
drivers/md/raid5.c:7029:23: sparse: sparse: dereference of noderef expression
drivers/md/raid5.c:7029:23: sparse: sparse: dereference of noderef expression
drivers/md/raid5.c:7030:9: sparse: sparse: dereference of noderef expression
drivers/md/raid5.c:7031:16: sparse: sparse: dereference of noderef expression
drivers/md/raid5.c:7032:9: sparse: sparse: dereference of noderef expression
drivers/md/raid5.c:7037:34: sparse: sparse: dereference of noderef expression
drivers/md/raid5.c:7038:17: sparse: sparse: dereference of noderef expression
drivers/md/raid5.c:7039:22: sparse: sparse: dereference of noderef expression
drivers/md/raid5.c:7103:9: sparse: sparse: dereference of noderef expression
drivers/md/raid5.c:97:9: sparse: sparse: context imbalance in 'raid5_quiesce' - different lock contexts for basic block
vim +2221 drivers/md/raid5.c
2209
2210 static void raid_run_ops(struct stripe_head *sh, unsigned long ops_request)
2211 {
2212 int overlap_clear = 0, i, disks = sh->disks;
2213 struct dma_async_tx_descriptor *tx = NULL;
2214 struct r5conf *conf = sh->raid_conf;
2215 int level = conf->level;
2216 struct raid5_percpu *percpu;
2217 unsigned long cpu;
2218
2219 cpu = get_cpu_light();
2220 percpu = per_cpu_ptr(conf->percpu, cpu);
> 2221 spin_lock(&percpu->lock);
2222 if (test_bit(STRIPE_OP_BIOFILL, &ops_request)) {
2223 ops_run_biofill(sh);
2224 overlap_clear++;
2225 }
2226
2227 if (test_bit(STRIPE_OP_COMPUTE_BLK, &ops_request)) {
2228 if (level < 6)
2229 tx = ops_run_compute5(sh, percpu);
2230 else {
2231 if (sh->ops.target2 < 0 || sh->ops.target < 0)
2232 tx = ops_run_compute6_1(sh, percpu);
2233 else
2234 tx = ops_run_compute6_2(sh, percpu);
2235 }
2236 /* terminate the chain if reconstruct is not set to be run */
2237 if (tx && !test_bit(STRIPE_OP_RECONSTRUCT, &ops_request))
2238 async_tx_ack(tx);
2239 }
2240
2241 if (test_bit(STRIPE_OP_PREXOR, &ops_request)) {
2242 if (level < 6)
2243 tx = ops_run_prexor5(sh, percpu, tx);
2244 else
2245 tx = ops_run_prexor6(sh, percpu, tx);
2246 }
2247
2248 if (test_bit(STRIPE_OP_PARTIAL_PARITY, &ops_request))
2249 tx = ops_run_partial_parity(sh, percpu, tx);
2250
2251 if (test_bit(STRIPE_OP_BIODRAIN, &ops_request)) {
2252 tx = ops_run_biodrain(sh, tx);
2253 overlap_clear++;
2254 }
2255
2256 if (test_bit(STRIPE_OP_RECONSTRUCT, &ops_request)) {
2257 if (level < 6)
2258 ops_run_reconstruct5(sh, percpu, tx);
2259 else
2260 ops_run_reconstruct6(sh, percpu, tx);
2261 }
2262
2263 if (test_bit(STRIPE_OP_CHECK, &ops_request)) {
2264 if (sh->check_state == check_state_run)
2265 ops_run_check_p(sh, percpu);
2266 else if (sh->check_state == check_state_run_q)
2267 ops_run_check_pq(sh, percpu, 0);
2268 else if (sh->check_state == check_state_run_pq)
2269 ops_run_check_pq(sh, percpu, 1);
2270 else
2271 BUG();
2272 }
2273
2274 if (overlap_clear && !sh->batch_head)
2275 for (i = disks; i--; ) {
2276 struct r5dev *dev = &sh->dev[i];
2277 if (test_and_clear_bit(R5_Overlap, &dev->flags))
2278 wake_up(&sh->raid_conf->wait_for_overlap);
2279 }
2280 spin_unlock(&percpu->lock);
2281 put_cpu_light();
2282 }
2283
---
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: 24485 bytes --]
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2021-01-07 14:29 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-07 14:29 [linux-rt-devel:linux-5.10.y-rt-rebase 211/269] drivers/md/raid5.c:2221:20: sparse: sparse: incorrect type in argument 1 (different address spaces) kernel test robot
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.