public inbox for linux-scsi@vger.kernel.org
 help / color / mirror / Atom feed
* Fwd: drivers/scsi/mvumi.c:407:40: sparse: sparse: incorrect type in argument 1 (different address spaces)
       [not found] <202312050259.TaopJEnL-lkp@intel.com>
@ 2023-12-05 17:52 ` Christophe Leroy
  2023-12-05 18:15   ` Bart Van Assche
  0 siblings, 1 reply; 2+ messages in thread
From: Christophe Leroy @ 2023-12-05 17:52 UTC (permalink / raw)
  To: Bart Van Assche; +Cc: scsi

Hi Bart,

You seem to be one of the latest and most active commiter on that 
driver, would you mind handling the sparse issues reported by the robot 
on that driver ?

Thanks
Christophe


-------- Message transféré --------
Sujet : drivers/scsi/mvumi.c:407:40: sparse: sparse: incorrect type in 
argument 1 (different address spaces)
Date : Tue, 5 Dec 2023 03:40:05 +0800
De : kernel test robot <lkp@intel.com>
Pour : Christophe Leroy <christophe.leroy@csgroup.eu>
Copie à : oe-kbuild-all@lists.linux.dev, linux-kernel@vger.kernel.org, 
Michael Ellerman <mpe@ellerman.id.au>

tree: 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   33cc938e65a98f1d29d0a18403dbbee050dcad9a
commit: 894fa235eb4ca0bfa692dbe4932c2f940cdc8c1e powerpc: inline iomap 
accessors
date:   3 years ago
config: powerpc-randconfig-r121-20231107 
(https://download.01.org/0day-ci/archive/20231205/202312050259.TaopJEnL-lkp@intel.com/config)
compiler: powerpc-linux-gcc (GCC) 13.2.0
reproduce: 
(https://download.01.org/0day-ci/archive/20231205/202312050259.TaopJEnL-lkp@intel.com/reproduce)

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
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: 
https://lore.kernel.org/oe-kbuild-all/202312050259.TaopJEnL-lkp@intel.com/

sparse warnings: (new ones prefixed by >>)
    drivers/scsi/mvumi.c:81:52: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void [noderef] 
__iomem *addr @@     got void * @@
    drivers/scsi/mvumi.c:81:52: sparse:     expected void [noderef] 
__iomem *addr
    drivers/scsi/mvumi.c:81:52: sparse:     got void *
    drivers/scsi/mvumi.c:90:39: sparse: sparse: incorrect type in 
assignment (different address spaces) @@     expected void * @@     got 
void [noderef] __iomem * @@
    drivers/scsi/mvumi.c:90:39: sparse:     expected void *
    drivers/scsi/mvumi.c:90:39: sparse:     got void [noderef] __iomem *
    drivers/scsi/mvumi.c:210:34: sparse: sparse: incorrect type in 
assignment (different base types) @@     expected unsigned int 
[usertype] baseaddr_l @@     got restricted __le32 [usertype] @@
    drivers/scsi/mvumi.c:210:34: sparse:     expected unsigned int 
[usertype] baseaddr_l
    drivers/scsi/mvumi.c:210:34: sparse:     got restricted __le32 
[usertype]
    drivers/scsi/mvumi.c:211:34: sparse: sparse: incorrect type in 
assignment (different base types) @@     expected unsigned int 
[usertype] baseaddr_h @@     got restricted __le32 [usertype] @@
    drivers/scsi/mvumi.c:211:34: sparse:     expected unsigned int 
[usertype] baseaddr_h
    drivers/scsi/mvumi.c:211:34: sparse:     got restricted __le32 
[usertype]
    drivers/scsi/mvumi.c:213:17: sparse: sparse: invalid assignment: |=
    drivers/scsi/mvumi.c:213:17: sparse:    left side has type unsigned int
    drivers/scsi/mvumi.c:213:17: sparse:    right side has type 
restricted __le32
    drivers/scsi/mvumi.c:213:17: sparse: sparse: incorrect type in 
assignment (different base types) @@     expected unsigned int 
[usertype] size @@     got restricted __le32 [usertype] @@
    drivers/scsi/mvumi.c:213:17: sparse:     expected unsigned int 
[usertype] size
    drivers/scsi/mvumi.c:213:17: sparse:     got restricted __le32 
[usertype]
    drivers/scsi/mvumi.c:242:26: sparse: sparse: incorrect type in 
assignment (different base types) @@     expected unsigned int 
[usertype] baseaddr_l @@     got restricted __le32 [usertype] @@
    drivers/scsi/mvumi.c:242:26: sparse:     expected unsigned int 
[usertype] baseaddr_l
    drivers/scsi/mvumi.c:242:26: sparse:     got restricted __le32 
[usertype]
    drivers/scsi/mvumi.c:243:26: sparse: sparse: incorrect type in 
assignment (different base types) @@     expected unsigned int 
[usertype] baseaddr_h @@     got restricted __le32 [usertype] @@
    drivers/scsi/mvumi.c:243:26: sparse:     expected unsigned int 
[usertype] baseaddr_h
    drivers/scsi/mvumi.c:243:26: sparse:     got restricted __le32 
[usertype]
    drivers/scsi/mvumi.c:245:9: sparse: sparse: invalid assignment: |=
    drivers/scsi/mvumi.c:245:9: sparse:    left side has type unsigned int
    drivers/scsi/mvumi.c:245:9: sparse:    right side has type 
restricted __le32
    drivers/scsi/mvumi.c:245:9: sparse: sparse: incorrect type in 
assignment (different base types) @@     expected unsigned int 
[usertype] size @@     got restricted __le32 [usertype] @@
    drivers/scsi/mvumi.c:245:9: sparse:     expected unsigned int 
[usertype] size
    drivers/scsi/mvumi.c:245:9: sparse:     got restricted __le32 [usertype]
>> drivers/scsi/mvumi.c:407:40: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __iomem *addr @@     got void *inb_read_pointer @@
    drivers/scsi/mvumi.c:407:40: sparse:     expected void const 
volatile [noderef] __iomem *addr
    drivers/scsi/mvumi.c:407:40: sparse:     got void *inb_read_pointer
>> drivers/scsi/mvumi.c:429:30: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __iomem *addr @@     got void *ib_shadow @@
    drivers/scsi/mvumi.c:429:30: sparse:     expected void const 
volatile [noderef] __iomem *addr
    drivers/scsi/mvumi.c:429:30: sparse:     got void *ib_shadow
>> drivers/scsi/mvumi.c:458:31: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void *ib_shadow @@
    drivers/scsi/mvumi.c:458:31: sparse:     expected void volatile 
[noderef] __iomem *addr
    drivers/scsi/mvumi.c:458:31: sparse:     got void *ib_shadow
>> drivers/scsi/mvumi.c:459:48: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void *inb_write_pointer @@
    drivers/scsi/mvumi.c:459:48: sparse:     expected void volatile 
[noderef] __iomem *addr
    drivers/scsi/mvumi.c:459:48: sparse:     got void *inb_write_pointer
>> drivers/scsi/mvumi.c:496:41: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __iomem *addr @@     got void *outb_copy_pointer @@
    drivers/scsi/mvumi.c:496:41: sparse:     expected void const 
volatile [noderef] __iomem *addr
    drivers/scsi/mvumi.c:496:41: sparse:     got void *outb_copy_pointer
>> drivers/scsi/mvumi.c:497:48: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __iomem *addr @@     got void *ob_shadow @@
    drivers/scsi/mvumi.c:497:48: sparse:     expected void const 
volatile [noderef] __iomem *addr
    drivers/scsi/mvumi.c:497:48: sparse:     got void *ob_shadow
>> drivers/scsi/mvumi.c:516:33: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __iomem *addr @@     got void *outb_read_pointer @@
    drivers/scsi/mvumi.c:516:33: sparse:     expected void const 
volatile [noderef] __iomem *addr
    drivers/scsi/mvumi.c:516:33: sparse:     got void *outb_read_pointer
    drivers/scsi/mvumi.c:517:33: sparse: sparse: incorrect type in 
argument 1 (different address spaces) @@     expected void const 
volatile [noderef] __iomem *addr @@     got void *outb_copy_pointer @@
    drivers/scsi/mvumi.c:517:33: sparse:     expected void const 
volatile [noderef] __iomem *addr
    drivers/scsi/mvumi.c:517:33: sparse:     got void *outb_copy_pointer
>> drivers/scsi/mvumi.c:578:42: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void *outb_read_pointer @@
    drivers/scsi/mvumi.c:578:42: sparse:     expected void volatile 
[noderef] __iomem *addr
    drivers/scsi/mvumi.c:578:42: sparse:     got void *outb_read_pointer
>> drivers/scsi/mvumi.c:585:26: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void *enpointa_mask_reg @@
    drivers/scsi/mvumi.c:585:26: sparse:     expected void volatile 
[noderef] __iomem *addr
    drivers/scsi/mvumi.c:585:26: sparse:     got void *enpointa_mask_reg
>> drivers/scsi/mvumi.c:586:26: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __iomem *addr @@     got void *arm_to_pciea_msg1 @@
    drivers/scsi/mvumi.c:586:26: sparse:     expected void const 
volatile [noderef] __iomem *addr
    drivers/scsi/mvumi.c:586:26: sparse:     got void *arm_to_pciea_msg1
>> drivers/scsi/mvumi.c:589:40: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void *pciea_to_arm_drbl_reg @@
    drivers/scsi/mvumi.c:589:40: sparse:     expected void volatile 
[noderef] __iomem *addr
    drivers/scsi/mvumi.c:589:40: sparse:     got void *pciea_to_arm_drbl_reg
>> drivers/scsi/mvumi.c:1281:28: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __iomem *addr @@     got void *arm_to_pciea_drbl_reg @@
    drivers/scsi/mvumi.c:1281:28: sparse:     expected void const 
volatile [noderef] __iomem *addr
    drivers/scsi/mvumi.c:1281:28: sparse:     got void 
*arm_to_pciea_drbl_reg
>> drivers/scsi/mvumi.c:1282:28: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void *arm_to_pciea_drbl_reg @@
    drivers/scsi/mvumi.c:1282:28: sparse:     expected void volatile 
[noderef] __iomem *addr
    drivers/scsi/mvumi.c:1282:28: sparse:     got void 
*arm_to_pciea_drbl_reg
>> drivers/scsi/mvumi.c:1284:48: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void *arm_to_pciea_mask_reg @@
    drivers/scsi/mvumi.c:1284:48: sparse:     expected void volatile 
[noderef] __iomem *addr
    drivers/scsi/mvumi.c:1284:48: sparse:     got void 
*arm_to_pciea_mask_reg
>> drivers/scsi/mvumi.c:1285:28: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __iomem *addr @@     got void *enpointa_mask_reg @@
    drivers/scsi/mvumi.c:1285:28: sparse:     expected void const 
volatile [noderef] __iomem *addr
    drivers/scsi/mvumi.c:1285:28: sparse:     got void *enpointa_mask_reg
    drivers/scsi/mvumi.c:1286:28: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void volatile 
[noderef] __iomem *addr @@     got void *enpointa_mask_reg @@
    drivers/scsi/mvumi.c:1286:28: sparse:     expected void volatile 
[noderef] __iomem *addr
    drivers/scsi/mvumi.c:1286:28: sparse:     got void *enpointa_mask_reg
    drivers/scsi/mvumi.c:612:26: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void volatile 
[noderef] __iomem *addr @@     got void *enpointa_mask_reg @@
    drivers/scsi/mvumi.c:612:26: sparse:     expected void volatile 
[noderef] __iomem *addr
    drivers/scsi/mvumi.c:612:26: sparse:     got void *enpointa_mask_reg
    drivers/scsi/mvumi.c:613:28: sparse: sparse: incorrect type in 
argument 1 (different address spaces) @@     expected void const 
volatile [noderef] __iomem *addr @@     got void *arm_to_pciea_msg1 @@
    drivers/scsi/mvumi.c:613:28: sparse:     expected void const 
volatile [noderef] __iomem *addr
    drivers/scsi/mvumi.c:613:28: sparse:     got void *arm_to_pciea_msg1
    drivers/scsi/mvumi.c:615:46: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void volatile 
[noderef] __iomem *addr @@     got void *pciea_to_arm_drbl_reg @@
    drivers/scsi/mvumi.c:615:46: sparse:     expected void volatile 
[noderef] __iomem *addr
    drivers/scsi/mvumi.c:615:46: sparse:     got void *pciea_to_arm_drbl_reg
    drivers/scsi/mvumi.c:624:36: sparse: sparse: incorrect type in 
argument 1 (different address spaces) @@     expected void const 
volatile [noderef] __iomem *addr @@     got void *arm_to_pciea_msg1 @@
    drivers/scsi/mvumi.c:624:36: sparse:     expected void const 
volatile [noderef] __iomem *addr
    drivers/scsi/mvumi.c:624:36: sparse:     got void *arm_to_pciea_msg1
>> drivers/scsi/mvumi.c:670:32: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void *reset_enable @@
    drivers/scsi/mvumi.c:670:32: sparse:     expected void volatile 
[noderef] __iomem *addr
    drivers/scsi/mvumi.c:670:32: sparse:     got void *reset_enable
>> drivers/scsi/mvumi.c:671:34: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void *reset_request @@
    drivers/scsi/mvumi.c:671:34: sparse:     expected void volatile 
[noderef] __iomem *addr
    drivers/scsi/mvumi.c:671:34: sparse:     got void *reset_request
    drivers/scsi/mvumi.c:673:35: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void volatile 
[noderef] __iomem *addr @@     got void *reset_enable @@
    drivers/scsi/mvumi.c:673:35: sparse:     expected void volatile 
[noderef] __iomem *addr
    drivers/scsi/mvumi.c:673:35: sparse:     got void *reset_enable
    drivers/scsi/mvumi.c:674:35: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void volatile 
[noderef] __iomem *addr @@     got void *reset_request @@
    drivers/scsi/mvumi.c:674:35: sparse:     expected void volatile 
[noderef] __iomem *addr
    drivers/scsi/mvumi.c:674:35: sparse:     got void *reset_request
>> drivers/scsi/mvumi.c:1100:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __iomem *addr @@     got void *arm_to_pciea_msg0 @@
    drivers/scsi/mvumi.c:1100:36: sparse:     expected void const 
volatile [noderef] __iomem *addr
    drivers/scsi/mvumi.c:1100:36: sparse:     got void *arm_to_pciea_msg0
>> drivers/scsi/mvumi.c:1115:52: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void *pciea_to_arm_msg1 @@
    drivers/scsi/mvumi.c:1115:52: sparse:     expected void volatile 
[noderef] __iomem *addr
    drivers/scsi/mvumi.c:1115:52: sparse:     got void *pciea_to_arm_msg1
>> drivers/scsi/mvumi.c:1116:39: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void *pciea_to_arm_msg0 @@
    drivers/scsi/mvumi.c:1116:39: sparse:     expected void volatile 
[noderef] __iomem *addr
    drivers/scsi/mvumi.c:1116:39: sparse:     got void *pciea_to_arm_msg0
    drivers/scsi/mvumi.c:1117:47: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void volatile 
[noderef] __iomem *addr @@     got void *pciea_to_arm_drbl_reg @@
    drivers/scsi/mvumi.c:1117:47: sparse:     expected void volatile 
[noderef] __iomem *addr
    drivers/scsi/mvumi.c:1117:47: sparse:     got void 
*pciea_to_arm_drbl_reg
    drivers/scsi/mvumi.c:1122:45: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void volatile 
[noderef] __iomem *addr @@     got void *pciea_to_arm_msg1 @@
    drivers/scsi/mvumi.c:1122:45: sparse:     expected void volatile 
[noderef] __iomem *addr
    drivers/scsi/mvumi.c:1122:45: sparse:     got void *pciea_to_arm_msg1
>> drivers/scsi/mvumi.c:1124:45: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void *arm_to_pciea_msg1 @@
    drivers/scsi/mvumi.c:1124:45: sparse:     expected void volatile 
[noderef] __iomem *addr
    drivers/scsi/mvumi.c:1124:45: sparse:     got void *arm_to_pciea_msg1
    drivers/scsi/mvumi.c:1127:39: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void volatile 
[noderef] __iomem *addr @@     got void *pciea_to_arm_msg0 @@
    drivers/scsi/mvumi.c:1127:39: sparse:     expected void volatile 
[noderef] __iomem *addr
    drivers/scsi/mvumi.c:1127:39: sparse:     got void *pciea_to_arm_msg0
    drivers/scsi/mvumi.c:1128:47: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void volatile 
[noderef] __iomem *addr @@     got void *pciea_to_arm_drbl_reg @@
    drivers/scsi/mvumi.c:1128:47: sparse:     expected void volatile 
[noderef] __iomem *addr
    drivers/scsi/mvumi.c:1128:47: sparse:     got void 
*pciea_to_arm_drbl_reg
    drivers/scsi/mvumi.c:1168:39: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void volatile 
[noderef] __iomem *addr @@     got void *pciea_to_arm_msg0 @@
    drivers/scsi/mvumi.c:1168:39: sparse:     expected void volatile 
[noderef] __iomem *addr
    drivers/scsi/mvumi.c:1168:39: sparse:     got void *pciea_to_arm_msg0
    drivers/scsi/mvumi.c:1169:47: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void volatile 
[noderef] __iomem *addr @@     got void *pciea_to_arm_drbl_reg @@
    drivers/scsi/mvumi.c:1169:47: sparse:     expected void volatile 
[noderef] __iomem *addr
    drivers/scsi/mvumi.c:1169:47: sparse:     got void 
*pciea_to_arm_drbl_reg
    drivers/scsi/mvumi.c:1174:36: sparse: sparse: incorrect type in 
argument 1 (different address spaces) @@     expected void const 
volatile [noderef] __iomem *addr @@     got void *enpointa_mask_reg @@
    drivers/scsi/mvumi.c:1174:36: sparse:     expected void const 
volatile [noderef] __iomem *addr
    drivers/scsi/mvumi.c:1174:36: sparse:     got void *enpointa_mask_reg
    drivers/scsi/mvumi.c:1176:36: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void volatile 
[noderef] __iomem *addr @@     got void *enpointa_mask_reg @@
    drivers/scsi/mvumi.c:1176:36: sparse:     expected void volatile 
[noderef] __iomem *addr
    drivers/scsi/mvumi.c:1176:36: sparse:     got void *enpointa_mask_reg
    drivers/scsi/mvumi.c:1177:50: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void volatile 
[noderef] __iomem *addr @@     got void *ib_shadow @@
    drivers/scsi/mvumi.c:1177:50: sparse:     expected void volatile 
[noderef] __iomem *addr
    drivers/scsi/mvumi.c:1177:50: sparse:     got void *ib_shadow
>> drivers/scsi/mvumi.c:1180:45: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void *inb_aval_count_basel @@
    drivers/scsi/mvumi.c:1180:45: sparse:     expected void volatile 
[noderef] __iomem *addr
    drivers/scsi/mvumi.c:1180:45: sparse:     got void *inb_aval_count_basel
>> drivers/scsi/mvumi.c:1182:45: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void *inb_aval_count_baseh @@
    drivers/scsi/mvumi.c:1182:45: sparse:     expected void volatile 
[noderef] __iomem *addr
    drivers/scsi/mvumi.c:1182:45: sparse:     got void *inb_aval_count_baseh
>> drivers/scsi/mvumi.c:1188:61: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void *ob_shadow @@
    drivers/scsi/mvumi.c:1188:61: sparse:     expected void volatile 
[noderef] __iomem *addr
    drivers/scsi/mvumi.c:1188:61: sparse:     got void *ob_shadow
>> drivers/scsi/mvumi.c:1190:61: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void *outb_copy_basel @@
    drivers/scsi/mvumi.c:1190:61: sparse:     expected void volatile 
[noderef] __iomem *addr
    drivers/scsi/mvumi.c:1190:61: sparse:     got void *outb_copy_basel
>> drivers/scsi/mvumi.c:1192:61: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void *outb_copy_baseh @@
    drivers/scsi/mvumi.c:1192:61: sparse:     expected void volatile 
[noderef] __iomem *addr
    drivers/scsi/mvumi.c:1192:61: sparse:     got void *outb_copy_baseh
    drivers/scsi/mvumi.c:1244:34: sparse: sparse: incorrect type in 
argument 1 (different address spaces) @@     expected void const 
volatile [noderef] __iomem *addr @@     got void *arm_to_pciea_msg1 @@
    drivers/scsi/mvumi.c:1244:34: sparse:     expected void const 
volatile [noderef] __iomem *addr
    drivers/scsi/mvumi.c:1244:34: sparse:     got void *arm_to_pciea_msg1
    drivers/scsi/mvumi.c:1248:51: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void volatile 
[noderef] __iomem *addr @@     got void *pciea_to_arm_drbl_reg @@
    drivers/scsi/mvumi.c:1248:51: sparse:     expected void volatile 
[noderef] __iomem *addr
    drivers/scsi/mvumi.c:1248:51: sparse:     got void 
*pciea_to_arm_drbl_reg
    drivers/scsi/mvumi.c:1256:42: sparse: sparse: incorrect type in 
argument 1 (different address spaces) @@     expected void const 
volatile [noderef] __iomem *addr @@     got void *arm_to_pciea_msg1 @@
    drivers/scsi/mvumi.c:1256:42: sparse:     expected void const 
volatile [noderef] __iomem *addr
    drivers/scsi/mvumi.c:1256:42: sparse:     got void *arm_to_pciea_msg1
    drivers/scsi/mvumi.c:1849:35: sparse: sparse: incorrect type in 
assignment (different base types) @@     expected unsigned int 
[usertype] src_low_addr @@     got restricted __le32 [usertype] @@
    drivers/scsi/mvumi.c:1849:35: sparse:     expected unsigned int 
[usertype] src_low_addr
    drivers/scsi/mvumi.c:1849:35: sparse:     got restricted __le32 
[usertype]
    drivers/scsi/mvumi.c:1851:36: sparse: sparse: incorrect type in 
assignment (different base types) @@     expected unsigned int 
[usertype] src_high_addr @@     got restricted __le32 [usertype] @@
    drivers/scsi/mvumi.c:1851:36: sparse:     expected unsigned int 
[usertype] src_high_addr
    drivers/scsi/mvumi.c:1851:36: sparse:     got restricted __le32 
[usertype]
    drivers/scsi/mvumi.c:1903:48: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void volatile 
[noderef] __iomem *addr @@     got void *arm_to_pciea_mask_reg @@
    drivers/scsi/mvumi.c:1903:48: sparse:     expected void volatile 
[noderef] __iomem *addr
    drivers/scsi/mvumi.c:1903:48: sparse:     got void 
*arm_to_pciea_mask_reg
    drivers/scsi/mvumi.c:1904:29: sparse: sparse: incorrect type in 
argument 1 (different address spaces) @@     expected void const 
volatile [noderef] __iomem *addr @@     got void *enpointa_mask_reg @@
    drivers/scsi/mvumi.c:1904:29: sparse:     expected void const 
volatile [noderef] __iomem *addr
    drivers/scsi/mvumi.c:1904:29: sparse:     got void *enpointa_mask_reg
    drivers/scsi/mvumi.c:1906:29: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void volatile 
[noderef] __iomem *addr @@     got void *enpointa_mask_reg @@
    drivers/scsi/mvumi.c:1906:29: sparse:     expected void volatile 
[noderef] __iomem *addr
    drivers/scsi/mvumi.c:1906:29: sparse:     got void *enpointa_mask_reg
    drivers/scsi/mvumi.c:1918:26: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void volatile 
[noderef] __iomem *addr @@     got void *arm_to_pciea_mask_reg @@
    drivers/scsi/mvumi.c:1918:26: sparse:     expected void volatile 
[noderef] __iomem *addr
    drivers/scsi/mvumi.c:1918:26: sparse:     got void 
*arm_to_pciea_mask_reg
    drivers/scsi/mvumi.c:1919:29: sparse: sparse: incorrect type in 
argument 1 (different address spaces) @@     expected void const 
volatile [noderef] __iomem *addr @@     got void *enpointa_mask_reg @@
    drivers/scsi/mvumi.c:1919:29: sparse:     expected void const 
volatile [noderef] __iomem *addr
    drivers/scsi/mvumi.c:1919:29: sparse:     got void *enpointa_mask_reg
    drivers/scsi/mvumi.c:1922:29: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void volatile 
[noderef] __iomem *addr @@     got void *enpointa_mask_reg @@
    drivers/scsi/mvumi.c:1922:29: sparse:     expected void volatile 
[noderef] __iomem *addr
    drivers/scsi/mvumi.c:1922:29: sparse:     got void *enpointa_mask_reg
>> drivers/scsi/mvumi.c:1931:31: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __iomem *addr @@     got void *main_int_cause_reg @@
    drivers/scsi/mvumi.c:1931:31: sparse:     expected void const 
volatile [noderef] __iomem *addr
    drivers/scsi/mvumi.c:1931:31: sparse:     got void *main_int_cause_reg
>> drivers/scsi/mvumi.c:1935:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __iomem *addr @@     got void *outb_isr_cause @@
    drivers/scsi/mvumi.c:1935:36: sparse:     expected void const 
volatile [noderef] __iomem *addr
    drivers/scsi/mvumi.c:1935:36: sparse:     got void *outb_isr_cause
>> drivers/scsi/mvumi.c:1939:61: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void *outb_isr_cause @@
    drivers/scsi/mvumi.c:1939:61: sparse:     expected void volatile 
[noderef] __iomem *addr
    drivers/scsi/mvumi.c:1939:61: sparse:     got void *outb_isr_cause
    drivers/scsi/mvumi.c:1945:53: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void volatile 
[noderef] __iomem *addr @@     got void *outb_isr_cause @@
    drivers/scsi/mvumi.c:1945:53: sparse:     expected void volatile 
[noderef] __iomem *addr
    drivers/scsi/mvumi.c:1945:53: sparse:     got void *outb_isr_cause
    drivers/scsi/mvumi.c:1951:36: sparse: sparse: incorrect type in 
argument 1 (different address spaces) @@     expected void const 
volatile [noderef] __iomem *addr @@     got void *outb_isr_cause @@
    drivers/scsi/mvumi.c:1951:36: sparse:     expected void const 
volatile [noderef] __iomem *addr
    drivers/scsi/mvumi.c:1951:36: sparse:     got void *outb_isr_cause
    drivers/scsi/mvumi.c:1953:61: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void volatile 
[noderef] __iomem *addr @@     got void *outb_isr_cause @@
    drivers/scsi/mvumi.c:1953:61: sparse:     expected void volatile 
[noderef] __iomem *addr
    drivers/scsi/mvumi.c:1953:61: sparse:     got void *outb_isr_cause
    drivers/scsi/mvumi.c:1956:43: sparse: sparse: incorrect type in 
argument 1 (different address spaces) @@     expected void const 
volatile [noderef] __iomem *addr @@     got void *arm_to_pciea_drbl_reg @@
    drivers/scsi/mvumi.c:1956:43: sparse:     expected void const 
volatile [noderef] __iomem *addr
    drivers/scsi/mvumi.c:1956:43: sparse:     got void 
*arm_to_pciea_drbl_reg
    drivers/scsi/mvumi.c:1958:51: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void volatile 
[noderef] __iomem *addr @@     got void *arm_to_pciea_drbl_reg @@
    drivers/scsi/mvumi.c:1958:51: sparse:     expected void volatile 
[noderef] __iomem *addr
    drivers/scsi/mvumi.c:1958:51: sparse:     got void 
*arm_to_pciea_drbl_reg
    drivers/scsi/mvumi.c:1975:37: sparse: sparse: incorrect type in 
argument 1 (different address spaces) @@     expected void const 
volatile [noderef] __iomem *addr @@     got void *arm_to_pciea_drbl_reg @@
    drivers/scsi/mvumi.c:1975:37: sparse:     expected void const 
volatile [noderef] __iomem *addr
    drivers/scsi/mvumi.c:1975:37: sparse:     got void 
*arm_to_pciea_drbl_reg
    drivers/scsi/mvumi.c:1977:45: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void volatile 
[noderef] __iomem *addr @@     got void *arm_to_pciea_drbl_reg @@
    drivers/scsi/mvumi.c:1977:45: sparse:     expected void volatile 
[noderef] __iomem *addr
    drivers/scsi/mvumi.c:1977:45: sparse:     got void 
*arm_to_pciea_drbl_reg

vim +407 drivers/scsi/mvumi.c

f0c568a478f0353 Jianyun Li 2011-05-11  401  bd756ddea18e02c Shun Fu 
2012-09-23  402  static unsigned int mvumi_check_ib_list_9143(struct 
mvumi_hba *mhba)
f0c568a478f0353 Jianyun Li 2011-05-11  403  {
bd756ddea18e02c Shun Fu    2012-09-23  404  	unsigned int ib_rp_reg;
bd756ddea18e02c Shun Fu    2012-09-23  405  	struct mvumi_hw_regs *regs 
= mhba->regs;
bd756ddea18e02c Shun Fu    2012-09-23  406  bd756ddea18e02c Shun Fu 
2012-09-23 @407  	ib_rp_reg = ioread32(mhba->regs->inb_read_pointer);
f0c568a478f0353 Jianyun Li 2011-05-11  408  bd756ddea18e02c Shun Fu 
2012-09-23  409  	if (unlikely(((ib_rp_reg & regs->cl_slot_num_mask) ==
bd756ddea18e02c Shun Fu    2012-09-23  410  			(mhba->ib_cur_slot & 
regs->cl_slot_num_mask)) &&
bd756ddea18e02c Shun Fu    2012-09-23  411  			((ib_rp_reg & 
regs->cl_pointer_toggle)
bd756ddea18e02c Shun Fu    2012-09-23  412  			 != (mhba->ib_cur_slot & 
regs->cl_pointer_toggle)))) {
bd756ddea18e02c Shun Fu    2012-09-23  413  		dev_warn(&mhba->pdev->dev, 
"no free slot to use.\n");
bd756ddea18e02c Shun Fu    2012-09-23  414  		return 0;
bd756ddea18e02c Shun Fu    2012-09-23  415  	}
f0c568a478f0353 Jianyun Li 2011-05-11  416  	if 
(atomic_read(&mhba->fw_outstanding) >= mhba->max_io) {
f0c568a478f0353 Jianyun Li 2011-05-11  417  		dev_warn(&mhba->pdev->dev, 
"firmware io overflow.\n");
bd756ddea18e02c Shun Fu    2012-09-23  418  		return 0;
bd756ddea18e02c Shun Fu    2012-09-23  419  	} else {
bd756ddea18e02c Shun Fu    2012-09-23  420  		return mhba->max_io - 
atomic_read(&mhba->fw_outstanding);
bd756ddea18e02c Shun Fu    2012-09-23  421  	}
f0c568a478f0353 Jianyun Li 2011-05-11  422  }
f0c568a478f0353 Jianyun Li 2011-05-11  423  bd756ddea18e02c Shun Fu 
2012-09-23  424  static unsigned int mvumi_check_ib_list_9580(struct 
mvumi_hba *mhba)
bd756ddea18e02c Shun Fu    2012-09-23  425  {
bd756ddea18e02c Shun Fu    2012-09-23  426  	unsigned int count;
bd756ddea18e02c Shun Fu    2012-09-23  427  	if 
(atomic_read(&mhba->fw_outstanding) >= (mhba->max_io - 1))
bd756ddea18e02c Shun Fu    2012-09-23  428  		return 0;
bd756ddea18e02c Shun Fu    2012-09-23 @429  	count = 
ioread32(mhba->ib_shadow);
bd756ddea18e02c Shun Fu    2012-09-23  430  	if (count == 0xffff)
bd756ddea18e02c Shun Fu    2012-09-23  431  		return 0;
bd756ddea18e02c Shun Fu    2012-09-23  432  	return count;
f0c568a478f0353 Jianyun Li 2011-05-11  433  }
f0c568a478f0353 Jianyun Li 2011-05-11  434  bd756ddea18e02c Shun Fu 
2012-09-23  435  static void mvumi_get_ib_list_entry(struct mvumi_hba 
*mhba, void **ib_entry)
bd756ddea18e02c Shun Fu    2012-09-23  436  {
bd756ddea18e02c Shun Fu    2012-09-23  437  	unsigned int cur_ib_entry;
bd756ddea18e02c Shun Fu    2012-09-23  438  bd756ddea18e02c Shun Fu 
2012-09-23  439  	cur_ib_entry = mhba->ib_cur_slot & 
mhba->regs->cl_slot_num_mask;
f0c568a478f0353 Jianyun Li 2011-05-11  440  	cur_ib_entry++;
f0c568a478f0353 Jianyun Li 2011-05-11  441  	if (cur_ib_entry >= 
mhba->list_num_io) {
f0c568a478f0353 Jianyun Li 2011-05-11  442  		cur_ib_entry -= 
mhba->list_num_io;
bd756ddea18e02c Shun Fu    2012-09-23  443  		mhba->ib_cur_slot ^= 
mhba->regs->cl_pointer_toggle;
f0c568a478f0353 Jianyun Li 2011-05-11  444  	}
bd756ddea18e02c Shun Fu    2012-09-23  445  	mhba->ib_cur_slot &= 
~mhba->regs->cl_slot_num_mask;
bd756ddea18e02c Shun Fu    2012-09-23  446  	mhba->ib_cur_slot |= 
(cur_ib_entry & mhba->regs->cl_slot_num_mask);
bd756ddea18e02c Shun Fu    2012-09-23  447  	if (mhba->hba_capability & 
HS_CAPABILITY_SUPPORT_DYN_SRC) {
bd756ddea18e02c Shun Fu    2012-09-23  448  		*ib_entry = mhba->ib_list 
+ cur_ib_entry *
bd756ddea18e02c Shun Fu    2012-09-23  449  				sizeof(struct 
mvumi_dyn_list_entry);
bd756ddea18e02c Shun Fu    2012-09-23  450  	} else {
f0c568a478f0353 Jianyun Li 2011-05-11  451  		*ib_entry = mhba->ib_list 
+ cur_ib_entry * mhba->ib_max_size;
bd756ddea18e02c Shun Fu    2012-09-23  452  	}
f0c568a478f0353 Jianyun Li 2011-05-11  453 
atomic_inc(&mhba->fw_outstanding);
f0c568a478f0353 Jianyun Li 2011-05-11  454  }
f0c568a478f0353 Jianyun Li 2011-05-11  455  f0c568a478f0353 Jianyun Li 
2011-05-11  456  static void mvumi_send_ib_list_entry(struct mvumi_hba 
*mhba)
f0c568a478f0353 Jianyun Li 2011-05-11  457  {
bd756ddea18e02c Shun Fu    2012-09-23 @458  	iowrite32(0xffff, 
mhba->ib_shadow);
bd756ddea18e02c Shun Fu    2012-09-23 @459 
iowrite32(mhba->ib_cur_slot, mhba->regs->inb_write_pointer);
f0c568a478f0353 Jianyun Li 2011-05-11  460  }
f0c568a478f0353 Jianyun Li 2011-05-11  461  f0c568a478f0353 Jianyun Li 
2011-05-11  462  static char mvumi_check_ob_frame(struct mvumi_hba *mhba,
f0c568a478f0353 Jianyun Li 2011-05-11  463  		unsigned int cur_obf, 
struct mvumi_rsp_frame *p_outb_frame)
f0c568a478f0353 Jianyun Li 2011-05-11  464  {
f0c568a478f0353 Jianyun Li 2011-05-11  465  	unsigned short tag, request_id;
f0c568a478f0353 Jianyun Li 2011-05-11  466  f0c568a478f0353 Jianyun Li 
2011-05-11  467  	udelay(1);
f0c568a478f0353 Jianyun Li 2011-05-11  468  	p_outb_frame = 
mhba->ob_list + cur_obf * mhba->ob_max_size;
f0c568a478f0353 Jianyun Li 2011-05-11  469  	request_id = 
p_outb_frame->request_id;
f0c568a478f0353 Jianyun Li 2011-05-11  470  	tag = p_outb_frame->tag;
f0c568a478f0353 Jianyun Li 2011-05-11  471  	if (tag > 
mhba->tag_pool.size) {
f0c568a478f0353 Jianyun Li 2011-05-11  472  		dev_err(&mhba->pdev->dev, 
"ob frame data error\n");
f0c568a478f0353 Jianyun Li 2011-05-11  473  		return -1;
f0c568a478f0353 Jianyun Li 2011-05-11  474  	}
f0c568a478f0353 Jianyun Li 2011-05-11  475  	if (mhba->tag_cmd[tag] == 
NULL) {
f0c568a478f0353 Jianyun Li 2011-05-11  476  		dev_err(&mhba->pdev->dev, 
"tag[0x%x] with NO command\n", tag);
f0c568a478f0353 Jianyun Li 2011-05-11  477  		return -1;
f0c568a478f0353 Jianyun Li 2011-05-11  478  	} else if 
(mhba->tag_cmd[tag]->request_id != request_id &&
f0c568a478f0353 Jianyun Li 2011-05-11  479  					 
mhba->request_id_enabled) {
f0c568a478f0353 Jianyun Li 2011-05-11  480  			dev_err(&mhba->pdev->dev, 
"request ID from FW:0x%x,"
f0c568a478f0353 Jianyun Li 2011-05-11  481  					"cmd request 
ID:0x%x\n", request_id,
f0c568a478f0353 Jianyun Li 2011-05-11  482  				 
mhba->tag_cmd[tag]->request_id);
f0c568a478f0353 Jianyun Li 2011-05-11  483  			return -1;
f0c568a478f0353 Jianyun Li 2011-05-11  484  	}
f0c568a478f0353 Jianyun Li 2011-05-11  485  f0c568a478f0353 Jianyun Li 
2011-05-11  486  	return 0;
f0c568a478f0353 Jianyun Li 2011-05-11  487  }
f0c568a478f0353 Jianyun Li 2011-05-11  488  bd756ddea18e02c Shun Fu 
2012-09-23  489  static int mvumi_check_ob_list_9143(struct mvumi_hba *mhba,
bd756ddea18e02c Shun Fu    2012-09-23  490  			unsigned int *cur_obf, 
unsigned int *assign_obf_end)
f0c568a478f0353 Jianyun Li 2011-05-11  491  {
bd756ddea18e02c Shun Fu    2012-09-23  492  	unsigned int ob_write, 
ob_write_shadow;
bd756ddea18e02c Shun Fu    2012-09-23  493  	struct mvumi_hw_regs *regs 
= mhba->regs;
f0c568a478f0353 Jianyun Li 2011-05-11  494  f0c568a478f0353 Jianyun Li 
2011-05-11  495  	do {
bd756ddea18e02c Shun Fu    2012-09-23 @496  		ob_write = 
ioread32(regs->outb_copy_pointer);
bd756ddea18e02c Shun Fu    2012-09-23 @497  		ob_write_shadow = 
ioread32(mhba->ob_shadow);
bd756ddea18e02c Shun Fu    2012-09-23  498  	} while ((ob_write & 
regs->cl_slot_num_mask) != ob_write_shadow);
f0c568a478f0353 Jianyun Li 2011-05-11  499  bd756ddea18e02c Shun Fu 
2012-09-23  500  	*cur_obf = mhba->ob_cur_slot & 
mhba->regs->cl_slot_num_mask;
bd756ddea18e02c Shun Fu    2012-09-23  501  	*assign_obf_end = ob_write 
& mhba->regs->cl_slot_num_mask;
f0c568a478f0353 Jianyun Li 2011-05-11  502  bd756ddea18e02c Shun Fu 
2012-09-23  503  	if ((ob_write & regs->cl_pointer_toggle) !=
bd756ddea18e02c Shun Fu    2012-09-23  504  			(mhba->ob_cur_slot & 
regs->cl_pointer_toggle)) {
bd756ddea18e02c Shun Fu    2012-09-23  505  		*assign_obf_end += 
mhba->list_num_io;
bd756ddea18e02c Shun Fu    2012-09-23  506  	}
bd756ddea18e02c Shun Fu    2012-09-23  507  	return 0;
f0c568a478f0353 Jianyun Li 2011-05-11  508  }
f0c568a478f0353 Jianyun Li 2011-05-11  509  bd756ddea18e02c Shun Fu 
2012-09-23  510  static int mvumi_check_ob_list_9580(struct mvumi_hba *mhba,
bd756ddea18e02c Shun Fu    2012-09-23  511  			unsigned int *cur_obf, 
unsigned int *assign_obf_end)
bd756ddea18e02c Shun Fu    2012-09-23  512  {
bd756ddea18e02c Shun Fu    2012-09-23  513  	unsigned int ob_write;
bd756ddea18e02c Shun Fu    2012-09-23  514  	struct mvumi_hw_regs *regs 
= mhba->regs;
bd756ddea18e02c Shun Fu    2012-09-23  515  bd756ddea18e02c Shun Fu 
2012-09-23 @516  	ob_write = ioread32(regs->outb_read_pointer);
bd756ddea18e02c Shun Fu    2012-09-23  517  	ob_write = 
ioread32(regs->outb_copy_pointer);
bd756ddea18e02c Shun Fu    2012-09-23  518  	*cur_obf = 
mhba->ob_cur_slot & mhba->regs->cl_slot_num_mask;
bd756ddea18e02c Shun Fu    2012-09-23  519  	*assign_obf_end = ob_write 
& mhba->regs->cl_slot_num_mask;
bd756ddea18e02c Shun Fu    2012-09-23  520  	if (*assign_obf_end < *cur_obf)
bd756ddea18e02c Shun Fu    2012-09-23  521  		*assign_obf_end += 
mhba->list_num_io;
bd756ddea18e02c Shun Fu    2012-09-23  522  	else if (*assign_obf_end == 
*cur_obf)
bd756ddea18e02c Shun Fu    2012-09-23  523  		return -1;
bd756ddea18e02c Shun Fu    2012-09-23  524  	return 0;
bd756ddea18e02c Shun Fu    2012-09-23  525  }
bd756ddea18e02c Shun Fu    2012-09-23  526  bd756ddea18e02c Shun Fu 
2012-09-23  527  static void mvumi_receive_ob_list_entry(struct 
mvumi_hba *mhba)
bd756ddea18e02c Shun Fu    2012-09-23  528  {
bd756ddea18e02c Shun Fu    2012-09-23  529  	unsigned int cur_obf, 
assign_obf_end, i;
bd756ddea18e02c Shun Fu    2012-09-23  530  	struct mvumi_ob_data *ob_data;
bd756ddea18e02c Shun Fu    2012-09-23  531  	struct mvumi_rsp_frame 
*p_outb_frame;
bd756ddea18e02c Shun Fu    2012-09-23  532  	struct mvumi_hw_regs *regs 
= mhba->regs;
bd756ddea18e02c Shun Fu    2012-09-23  533  bd756ddea18e02c Shun Fu 
2012-09-23  534  	if (mhba->instancet->check_ob_list(mhba, &cur_obf, 
&assign_obf_end))
bd756ddea18e02c Shun Fu    2012-09-23  535  		return;
bd756ddea18e02c Shun Fu    2012-09-23  536  f0c568a478f0353 Jianyun Li 
2011-05-11  537  	for (i = (assign_obf_end - cur_obf); i != 0; i--) {
f0c568a478f0353 Jianyun Li 2011-05-11  538  		cur_obf++;
f0c568a478f0353 Jianyun Li 2011-05-11  539  		if (cur_obf >= 
mhba->list_num_io) {
f0c568a478f0353 Jianyun Li 2011-05-11  540  			cur_obf -= mhba->list_num_io;
bd756ddea18e02c Shun Fu    2012-09-23  541  			mhba->ob_cur_slot ^= 
regs->cl_pointer_toggle;
f0c568a478f0353 Jianyun Li 2011-05-11  542  		}
f0c568a478f0353 Jianyun Li 2011-05-11  543  f0c568a478f0353 Jianyun Li 
2011-05-11  544  		p_outb_frame = mhba->ob_list + cur_obf * 
mhba->ob_max_size;
f0c568a478f0353 Jianyun Li 2011-05-11  545  f0c568a478f0353 Jianyun Li 
2011-05-11  546  		/* Copy pointer may point to entry in outbound list
f0c568a478f0353 Jianyun Li 2011-05-11  547  		*  before entry has valid data
f0c568a478f0353 Jianyun Li 2011-05-11  548  		*/
f0c568a478f0353 Jianyun Li 2011-05-11  549  		if 
(unlikely(p_outb_frame->tag > mhba->tag_pool.size ||
f0c568a478f0353 Jianyun Li 2011-05-11  550  		 
mhba->tag_cmd[p_outb_frame->tag] == NULL ||
f0c568a478f0353 Jianyun Li 2011-05-11  551  			p_outb_frame->request_id !=
f0c568a478f0353 Jianyun Li 2011-05-11  552  			 
mhba->tag_cmd[p_outb_frame->tag]->request_id))
f0c568a478f0353 Jianyun Li 2011-05-11  553  			if 
(mvumi_check_ob_frame(mhba, cur_obf, p_outb_frame))
f0c568a478f0353 Jianyun Li 2011-05-11  554  				continue;
f0c568a478f0353 Jianyun Li 2011-05-11  555  f0c568a478f0353 Jianyun Li 
2011-05-11  556  		if (!list_empty(&mhba->ob_data_list)) {
f0c568a478f0353 Jianyun Li 2011-05-11  557  			ob_data = (struct 
mvumi_ob_data *)
f0c568a478f0353 Jianyun Li 2011-05-11  558  			 
list_first_entry(&mhba->ob_data_list,
f0c568a478f0353 Jianyun Li 2011-05-11  559  					struct mvumi_ob_data, 
list);
f0c568a478f0353 Jianyun Li 2011-05-11  560  		 
list_del_init(&ob_data->list);
f0c568a478f0353 Jianyun Li 2011-05-11  561  		} else {
f0c568a478f0353 Jianyun Li 2011-05-11  562  			ob_data = NULL;
f0c568a478f0353 Jianyun Li 2011-05-11  563  			if (cur_obf == 0) {
f0c568a478f0353 Jianyun Li 2011-05-11  564  				cur_obf = 
mhba->list_num_io - 1;
bd756ddea18e02c Shun Fu    2012-09-23  565  				mhba->ob_cur_slot ^= 
regs->cl_pointer_toggle;
f0c568a478f0353 Jianyun Li 2011-05-11  566  			} else
f0c568a478f0353 Jianyun Li 2011-05-11  567  				cur_obf -= 1;
f0c568a478f0353 Jianyun Li 2011-05-11  568  			break;
f0c568a478f0353 Jianyun Li 2011-05-11  569  		}
f0c568a478f0353 Jianyun Li 2011-05-11  570  f0c568a478f0353 Jianyun Li 
2011-05-11  571  		memcpy(ob_data->data, p_outb_frame, mhba->ob_max_size);
f0c568a478f0353 Jianyun Li 2011-05-11  572  		p_outb_frame->tag = 0xff;
f0c568a478f0353 Jianyun Li 2011-05-11  573  f0c568a478f0353 Jianyun Li 
2011-05-11  574  		list_add_tail(&ob_data->list, &mhba->free_ob_list);
f0c568a478f0353 Jianyun Li 2011-05-11  575  	}
bd756ddea18e02c Shun Fu    2012-09-23  576  	mhba->ob_cur_slot &= 
~regs->cl_slot_num_mask;
bd756ddea18e02c Shun Fu    2012-09-23  577  	mhba->ob_cur_slot |= 
(cur_obf & regs->cl_slot_num_mask);
bd756ddea18e02c Shun Fu    2012-09-23 @578 
iowrite32(mhba->ob_cur_slot, regs->outb_read_pointer);
f0c568a478f0353 Jianyun Li 2011-05-11  579  }
f0c568a478f0353 Jianyun Li 2011-05-11  580  bd756ddea18e02c Shun Fu 
2012-09-23  581  static void mvumi_reset(struct mvumi_hba *mhba)
f0c568a478f0353 Jianyun Li 2011-05-11  582  {
bd756ddea18e02c Shun Fu    2012-09-23  583  	struct mvumi_hw_regs *regs 
= mhba->regs;
bd756ddea18e02c Shun Fu    2012-09-23  584  bd756ddea18e02c Shun Fu 
2012-09-23 @585  	iowrite32(0, regs->enpointa_mask_reg);
bd756ddea18e02c Shun Fu    2012-09-23 @586  	if 
(ioread32(regs->arm_to_pciea_msg1) != HANDSHAKE_DONESTATE)
f0c568a478f0353 Jianyun Li 2011-05-11  587  		return;
f0c568a478f0353 Jianyun Li 2011-05-11  588  bd756ddea18e02c Shun Fu 
2012-09-23 @589  	iowrite32(DRBL_SOFT_RESET, regs->pciea_to_arm_drbl_reg);
f0c568a478f0353 Jianyun Li 2011-05-11  590  }
f0c568a478f0353 Jianyun Li 2011-05-11  591
:::::: The code at line 407 was first introduced by commit
:::::: bd756ddea18e02ccea8b29496b2fe3bd91af8eb7 [SCSI] mvumi: Add 
support for Marvell SAS/SATA RAID-on-Chip(ROC) 88RC9580

:::::: TO: Shun Fu <fushun@gmail.com>
:::::: CC: James Bottomley <JBottomley@Parallels.com>

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Fwd: drivers/scsi/mvumi.c:407:40: sparse: sparse: incorrect type in argument 1 (different address spaces)
  2023-12-05 17:52 ` Fwd: drivers/scsi/mvumi.c:407:40: sparse: sparse: incorrect type in argument 1 (different address spaces) Christophe Leroy
@ 2023-12-05 18:15   ` Bart Van Assche
  0 siblings, 0 replies; 2+ messages in thread
From: Bart Van Assche @ 2023-12-05 18:15 UTC (permalink / raw)
  To: Christophe Leroy; +Cc: scsi, Shun Fu

On 12/5/23 09:52, Christophe Leroy wrote:
> You seem to be one of the latest and most active commiter on that
> driver, would you mind handling the sparse issues reported by the robot
> on that driver ?

Hi Christophe,

That's a misunderstanding. My changes in the mvumi driver, just like all
mvumi changes of the past ten years, are refactoring changes that
affect all SCSI drivers. The most recent non-refactoring commit that I
could find is the following: bd756ddea18e ("[SCSI] mvumi: Add support 
for Marvell SAS/SATA RAID-on-Chip(ROC) 88RC9580"). Shun, is anyone still
using the mvumi driver or can it perhaps be removed from the kernel
tree?

Thanks,

Bart.


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2023-12-05 18:15 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <202312050259.TaopJEnL-lkp@intel.com>
2023-12-05 17:52 ` Fwd: drivers/scsi/mvumi.c:407:40: sparse: sparse: incorrect type in argument 1 (different address spaces) Christophe Leroy
2023-12-05 18:15   ` Bart Van Assche

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox