All of lore.kernel.org
 help / color / mirror / Atom feed
* [linux-rt-devel:linux-5.4.y-rt 182/325] drivers/md/raid5.c:2063:20: sparse: sparse: incorrect type in argument 1 (different address spaces)
@ 2021-01-08 12:01 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2021-01-08 12:01 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 13599 bytes --]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git linux-5.4.y-rt
head:   5fbf1e70f11dba64cc05c9d85120a3aa7c67a4a2
commit: ae8acffa3df219b2f37a21caa7727b647b7c024e [182/325] md: raid5: Make raid5_percpu handling RT aware
config: i386-randconfig-s001-20210108 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
reproduce:
        # 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=ae8acffa3df219b2f37a21caa7727b647b7c024e
        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.4.y-rt
        git checkout ae8acffa3df219b2f37a21caa7727b647b7c024e
        # save the attached .config to linux build tree
        make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=i386 

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:564:40: sparse: sparse: incompatible types in comparison expression (different address spaces):
   drivers/md/raid5.c:564:40: sparse:    struct md_rdev [noderef] <asn:4> *
   drivers/md/raid5.c:564:40: sparse:    struct md_rdev *
   drivers/md/raid5.c:566:32: sparse: sparse: incompatible types in comparison expression (different address spaces):
   drivers/md/raid5.c:566:32: sparse:    struct md_rdev [noderef] <asn:4> *
   drivers/md/raid5.c:566:32: sparse:    struct md_rdev *
   drivers/md/raid5.c:590:40: sparse: sparse: incompatible types in comparison expression (different address spaces):
   drivers/md/raid5.c:590:40: sparse:    struct md_rdev [noderef] <asn:4> *
   drivers/md/raid5.c:590:40: sparse:    struct md_rdev *
   drivers/md/raid5.c:592:32: sparse: sparse: incompatible types in comparison expression (different address spaces):
   drivers/md/raid5.c:592:32: sparse:    struct md_rdev [noderef] <asn:4> *
   drivers/md/raid5.c:592:32: sparse:    struct md_rdev *
   drivers/md/raid5.c:1023:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
   drivers/md/raid5.c:1023:25: sparse:    struct md_rdev [noderef] <asn:4> *
   drivers/md/raid5.c:1023:25: sparse:    struct md_rdev *
   drivers/md/raid5.c:1025:24: sparse: sparse: incompatible types in comparison expression (different address spaces):
   drivers/md/raid5.c:1025:24: sparse:    struct md_rdev [noderef] <asn:4> *
   drivers/md/raid5.c:1025:24: sparse:    struct md_rdev *
>> drivers/md/raid5.c:2063:20: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct spinlock [usertype] *lock @@     got struct spinlock [noderef] <asn:3> * @@
   drivers/md/raid5.c:2063:20: sparse:     expected struct spinlock [usertype] *lock
   drivers/md/raid5.c:2063:20: sparse:     got struct spinlock [noderef] <asn:3> *
   drivers/md/raid5.c:2122:22: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct spinlock [usertype] *lock @@     got struct spinlock [noderef] <asn:3> * @@
   drivers/md/raid5.c:2122:22: sparse:     expected struct spinlock [usertype] *lock
   drivers/md/raid5.c:2122:22: sparse:     got struct spinlock [noderef] <asn:3> *
   drivers/md/raid5.c:3363:32: sparse: sparse: incompatible types in comparison expression (different address spaces):
   drivers/md/raid5.c:3363:32: sparse:    struct md_rdev [noderef] <asn:4> *
   drivers/md/raid5.c:3363:32: sparse:    struct md_rdev *
   drivers/md/raid5.c:3489:48: sparse: sparse: incompatible types in comparison expression (different address spaces):
   drivers/md/raid5.c:3489:48: sparse:    struct md_rdev [noderef] <asn:4> *
   drivers/md/raid5.c:3489:48: sparse:    struct md_rdev *
   drivers/md/raid5.c:3496:32: sparse: sparse: incompatible types in comparison expression (different address spaces):
   drivers/md/raid5.c:3496:32: sparse:    struct md_rdev [noderef] <asn:4> *
   drivers/md/raid5.c:3496:32: sparse:    struct md_rdev *
   drivers/md/raid5.c:3518:16: sparse: sparse: incompatible types in comparison expression (different address spaces):
   drivers/md/raid5.c:3518:16: sparse:    struct md_rdev [noderef] <asn:4> *
   drivers/md/raid5.c:3518:16: sparse:    struct md_rdev *
   drivers/md/raid5.c:4438:24: sparse: sparse: incompatible types in comparison expression (different address spaces):
   drivers/md/raid5.c:4438:24: sparse:    struct md_rdev [noderef] <asn:4> *
   drivers/md/raid5.c:4438:24: sparse:    struct md_rdev *
   drivers/md/raid5.c:4449:32: sparse: sparse: incompatible types in comparison expression (different address spaces):
   drivers/md/raid5.c:4449:32: sparse:    struct md_rdev [noderef] <asn:4> *
   drivers/md/raid5.c:4449:32: sparse:    struct md_rdev *
   drivers/md/raid5.c:4496:49: sparse: sparse: incompatible types in comparison expression (different address spaces):
   drivers/md/raid5.c:4496:49: sparse:    struct md_rdev [noderef] <asn:4> *
   drivers/md/raid5.c:4496:49: sparse:    struct md_rdev *
   drivers/md/raid5.c:4509:49: sparse: sparse: incompatible types in comparison expression (different address spaces):
   drivers/md/raid5.c:4509:49: sparse:    struct md_rdev [noderef] <asn:4> *
   drivers/md/raid5.c:4509:49: sparse:    struct md_rdev *
   drivers/md/raid5.c:4518:49: sparse: sparse: incompatible types in comparison expression (different address spaces):
   drivers/md/raid5.c:4518:49: sparse:    struct md_rdev [noderef] <asn:4> *
   drivers/md/raid5.c:4518:49: sparse:    struct md_rdev *
   drivers/md/raid5.c:4540:40: sparse: sparse: incompatible types in comparison expression (different address spaces):
   drivers/md/raid5.c:4540:40: sparse:    struct md_rdev [noderef] <asn:4> *
   drivers/md/raid5.c:4540:40: sparse:    struct md_rdev *
   drivers/md/raid5.c:5239:16: sparse: sparse: incompatible types in comparison expression (different address spaces):
   drivers/md/raid5.c:5239:16: sparse:    struct md_rdev [noderef] <asn:4> *
   drivers/md/raid5.c:5239:16: sparse:    struct md_rdev *
   drivers/md/raid5.c:5242:24: sparse: sparse: incompatible types in comparison expression (different address spaces):
   drivers/md/raid5.c:5242:24: sparse:    struct md_rdev [noderef] <asn:4> *
   drivers/md/raid5.c:5242:24: sparse:    struct md_rdev *
   drivers/md/raid5.c:6826:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct spinlock [usertype] *lock @@     got struct spinlock [noderef] <asn:3> * @@
   drivers/md/raid5.c:6826:9: sparse:     expected struct spinlock [usertype] *lock
   drivers/md/raid5.c:6826:9: sparse:     got struct spinlock [noderef] <asn:3> *
>> drivers/md/raid5.c:6826:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct raw_spinlock [usertype] *lock @@     got struct raw_spinlock [noderef] <asn:3> * @@
   drivers/md/raid5.c:6826:9: sparse:     expected struct raw_spinlock [usertype] *lock
   drivers/md/raid5.c:6826:9: sparse:     got struct raw_spinlock [noderef] <asn:3> *
   drivers/md/raid5.c:7524:40: sparse: sparse: incompatible types in comparison expression (different address spaces):
   drivers/md/raid5.c:7524:40: sparse:    struct md_rdev [noderef] <asn:4> *
   drivers/md/raid5.c:7524:40: sparse:    struct md_rdev *
   drivers/md/raid5.c:7737:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
   drivers/md/raid5.c:7737:25: sparse:    struct md_rdev [noderef] <asn:4> *
   drivers/md/raid5.c:7737:25: sparse:    struct md_rdev *
   drivers/md/raid5.c:7753:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
   drivers/md/raid5.c:7753:25: sparse:    struct md_rdev [noderef] <asn:4> *
   drivers/md/raid5.c:7753:25: sparse:    struct md_rdev *
   drivers/md/raid5.c: note: in included file (through include/linux/bitops.h, include/linux/kernel.h, arch/x86/include/asm/percpu.h, ...):
   arch/x86/include/asm/bitops.h:77:37: sparse: sparse: cast truncates bits from constant value (ffffff7f becomes 7f)
   arch/x86/include/asm/bitops.h:77:37: sparse: sparse: cast truncates bits from constant value (ffffff7f becomes 7f)
   drivers/md/raid5.c:1394:16: sparse: sparse: dereference of noderef expression
   drivers/md/raid5.c:1394:39: sparse: sparse: dereference of noderef expression
   drivers/md/raid5.c:2049:54: sparse: sparse: dereference of noderef expression
   drivers/md/raid5.c:2244:16: sparse: sparse: dereference of noderef expression
   drivers/md/raid5.c:2246:9: sparse: sparse: dereference of noderef expression
   drivers/md/raid5.c:2247:9: sparse: sparse: dereference of noderef expression
   arch/x86/include/asm/bitops.h:77:37: sparse: sparse: cast truncates bits from constant value (ffffff7f becomes 7f)
   arch/x86/include/asm/bitops.h:77:37: sparse: sparse: cast truncates bits from constant value (ffffff7f becomes 7f)
   arch/x86/include/asm/bitops.h:77:37: sparse: sparse: cast truncates bits from constant value (ffffff7f becomes 7f)
   arch/x86/include/asm/bitops.h:77:37: sparse: sparse: cast truncates bits from constant value (ffffff7f becomes 7f)
   arch/x86/include/asm/bitops.h:77:37: sparse: sparse: cast truncates bits from constant value (ffffff7f becomes 7f)
   arch/x86/include/asm/bitops.h:77:37: sparse: sparse: cast truncates bits from constant value (ffffff7f becomes 7f)
   arch/x86/include/asm/bitops.h:77:37: sparse: sparse: cast truncates bits from constant value (ffffff7f becomes 7f)
   drivers/md/raid5.c:6751:23: sparse: sparse: dereference of noderef expression
   drivers/md/raid5.c:6751:23: sparse: sparse: dereference of noderef expression
   drivers/md/raid5.c:6752:9: sparse: sparse: dereference of noderef expression
   drivers/md/raid5.c:6753:16: sparse: sparse: dereference of noderef expression
   drivers/md/raid5.c:6754:9: sparse: sparse: dereference of noderef expression
   drivers/md/raid5.c:6759:34: sparse: sparse: dereference of noderef expression
   drivers/md/raid5.c:6760:17: sparse: sparse: dereference of noderef expression
   drivers/md/raid5.c:6761:22: sparse: sparse: dereference of noderef expression
   arch/x86/include/asm/bitops.h:77:37: sparse: sparse: cast truncates bits from constant value (ffffff7f becomes 7f)
   arch/x86/include/asm/bitops.h:77:37: sparse: sparse: cast truncates bits from constant value (ffffff7f becomes 7f)
   arch/x86/include/asm/bitops.h:77:37: sparse: sparse: cast truncates bits from constant value (ffffff7f becomes 7f)
   drivers/md/raid5.c:97:9: sparse: sparse: context imbalance in 'raid5_quiesce' - different lock contexts for basic block

vim +2063 drivers/md/raid5.c

  2051	
  2052	static void raid_run_ops(struct stripe_head *sh, unsigned long ops_request)
  2053	{
  2054		int overlap_clear = 0, i, disks = sh->disks;
  2055		struct dma_async_tx_descriptor *tx = NULL;
  2056		struct r5conf *conf = sh->raid_conf;
  2057		int level = conf->level;
  2058		struct raid5_percpu *percpu;
  2059		unsigned long cpu;
  2060	
  2061		cpu = get_cpu_light();
  2062		percpu = per_cpu_ptr(conf->percpu, cpu);
> 2063		spin_lock(&percpu->lock);
  2064		if (test_bit(STRIPE_OP_BIOFILL, &ops_request)) {
  2065			ops_run_biofill(sh);
  2066			overlap_clear++;
  2067		}
  2068	
  2069		if (test_bit(STRIPE_OP_COMPUTE_BLK, &ops_request)) {
  2070			if (level < 6)
  2071				tx = ops_run_compute5(sh, percpu);
  2072			else {
  2073				if (sh->ops.target2 < 0 || sh->ops.target < 0)
  2074					tx = ops_run_compute6_1(sh, percpu);
  2075				else
  2076					tx = ops_run_compute6_2(sh, percpu);
  2077			}
  2078			/* terminate the chain if reconstruct is not set to be run */
  2079			if (tx && !test_bit(STRIPE_OP_RECONSTRUCT, &ops_request))
  2080				async_tx_ack(tx);
  2081		}
  2082	
  2083		if (test_bit(STRIPE_OP_PREXOR, &ops_request)) {
  2084			if (level < 6)
  2085				tx = ops_run_prexor5(sh, percpu, tx);
  2086			else
  2087				tx = ops_run_prexor6(sh, percpu, tx);
  2088		}
  2089	
  2090		if (test_bit(STRIPE_OP_PARTIAL_PARITY, &ops_request))
  2091			tx = ops_run_partial_parity(sh, percpu, tx);
  2092	
  2093		if (test_bit(STRIPE_OP_BIODRAIN, &ops_request)) {
  2094			tx = ops_run_biodrain(sh, tx);
  2095			overlap_clear++;
  2096		}
  2097	
  2098		if (test_bit(STRIPE_OP_RECONSTRUCT, &ops_request)) {
  2099			if (level < 6)
  2100				ops_run_reconstruct5(sh, percpu, tx);
  2101			else
  2102				ops_run_reconstruct6(sh, percpu, tx);
  2103		}
  2104	
  2105		if (test_bit(STRIPE_OP_CHECK, &ops_request)) {
  2106			if (sh->check_state == check_state_run)
  2107				ops_run_check_p(sh, percpu);
  2108			else if (sh->check_state == check_state_run_q)
  2109				ops_run_check_pq(sh, percpu, 0);
  2110			else if (sh->check_state == check_state_run_pq)
  2111				ops_run_check_pq(sh, percpu, 1);
  2112			else
  2113				BUG();
  2114		}
  2115	
  2116		if (overlap_clear && !sh->batch_head)
  2117			for (i = disks; i--; ) {
  2118				struct r5dev *dev = &sh->dev[i];
  2119				if (test_and_clear_bit(R5_Overlap, &dev->flags))
  2120					wake_up(&sh->raid_conf->wait_for_overlap);
  2121			}
  2122		spin_unlock(&percpu->lock);
  2123		put_cpu_light();
  2124	}
  2125	

---
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: 30877 bytes --]

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2021-01-08 12:01 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-08 12:01 [linux-rt-devel:linux-5.4.y-rt 182/325] drivers/md/raid5.c:2063: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.