tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   2cc3c4b3c2e9c99e90aaf19cd801ff2c160f283c
commit: 670d0a4b10704667765f7d18f7592993d02783aa sparse: use identifiers to 
define address spaces
date:   8 weeks ago
config: mips-randconfig-s032-20200817 (attached as .config)
compiler: mips64-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.2-180-g49f7e13a-dirty
        git checkout 670d0a4b10704667765f7d18f7592993d02783aa
        # 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=mips 

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/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:135:9: sparse: 
sparse: cast removes address space '__iomem' of expression
   drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:140:9: sparse: 
sparse: cast removes address space '__iomem' of expression
   drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:450:41: sparse: 
sparse: cast removes address space '__iomem' of expression
   drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:450:38: sparse: 
sparse: incorrect type in assignment (different address spaces) @@     expected 
void [noderef] __iomem *[assigned] inst_cnt_reg @@     got unsigned char 
[usertype] * @@
   drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:450:38: sparse:     
expected void [noderef] __iomem *[assigned] inst_cnt_reg
   drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:450:38: sparse:     
got unsigned char [usertype] *
   drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:543:23: sparse: 
sparse: cast removes address space '__iomem' of expression
>> drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:543:49: sparse: 
>> sparse: incorrect type in argument 2 (different address spaces) @@     
>> expected void volatile [noderef] __iomem *mem @@     got unsigned char 
>> [usertype] * @@
>> drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:543:49: sparse:     
>> expected void volatile [noderef] __iomem *mem
   drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:543:49: sparse:     
got unsigned char [usertype] *
   drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:551:31: sparse: 
sparse: cast removes address space '__iomem' of expression
>> drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:551:57: sparse: 
>> sparse: incorrect type in argument 1 (different address spaces) @@     
>> expected void const volatile [noderef] __iomem *mem @@     got unsigned char 
>> [usertype] * @@
>> drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:551:57: sparse:     
>> expected void const volatile [noderef] __iomem *mem
   drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:551:57: sparse:     
got unsigned char [usertype] *
   drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:553:25: sparse: 
sparse: cast removes address space '__iomem' of expression
   drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:553:51: sparse: 
sparse: incorrect type in argument 2 (different address spaces) @@     expected 
void volatile [noderef] __iomem *mem @@     got unsigned char [usertype] * @@
   drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:553:51: sparse:     
expected void volatile [noderef] __iomem *mem
   drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:553:51: sparse:     
got unsigned char [usertype] *
   drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:558:25: sparse: 
sparse: cast removes address space '__iomem' of expression
   drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:558:51: sparse: 
sparse: incorrect type in argument 2 (different address spaces) @@     expected 
void volatile [noderef] __iomem *mem @@     got unsigned char [usertype] * @@
   drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:558:51: sparse:     
expected void volatile [noderef] __iomem *mem
   drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:558:51: sparse:     
got unsigned char [usertype] *
   drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:561:25: sparse: 
sparse: cast removes address space '__iomem' of expression
   drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:561:51: sparse: 
sparse: incorrect type in argument 2 (different address spaces) @@     expected 
void volatile [noderef] __iomem *mem @@     got unsigned char [usertype] * @@
   drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:561:51: sparse:     
expected void volatile [noderef] __iomem *mem
   drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:561:51: sparse:     
got unsigned char [usertype] *
   drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:603:14: sparse: 
sparse: cast removes address space '__iomem' of expression
   drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:602:26: sparse: 
sparse: incorrect type in assignment (different address spaces) @@     expected 
void [noderef] __iomem *doorbell_reg @@     got unsigned char [usertype] * @@
   drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:602:26: sparse:     
expected void [noderef] __iomem *doorbell_reg
   drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:602:26: sparse:     
got unsigned char [usertype] *
   drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:605:14: sparse: 
sparse: cast removes address space '__iomem' of expression
   drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:604:26: sparse: 
sparse: incorrect type in assignment (different address spaces) @@     expected 
void [noderef] __iomem *inst_cnt_reg @@     got unsigned char [usertype] * @@
   drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:604:26: sparse:     
expected void [noderef] __iomem *inst_cnt_reg
   drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:604:26: sparse:     
got unsigned char [usertype] *
   drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:647:14: sparse: 
sparse: cast removes address space '__iomem' of expression
   drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:646:29: sparse: 
sparse: incorrect type in assignment (different address spaces) @@     expected 
void [noderef] __iomem *pkts_sent_reg @@     got unsigned char [usertype] * @@
   drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:646:29: sparse:     
expected void [noderef] __iomem *pkts_sent_reg
   drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:646:29: sparse:     
got unsigned char [usertype] *
   drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:649:14: sparse: 
sparse: cast removes address space '__iomem' of expression
   drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:648:31: sparse: 
sparse: incorrect type in assignment (different address spaces) @@     expected 
void [noderef] __iomem *pkts_credit_reg @@     got unsigned char [usertype] * @@
   drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:648:31: sparse:     
expected void [noderef] __iomem *pkts_credit_reg
   drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:648:31: sparse:     
got unsigned char [usertype] *
>> drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:688:42: sparse: 
>> sparse: incorrect type in argument 1 (different address spaces) @@     
>> expected void const volatile [noderef] __iomem *mem @@     got void 
>> *mbox_int_reg @@
   drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:688:42: sparse:     
expected void const volatile [noderef] __iomem *mem
   drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:688:42: sparse:     
got void *mbox_int_reg
>> drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:689:42: sparse: 
>> sparse: incorrect type in argument 2 (different address spaces) @@     
>> expected void volatile [noderef] __iomem *mem @@     got void *mbox_int_reg 
>> @@
   drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:689:42: sparse:     
expected void volatile [noderef] __iomem *mem
   drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:689:42: sparse:     
got void *mbox_int_reg
>> drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:694:54: sparse: 
>> sparse: incorrect type in argument 1 (different address spaces) @@     
>> expected void const volatile [noderef] __iomem *mem @@     got void 
>> *mbox_write_reg @@
   drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:694:54: sparse:     
expected void const volatile [noderef] __iomem *mem
   drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:694:54: sparse:     
got void *mbox_write_reg
   drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:737:39: sparse: 
sparse: cast removes address space '__iomem' of expression
   drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:741:41: sparse: 
sparse: cast removes address space '__iomem' of expression
   drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:745:40: sparse: 
sparse: cast removes address space '__iomem' of expression
>> drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:755:44: sparse: 
>> sparse: incorrect type in argument 2 (different address spaces) @@     
>> expected void volatile [noderef] __iomem *mem @@     got void *mbox_read_reg 
>> @@
   drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:755:44: sparse:     
expected void volatile [noderef] __iomem *mem
   drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:755:44: sparse:     
got void *mbox_read_reg
   drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:990:42: sparse: 
sparse: incorrect type in argument 1 (different address spaces) @@     expected 
void const volatile [noderef] __iomem *mem @@     got void *mbox_int_reg @@
   drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:990:42: sparse:     
expected void const volatile [noderef] __iomem *mem
   drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:990:42: sparse:     
got void *mbox_int_reg
   drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:997:44: sparse: 
sparse: incorrect type in argument 2 (different address spaces) @@     expected 
void volatile [noderef] __iomem *mem @@     got void *mbox_int_reg @@
   drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:997:44: sparse:     
expected void volatile [noderef] __iomem *mem
   drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c:997:44: sparse:     
got void *mbox_int_reg
--
   drivers/net/ethernet/cavium/liquidio/cn23xx_vf_device.c:121:41: sparse: 
sparse: cast removes address space '__iomem' of expression
   drivers/net/ethernet/cavium/liquidio/cn23xx_vf_device.c:121:38: sparse: 
sparse: incorrect type in assignment (different address spaces) @@     expected 
void [noderef] __iomem *[assigned] inst_cnt_reg @@     got unsigned char 
[usertype] * @@
   drivers/net/ethernet/cavium/liquidio/cn23xx_vf_device.c:121:38: sparse:     
expected void [noderef] __iomem *[assigned] inst_cnt_reg
   drivers/net/ethernet/cavium/liquidio/cn23xx_vf_device.c:121:38: sparse:     
got unsigned char [usertype] *
   drivers/net/ethernet/cavium/liquidio/cn23xx_vf_device.c:226:14: sparse: 
sparse: cast removes address space '__iomem' of expression
   drivers/net/ethernet/cavium/liquidio/cn23xx_vf_device.c:225:26: sparse: 
sparse: incorrect type in assignment (different address spaces) @@     expected 
void [noderef] __iomem *doorbell_reg @@     got unsigned char [usertype] * @@
   drivers/net/ethernet/cavium/liquidio/cn23xx_vf_device.c:225:26: sparse:     
expected void [noderef] __iomem *doorbell_reg
   drivers/net/ethernet/cavium/liquidio/cn23xx_vf_device.c:225:26: sparse:     
got unsigned char [usertype] *
   drivers/net/ethernet/cavium/liquidio/cn23xx_vf_device.c:228:14: sparse: 
sparse: cast removes address space '__iomem' of expression
   drivers/net/ethernet/cavium/liquidio/cn23xx_vf_device.c:227:26: sparse: 
sparse: incorrect type in assignment (different address spaces) @@     expected 
void [noderef] __iomem *inst_cnt_reg @@     got unsigned char [usertype] * @@
   drivers/net/ethernet/cavium/liquidio/cn23xx_vf_device.c:227:26: sparse:     
expected void [noderef] __iomem *inst_cnt_reg
   drivers/net/ethernet/cavium/liquidio/cn23xx_vf_device.c:227:26: sparse:     
got unsigned char [usertype] *
   drivers/net/ethernet/cavium/liquidio/cn23xx_vf_device.c:258:14: sparse: 
sparse: cast removes address space '__iomem' of expression
   drivers/net/ethernet/cavium/liquidio/cn23xx_vf_device.c:257:29: sparse: 
sparse: incorrect type in assignment (different address spaces) @@     expected 
void [noderef] __iomem *pkts_sent_reg @@     got unsigned char [usertype] * @@
   drivers/net/ethernet/cavium/liquidio/cn23xx_vf_device.c:257:29: sparse:     
expected void [noderef] __iomem *pkts_sent_reg
   drivers/net/ethernet/cavium/liquidio/cn23xx_vf_device.c:257:29: sparse:     
got unsigned char [usertype] *
   drivers/net/ethernet/cavium/liquidio/cn23xx_vf_device.c:260:14: sparse: 
sparse: cast removes address space '__iomem' of expression
   drivers/net/ethernet/cavium/liquidio/cn23xx_vf_device.c:259:31: sparse: 
sparse: incorrect type in assignment (different address spaces) @@     expected 
void [noderef] __iomem *pkts_credit_reg @@     got unsigned char [usertype] * @@
   drivers/net/ethernet/cavium/liquidio/cn23xx_vf_device.c:259:31: sparse:     
expected void [noderef] __iomem *pkts_credit_reg
   drivers/net/ethernet/cavium/liquidio/cn23xx_vf_device.c:259:31: sparse:     
got unsigned char [usertype] *
   drivers/net/ethernet/cavium/liquidio/cn23xx_vf_device.c:298:14: sparse: 
sparse: cast removes address space '__iomem' of expression
   drivers/net/ethernet/cavium/liquidio/cn23xx_vf_device.c:301:14: sparse: 
sparse: cast removes address space '__iomem' of expression
   drivers/net/ethernet/cavium/liquidio/cn23xx_vf_device.c:304:14: sparse: 
sparse: cast removes address space '__iomem' of expression
>> drivers/net/ethernet/cavium/liquidio/cn23xx_vf_device.c:313:36: sparse: 
>> sparse: incorrect type in argument 2 (different address spaces) @@     
>> expected void volatile [noderef] __iomem *mem @@     got void *mbox_read_reg 
>> @@
>> drivers/net/ethernet/cavium/liquidio/cn23xx_vf_device.c:313:36: sparse:     
>> expected void volatile [noderef] __iomem *mem
   drivers/net/ethernet/cavium/liquidio/cn23xx_vf_device.c:313:36: sparse:     
got void *mbox_read_reg
>> drivers/net/ethernet/cavium/liquidio/cn23xx_vf_device.c:479:50: sparse: 
>> sparse: incorrect type in argument 1 (different address spaces) @@     
>> expected void const volatile [noderef] __iomem *mem @@     got void 
>> *mbox_int_reg @@
>> drivers/net/ethernet/cavium/liquidio/cn23xx_vf_device.c:479:50: sparse:     
>> expected void const volatile [noderef] __iomem *mem
   drivers/net/ethernet/cavium/liquidio/cn23xx_vf_device.c:479:50: sparse:     
got void *mbox_int_reg
>> drivers/net/ethernet/cavium/liquidio/cn23xx_vf_device.c:480:50: sparse: 
>> sparse: incorrect type in argument 2 (different address spaces) @@     
>> expected void volatile [noderef] __iomem *mem @@     got void *mbox_int_reg 
>> @@
   drivers/net/ethernet/cavium/liquidio/cn23xx_vf_device.c:480:50: sparse:     
expected void volatile [noderef] __iomem *mem
   drivers/net/ethernet/cavium/liquidio/cn23xx_vf_device.c:480:50: sparse:     
got void *mbox_int_reg
--
>> drivers/net/ethernet/cavium/liquidio/octeon_mailbox.c:43:29: sparse: sparse: 
>> incorrect type in argument 1 (different address spaces) @@     expected void 
>> const volatile [noderef] __iomem *mem @@     got void *mbox_read_reg @@
>> drivers/net/ethernet/cavium/liquidio/octeon_mailbox.c:43:29: sparse:     
>> expected void const volatile [noderef] __iomem *mem
   drivers/net/ethernet/cavium/liquidio/octeon_mailbox.c:43:29: sparse:     got 
void *mbox_read_reg
>> drivers/net/ethernet/cavium/liquidio/octeon_mailbox.c:81:52: sparse: sparse: 
>> incorrect type in argument 2 (different address spaces) @@     expected void 
>> volatile [noderef] __iomem *mem @@     got void *mbox_read_reg @@
>> drivers/net/ethernet/cavium/liquidio/octeon_mailbox.c:81:52: sparse:     
>> expected void volatile [noderef] __iomem *mem
   drivers/net/ethernet/cavium/liquidio/octeon_mailbox.c:81:52: sparse:     got 
void *mbox_read_reg
   drivers/net/ethernet/cavium/liquidio/octeon_mailbox.c:115:36: sparse: 
sparse: incorrect type in argument 2 (different address spaces) @@     expected 
void volatile [noderef] __iomem *mem @@     got void *mbox_read_reg @@
   drivers/net/ethernet/cavium/liquidio/octeon_mailbox.c:115:36: sparse:     
expected void volatile [noderef] __iomem *mem
   drivers/net/ethernet/cavium/liquidio/octeon_mailbox.c:115:36: sparse:     
got void *mbox_read_reg
>> drivers/net/ethernet/cavium/liquidio/octeon_mailbox.c:163:26: sparse: 
>> sparse: incorrect type in argument 1 (different address spaces) @@     
>> expected void const volatile [noderef] __iomem *mem @@     got void 
>> *mbox_write_reg @@
   drivers/net/ethernet/cavium/liquidio/octeon_mailbox.c:163:26: sparse:     
expected void const volatile [noderef] __iomem *mem
   drivers/net/ethernet/cavium/liquidio/octeon_mailbox.c:163:26: sparse:     
got void *mbox_write_reg
>> drivers/net/ethernet/cavium/liquidio/octeon_mailbox.c:172:47: sparse: 
>> sparse: incorrect type in argument 2 (different address spaces) @@     
>> expected void volatile [noderef] __iomem *mem @@     got void 
>> *mbox_write_reg @@
   drivers/net/ethernet/cavium/liquidio/octeon_mailbox.c:172:47: sparse:     
expected void volatile [noderef] __iomem *mem
   drivers/net/ethernet/cavium/liquidio/octeon_mailbox.c:172:47: sparse:     
got void *mbox_write_reg
   drivers/net/ethernet/cavium/liquidio/octeon_mailbox.c:175:42: sparse: 
sparse: incorrect type in argument 1 (different address spaces) @@     expected 
void const volatile [noderef] __iomem *mem @@     got void *mbox_write_reg @@
   drivers/net/ethernet/cavium/liquidio/octeon_mailbox.c:175:42: sparse:     
expected void const volatile [noderef] __iomem *mem
   drivers/net/ethernet/cavium/liquidio/octeon_mailbox.c:175:42: sparse:     
got void *mbox_write_reg
   drivers/net/ethernet/cavium/liquidio/octeon_mailbox.c:184:63: sparse: 
sparse: incorrect type in argument 2 (different address spaces) @@     expected 
void volatile [noderef] __iomem *mem @@     got void *mbox_write_reg @@
   drivers/net/ethernet/cavium/liquidio/octeon_mailbox.c:184:63: sparse:     
expected void volatile [noderef] __iomem *mem
   drivers/net/ethernet/cavium/liquidio/octeon_mailbox.c:184:63: sparse:     
got void *mbox_write_reg
   drivers/net/ethernet/cavium/liquidio/octeon_mailbox.c:193:44: sparse: 
sparse: incorrect type in argument 2 (different address spaces) @@     expected 
void volatile [noderef] __iomem *mem @@     got void *mbox_read_reg @@
   drivers/net/ethernet/cavium/liquidio/octeon_mailbox.c:193:44: sparse:     
expected void volatile [noderef] __iomem *mem
   drivers/net/ethernet/cavium/liquidio/octeon_mailbox.c:193:44: sparse:     
got void *mbox_read_reg
   drivers/net/ethernet/cavium/liquidio/octeon_mailbox.c:305:52: sparse: 
sparse: incorrect type in argument 2 (different address spaces) @@     expected 
void volatile [noderef] __iomem *mem @@     got void *mbox_read_reg @@
   drivers/net/ethernet/cavium/liquidio/octeon_mailbox.c:305:52: sparse:     
expected void volatile [noderef] __iomem *mem
   drivers/net/ethernet/cavium/liquidio/octeon_mailbox.c:305:52: sparse:     
got void *mbox_read_reg
   drivers/net/ethernet/cavium/liquidio/octeon_mailbox.c:315:44: sparse: 
sparse: incorrect type in argument 2 (different address spaces) @@     expected 
void volatile [noderef] __iomem *mem @@     got void *mbox_read_reg @@
   drivers/net/ethernet/cavium/liquidio/octeon_mailbox.c:315:44: sparse:     
expected void volatile [noderef] __iomem *mem
   drivers/net/ethernet/cavium/liquidio/octeon_mailbox.c:315:44: sparse:     
got void *mbox_read_reg
   drivers/net/ethernet/cavium/liquidio/octeon_mailbox.c:324:44: sparse: 
sparse: incorrect type in argument 2 (different address spaces) @@     expected 
void volatile [noderef] __iomem *mem @@     got void *mbox_read_reg @@
   drivers/net/ethernet/cavium/liquidio/octeon_mailbox.c:324:44: sparse:     
expected void volatile [noderef] __iomem *mem
   drivers/net/ethernet/cavium/liquidio/octeon_mailbox.c:324:44: sparse:     
got void *mbox_read_reg
   drivers/net/ethernet/cavium/liquidio/octeon_mailbox.c:340:52: sparse: 
sparse: incorrect type in argument 2 (different address spaces) @@     expected 
void volatile [noderef] __iomem *mem @@     got void *mbox_read_reg @@
   drivers/net/ethernet/cavium/liquidio/octeon_mailbox.c:340:52: sparse:     
expected void volatile [noderef] __iomem *mem
   drivers/net/ethernet/cavium/liquidio/octeon_mailbox.c:340:52: sparse:     
got void *mbox_read_reg
   drivers/net/ethernet/cavium/liquidio/octeon_mailbox.c:370:36: sparse: 
sparse: incorrect type in argument 2 (different address spaces) @@     expected 
void volatile [noderef] __iomem *mem @@     got void *mbox_read_reg @@
   drivers/net/ethernet/cavium/liquidio/octeon_mailbox.c:370:36: sparse:     
expected void volatile [noderef] __iomem *mem
   drivers/net/ethernet/cavium/liquidio/octeon_mailbox.c:370:36: sparse:     
got void *mbox_read_reg

# 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=670d0a4b10704667765f7d18f7592993d02783aa
git remote add linus 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 670d0a4b10704667765f7d18f7592993d02783aa
vim +543 drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c

3451b97cce2d78 Raghu Vatsavayi   2016-08-31  474  
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  475  static void 
cn23xx_pf_setup_global_output_regs(struct octeon_device *oct)
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  476  {
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  477        u32 reg_val;
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  478        u32 q_no, ern, srn;
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  479        u64 time_threshold;
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  480  
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  481        struct octeon_cn23xx_pf 
*cn23xx = (struct octeon_cn23xx_pf *)oct->chip;
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  482  
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  483        srn = 
oct->sriov_info.pf_srn;
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  484        ern = srn + 
oct->sriov_info.num_pf_rings;
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  485  
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  486        if 
(CFG_GET_IS_SLI_BP_ON(cn23xx->conf)) {
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  487                
octeon_write_csr64(oct, CN23XX_SLI_OQ_WMARK, 32);
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  488        } else {
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  489                /** Set Output 
queue watermark to 0 to disable backpressure */
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  490                
octeon_write_csr64(oct, CN23XX_SLI_OQ_WMARK, 0);
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  491        }
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  492  
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  493        for (q_no = srn; q_no < 
ern; q_no++) {
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  494                reg_val = 
octeon_read_csr(oct, CN23XX_SLI_OQ_PKT_CONTROL(q_no));
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  495  
ac13d6d8eaded1 Rick Farrington   2018-07-13  496                /* clear IPTR */
ac13d6d8eaded1 Rick Farrington   2018-07-13  497                reg_val &= 
~CN23XX_PKT_OUTPUT_CTL_IPTR;
ac13d6d8eaded1 Rick Farrington   2018-07-13  498  
c4ee5d8103ed78 Prasad Kanneganti 2017-06-18  499                /* set DPTR */
c4ee5d8103ed78 Prasad Kanneganti 2017-06-18  500                reg_val |= 
CN23XX_PKT_OUTPUT_CTL_DPTR;
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  501  
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  502                /* reset BMODE 
*/
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  503                reg_val &= 
~(CN23XX_PKT_OUTPUT_CTL_BMODE);
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  504  
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  505                /* No Relaxed 
Ordering, No Snoop, 64-bit Byte swap
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  506                 * for Output 
Queue ScatterList
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  507                 * reset ROR_P, 
NSR_P
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  508                 */
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  509                reg_val &= 
~(CN23XX_PKT_OUTPUT_CTL_ROR_P);
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  510                reg_val &= 
~(CN23XX_PKT_OUTPUT_CTL_NSR_P);
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  511  
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  512  #ifdef 
__LITTLE_ENDIAN_BITFIELD
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  513                reg_val &= 
~(CN23XX_PKT_OUTPUT_CTL_ES_P);
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  514  #else
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  515                reg_val |= 
(CN23XX_PKT_OUTPUT_CTL_ES_P);
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  516  #endif
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  517                /* No Relaxed 
Ordering, No Snoop, 64-bit Byte swap
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  518                 * for Output 
Queue Data
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  519                 * reset ROR, 
NSR
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  520                 */
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  521                reg_val &= 
~(CN23XX_PKT_OUTPUT_CTL_ROR);
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  522                reg_val &= 
~(CN23XX_PKT_OUTPUT_CTL_NSR);
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  523                /* set the ES 
bit */
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  524                reg_val |= 
(CN23XX_PKT_OUTPUT_CTL_ES);
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  525  
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  526                /* write all 
the selected settings */
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  527                
octeon_write_csr(oct, CN23XX_SLI_OQ_PKT_CONTROL(q_no), reg_val);
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  528  
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  529                /* Enabling 
these interrupt in oct->fn_list.enable_interrupt()
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  530                 * routine 
which called after IOQ init.
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  531                 * Set up 
interrupt packet and time thresholds
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  532                 * for all the 
OQs
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  533                 */
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  534                time_threshold 
= cn23xx_pf_get_oq_ticks(
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  535                    oct, 
(u32)CFG_GET_OQ_INTR_TIME(cn23xx->conf));
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  536  
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  537                
octeon_write_csr64(oct, CN23XX_SLI_OQ_PKT_INT_LEVELS(q_no),
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  538                                
   (CFG_GET_OQ_INTR_PKT(cn23xx->conf) |
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  539                                
    (time_threshold << 32)));
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  540        }
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  541  
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  542        /** Setting the water 
mark level for pko back pressure **/
3451b97cce2d78 Raghu Vatsavayi   2016-08-31 @543        writeq(0x40, (u8 
*)oct->mmio[0].hw_addr + CN23XX_SLI_OQ_WMARK);
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  544  
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  545        /** Disabling setting 
OQs in reset when ring has no dorebells
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  546         * enabling this will 
cause of head of line blocking
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  547         */
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  548        /* Do it only for 
pass1.1. and pass1.2 */
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  549        if ((oct->rev_id == 
OCTEON_CN23XX_REV_1_0) ||
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  550            (oct->rev_id == 
OCTEON_CN23XX_REV_1_1))
3451b97cce2d78 Raghu Vatsavayi   2016-08-31 @551                
writeq(readq((u8 *)oct->mmio[0].hw_addr +
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  552                                
     CN23XX_SLI_GBL_CONTROL) | 0x2,
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  553                       (u8 
*)oct->mmio[0].hw_addr + CN23XX_SLI_GBL_CONTROL);
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  554  
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  555        /** Enable 
channel-level backpressure */
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  556        if (oct->pf_num)
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  557                
writeq(0xffffffffffffffffULL,
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  558                       (u8 
*)oct->mmio[0].hw_addr + CN23XX_SLI_OUT_BP_EN2_W1S);
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  559        else
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  560                
writeq(0xffffffffffffffffULL,
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  561                       (u8 
*)oct->mmio[0].hw_addr + CN23XX_SLI_OUT_BP_EN_W1S);
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  562  }
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  563  
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  564  static int 
cn23xx_setup_pf_device_regs(struct octeon_device *oct)
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  565  {
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  566        
cn23xx_enable_error_reporting(oct);
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  567  
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  568        /* program the 
MAC(0..3)_RINFO before setting up input/output regs */
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  569        
cn23xx_setup_global_mac_regs(oct);
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  570  
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  571        if 
(cn23xx_pf_setup_global_input_regs(oct))
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  572                return -1;
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  573  
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  574        
cn23xx_pf_setup_global_output_regs(oct);
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  575  
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  576        /* Default error 
timeout value should be 0x200000 to avoid host hang
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  577         * when reads invalid 
register
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  578         */
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  579        octeon_write_csr64(oct, 
CN23XX_SLI_WINDOW_CTL,
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  580                           
CN23XX_SLI_WINDOW_CTL_DEFAULT);
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  581  
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  582        /* set 
SLI_PKT_IN_JABBER to handle large VXLAN packets */
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  583        octeon_write_csr64(oct, 
CN23XX_SLI_PKT_IN_JABBER, CN23XX_INPUT_JABBER);
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  584        return 0;
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  585  }
3451b97cce2d78 Raghu Vatsavayi   2016-08-31  586  
72c0091293c008 Raghu Vatsavayi   2016-08-31  587  static void 
cn23xx_setup_iq_regs(struct octeon_device *oct, u32 iq_no)
72c0091293c008 Raghu Vatsavayi   2016-08-31  588  {
72c0091293c008 Raghu Vatsavayi   2016-08-31  589        struct 
octeon_instr_queue *iq = oct->instr_queue[iq_no];
72c0091293c008 Raghu Vatsavayi   2016-08-31  590        u64 pkt_in_done;
72c0091293c008 Raghu Vatsavayi   2016-08-31  591  
72c0091293c008 Raghu Vatsavayi   2016-08-31  592        iq_no += 
oct->sriov_info.pf_srn;
72c0091293c008 Raghu Vatsavayi   2016-08-31  593  
72c0091293c008 Raghu Vatsavayi   2016-08-31  594        /* Write the start of 
the input queue's ring and its size  */
72c0091293c008 Raghu Vatsavayi   2016-08-31  595        octeon_write_csr64(oct, 
CN23XX_SLI_IQ_BASE_ADDR64(iq_no),
72c0091293c008 Raghu Vatsavayi   2016-08-31  596                           
iq->base_addr_dma);
72c0091293c008 Raghu Vatsavayi   2016-08-31  597        octeon_write_csr(oct, 
CN23XX_SLI_IQ_SIZE(iq_no), iq->max_count);
72c0091293c008 Raghu Vatsavayi   2016-08-31  598  
72c0091293c008 Raghu Vatsavayi   2016-08-31  599        /* Remember the 
doorbell & instruction count register addr
72c0091293c008 Raghu Vatsavayi   2016-08-31  600         * for this queue
72c0091293c008 Raghu Vatsavayi   2016-08-31  601         */
72c0091293c008 Raghu Vatsavayi   2016-08-31  602        iq->doorbell_reg =
72c0091293c008 Raghu Vatsavayi   2016-08-31  603            (u8 
*)oct->mmio[0].hw_addr + CN23XX_SLI_IQ_DOORBELL(iq_no);
72c0091293c008 Raghu Vatsavayi   2016-08-31  604        iq->inst_cnt_reg =
72c0091293c008 Raghu Vatsavayi   2016-08-31  605            (u8 
*)oct->mmio[0].hw_addr + CN23XX_SLI_IQ_INSTR_COUNT64(iq_no);
72c0091293c008 Raghu Vatsavayi   2016-08-31  606        
dev_dbg(&oct->pci_dev->dev, "InstQ[%d]:dbell reg @ 0x%p instcnt_reg @ 0x%p\n",
72c0091293c008 Raghu Vatsavayi   2016-08-31  607                iq_no, 
iq->doorbell_reg, iq->inst_cnt_reg);
72c0091293c008 Raghu Vatsavayi   2016-08-31  608  
72c0091293c008 Raghu Vatsavayi   2016-08-31  609        /* Store the current 
instruction counter (used in flush_iq
72c0091293c008 Raghu Vatsavayi   2016-08-31  610         * calculation)
72c0091293c008 Raghu Vatsavayi   2016-08-31  611         */
72c0091293c008 Raghu Vatsavayi   2016-08-31  612        pkt_in_done = 
readq(iq->inst_cnt_reg);
72c0091293c008 Raghu Vatsavayi   2016-08-31  613  
5b07aee11227fa Raghu Vatsavayi   2016-08-31  614        if (oct->msix_on) {
5b07aee11227fa Raghu Vatsavayi   2016-08-31  615                /* Set CINT_ENB 
to enable IQ interrupt   */
5b07aee11227fa Raghu Vatsavayi   2016-08-31  616                
writeq((pkt_in_done | CN23XX_INTR_CINT_ENB),
5b07aee11227fa Raghu Vatsavayi   2016-08-31  617                       
iq->inst_cnt_reg);
5b07aee11227fa Raghu Vatsavayi   2016-08-31  618        } else {
72c0091293c008 Raghu Vatsavayi   2016-08-31  619                /* Clear the 
count by writing back what we read, but don't
72c0091293c008 Raghu Vatsavayi   2016-08-31  620                 * enable 
interrupts
72c0091293c008 Raghu Vatsavayi   2016-08-31  621                 */
72c0091293c008 Raghu Vatsavayi   2016-08-31  622                
writeq(pkt_in_done, iq->inst_cnt_reg);
5b07aee11227fa Raghu Vatsavayi   2016-08-31  623        }
72c0091293c008 Raghu Vatsavayi   2016-08-31  624  
72c0091293c008 Raghu Vatsavayi   2016-08-31  625        iq->reset_instr_cnt = 0;
72c0091293c008 Raghu Vatsavayi   2016-08-31  626  }
72c0091293c008 Raghu Vatsavayi   2016-08-31  627  
72c0091293c008 Raghu Vatsavayi   2016-08-31  628  static void 
cn23xx_setup_oq_regs(struct octeon_device *oct, u32 oq_no)
72c0091293c008 Raghu Vatsavayi   2016-08-31  629  {
72c0091293c008 Raghu Vatsavayi   2016-08-31  630        u32 reg_val;
72c0091293c008 Raghu Vatsavayi   2016-08-31  631        struct octeon_droq 
*droq = oct->droq[oq_no];
5b07aee11227fa Raghu Vatsavayi   2016-08-31  632        struct octeon_cn23xx_pf 
*cn23xx = (struct octeon_cn23xx_pf *)oct->chip;
5b07aee11227fa Raghu Vatsavayi   2016-08-31  633        u64 time_threshold;
5b07aee11227fa Raghu Vatsavayi   2016-08-31  634        u64 cnt_threshold;
72c0091293c008 Raghu Vatsavayi   2016-08-31  635  
72c0091293c008 Raghu Vatsavayi   2016-08-31  636        oq_no += 
oct->sriov_info.pf_srn;
72c0091293c008 Raghu Vatsavayi   2016-08-31  637  
72c0091293c008 Raghu Vatsavayi   2016-08-31  638        octeon_write_csr64(oct, 
CN23XX_SLI_OQ_BASE_ADDR64(oq_no),
72c0091293c008 Raghu Vatsavayi   2016-08-31  639                           
droq->desc_ring_dma);
72c0091293c008 Raghu Vatsavayi   2016-08-31  640        octeon_write_csr(oct, 
CN23XX_SLI_OQ_SIZE(oq_no), droq->max_count);
72c0091293c008 Raghu Vatsavayi   2016-08-31  641  
72c0091293c008 Raghu Vatsavayi   2016-08-31  642        octeon_write_csr(oct, 
CN23XX_SLI_OQ_BUFF_INFO_SIZE(oq_no),
c4ee5d8103ed78 Prasad Kanneganti 2017-06-18  643                         
droq->buffer_size);
72c0091293c008 Raghu Vatsavayi   2016-08-31  644  
72c0091293c008 Raghu Vatsavayi   2016-08-31  645        /* Get the mapped 
address of the pkt_sent and pkts_credit regs */
72c0091293c008 Raghu Vatsavayi   2016-08-31  646        droq->pkts_sent_reg =
72c0091293c008 Raghu Vatsavayi   2016-08-31  647            (u8 
*)oct->mmio[0].hw_addr + CN23XX_SLI_OQ_PKTS_SENT(oq_no);
72c0091293c008 Raghu Vatsavayi   2016-08-31  648        droq->pkts_credit_reg =
72c0091293c008 Raghu Vatsavayi   2016-08-31  649            (u8 
*)oct->mmio[0].hw_addr + CN23XX_SLI_OQ_PKTS_CREDIT(oq_no);
72c0091293c008 Raghu Vatsavayi   2016-08-31  650  
5b07aee11227fa Raghu Vatsavayi   2016-08-31  651        if (!oct->msix_on) {
72c0091293c008 Raghu Vatsavayi   2016-08-31  652                /* Enable this 
output queue to generate Packet Timer Interrupt
72c0091293c008 Raghu Vatsavayi   2016-08-31  653                 */
5b07aee11227fa Raghu Vatsavayi   2016-08-31  654                reg_val =
5b07aee11227fa Raghu Vatsavayi   2016-08-31  655                    
octeon_read_csr(oct, CN23XX_SLI_OQ_PKT_CONTROL(oq_no));
72c0091293c008 Raghu Vatsavayi   2016-08-31  656                reg_val |= 
CN23XX_PKT_OUTPUT_CTL_TENB;
72c0091293c008 Raghu Vatsavayi   2016-08-31  657                
octeon_write_csr(oct, CN23XX_SLI_OQ_PKT_CONTROL(oq_no),
72c0091293c008 Raghu Vatsavayi   2016-08-31  658                                
 reg_val);
72c0091293c008 Raghu Vatsavayi   2016-08-31  659  
72c0091293c008 Raghu Vatsavayi   2016-08-31  660                /* Enable this 
output queue to generate Packet Count Interrupt
72c0091293c008 Raghu Vatsavayi   2016-08-31  661                 */
5b07aee11227fa Raghu Vatsavayi   2016-08-31  662                reg_val =
5b07aee11227fa Raghu Vatsavayi   2016-08-31  663                    
octeon_read_csr(oct, CN23XX_SLI_OQ_PKT_CONTROL(oq_no));
72c0091293c008 Raghu Vatsavayi   2016-08-31  664                reg_val |= 
CN23XX_PKT_OUTPUT_CTL_CENB;
72c0091293c008 Raghu Vatsavayi   2016-08-31  665                
octeon_write_csr(oct, CN23XX_SLI_OQ_PKT_CONTROL(oq_no),
72c0091293c008 Raghu Vatsavayi   2016-08-31  666                                
 reg_val);
5b07aee11227fa Raghu Vatsavayi   2016-08-31  667        } else {
5b07aee11227fa Raghu Vatsavayi   2016-08-31  668                time_threshold 
= cn23xx_pf_get_oq_ticks(
5b07aee11227fa Raghu Vatsavayi   2016-08-31  669                    oct, 
(u32)CFG_GET_OQ_INTR_TIME(cn23xx->conf));
5b07aee11227fa Raghu Vatsavayi   2016-08-31  670                cnt_threshold = 
(u32)CFG_GET_OQ_INTR_PKT(cn23xx->conf);
5b07aee11227fa Raghu Vatsavayi   2016-08-31  671  
5b07aee11227fa Raghu Vatsavayi   2016-08-31  672                
octeon_write_csr64(
5b07aee11227fa Raghu Vatsavayi   2016-08-31  673                    oct, 
CN23XX_SLI_OQ_PKT_INT_LEVELS(oq_no),
5b07aee11227fa Raghu Vatsavayi   2016-08-31  674                    
((time_threshold << 32 | cnt_threshold)));
5b07aee11227fa Raghu Vatsavayi   2016-08-31  675        }
72c0091293c008 Raghu Vatsavayi   2016-08-31  676  }
72c0091293c008 Raghu Vatsavayi   2016-08-31  677  
5d65556beb3668 Raghu Vatsavayi   2016-11-14  678  static void 
cn23xx_pf_mbox_thread(struct work_struct *work)
5d65556beb3668 Raghu Vatsavayi   2016-11-14  679  {
5d65556beb3668 Raghu Vatsavayi   2016-11-14  680        struct cavium_wk *wk = 
(struct cavium_wk *)work;
5d65556beb3668 Raghu Vatsavayi   2016-11-14  681        struct octeon_mbox 
*mbox = (struct octeon_mbox *)wk->ctxptr;
5d65556beb3668 Raghu Vatsavayi   2016-11-14  682        struct octeon_device 
*oct = mbox->oct_dev;
5d65556beb3668 Raghu Vatsavayi   2016-11-14  683        u64 mbox_int_val, val64;
5d65556beb3668 Raghu Vatsavayi   2016-11-14  684        u32 q_no, i;
5d65556beb3668 Raghu Vatsavayi   2016-11-14  685  
5d65556beb3668 Raghu Vatsavayi   2016-11-14  686        if (oct->rev_id < 
OCTEON_CN23XX_REV_1_1) {
5d65556beb3668 Raghu Vatsavayi   2016-11-14  687                /*read and 
clear by writing 1*/
5d65556beb3668 Raghu Vatsavayi   2016-11-14 @688                mbox_int_val = 
readq(mbox->mbox_int_reg);
5d65556beb3668 Raghu Vatsavayi   2016-11-14 @689                
writeq(mbox_int_val, mbox->mbox_int_reg);
5d65556beb3668 Raghu Vatsavayi   2016-11-14  690  
5d65556beb3668 Raghu Vatsavayi   2016-11-14  691                for (i = 0; i < 
oct->sriov_info.num_vfs_alloced; i++) {
5d65556beb3668 Raghu Vatsavayi   2016-11-14  692                        q_no = 
i * oct->sriov_info.rings_per_vf;
5d65556beb3668 Raghu Vatsavayi   2016-11-14  693  
5d65556beb3668 Raghu Vatsavayi   2016-11-14 @694                        val64 = 
readq(oct->mbox[q_no]->mbox_write_reg);
5d65556beb3668 Raghu Vatsavayi   2016-11-14  695  
5d65556beb3668 Raghu Vatsavayi   2016-11-14  696                        if 
(val64 && (val64 != OCTEON_PFVFACK)) {
5d65556beb3668 Raghu Vatsavayi   2016-11-14  697                                
if (octeon_mbox_read(oct->mbox[q_no]))
5d65556beb3668 Raghu Vatsavayi   2016-11-14  698                                
        octeon_mbox_process_message(
5d65556beb3668 Raghu Vatsavayi   2016-11-14  699                                
            oct->mbox[q_no]);
5d65556beb3668 Raghu Vatsavayi   2016-11-14  700                        }
5d65556beb3668 Raghu Vatsavayi   2016-11-14  701                }
5d65556beb3668 Raghu Vatsavayi   2016-11-14  702  
5d65556beb3668 Raghu Vatsavayi   2016-11-14  703                
schedule_delayed_work(&wk->work, msecs_to_jiffies(10));
5d65556beb3668 Raghu Vatsavayi   2016-11-14  704        } else {
5d65556beb3668 Raghu Vatsavayi   2016-11-14  705                
octeon_mbox_process_message(mbox);
5d65556beb3668 Raghu Vatsavayi   2016-11-14  706        }
5d65556beb3668 Raghu Vatsavayi   2016-11-14  707  }
5d65556beb3668 Raghu Vatsavayi   2016-11-14  708  

:::::: The code at line 543 was first introduced by commit
:::::: 3451b97cce2d7827bd76378ae6e9aeb7e8fc463d liquidio: CN23XX register setup

:::::: TO: Raghu Vatsavayi <[email protected]>
:::::: CC: David S. Miller <[email protected]>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]

Attachment: .config.gz
Description: application/gzip

Reply via email to