tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   d012a7190fc1fd72ed48911e77ca97ba4521bccd
commit: 670d0a4b10704667765f7d18f7592993d02783aa sparse: use identifiers to 
define address spaces
date:   10 weeks ago
config: powerpc64-randconfig-s031-20200824 (attached as .config)
compiler: powerpc-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-191-g10164920-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=powerpc64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <l...@intel.com>


sparse warnings: (new ones prefixed by >>)

>> drivers/ata/ahci_xgene.c:196:41: sparse: sparse: incorrect type in 
>> initializer (different address spaces) @@     expected void *port_mmio @@    
>>  got void [noderef] __iomem * @@
   drivers/ata/ahci_xgene.c:196:41: sparse:     expected void *port_mmio
>> drivers/ata/ahci_xgene.c:196:41: sparse:     got void [noderef] __iomem *
>> drivers/ata/ahci_xgene.c:203:44: sparse: sparse: incorrect type in argument 
>> 1 (different address spaces) @@     expected void const volatile [noderef] 
>> __iomem *addr @@     got void * @@
>> drivers/ata/ahci_xgene.c:203:44: sparse:     expected void const volatile 
>> [noderef] __iomem *addr
   drivers/ata/ahci_xgene.c:203:44: sparse:     got void *
>> drivers/ata/ahci_xgene.c:206:44: sparse: sparse: incorrect type in argument 
>> 2 (different address spaces) @@     expected void volatile [noderef] __iomem 
>> *addr @@     got void * @@
>> drivers/ata/ahci_xgene.c:206:44: sparse:     expected void volatile 
>> [noderef] __iomem *addr
   drivers/ata/ahci_xgene.c:206:44: sparse:     got void *
   drivers/ata/ahci_xgene.c:262:33: sparse: sparse: invalid assignment: &=
   drivers/ata/ahci_xgene.c:262:33: sparse:    left side has type unsigned short
   drivers/ata/ahci_xgene.c:262:33: sparse:    right side has type restricted 
__le16
   drivers/ata/ahci_xgene.c:457:41: sparse: sparse: incorrect type in 
initializer (different address spaces) @@     expected void *port_mmio @@     
got void [noderef] __iomem * @@
   drivers/ata/ahci_xgene.c:457:41: sparse:     expected void *port_mmio
   drivers/ata/ahci_xgene.c:457:41: sparse:     got void [noderef] __iomem *
   drivers/ata/ahci_xgene.c:464:36: sparse: sparse: incorrect type in argument 
1 (different address spaces) @@     expected void const volatile [noderef] 
__iomem *addr @@     got void * @@
   drivers/ata/ahci_xgene.c:464:36: sparse:     expected void const volatile 
[noderef] __iomem *addr
   drivers/ata/ahci_xgene.c:464:36: sparse:     got void *
   drivers/ata/ahci_xgene.c:467:36: sparse: sparse: incorrect type in argument 
2 (different address spaces) @@     expected void volatile [noderef] __iomem 
*addr @@     got void * @@
   drivers/ata/ahci_xgene.c:467:36: sparse:     expected void volatile 
[noderef] __iomem *addr
   drivers/ata/ahci_xgene.c:467:36: sparse:     got void *
   drivers/ata/ahci_xgene.c:502:41: sparse: sparse: incorrect type in 
initializer (different address spaces) @@     expected void *port_mmio @@     
got void [noderef] __iomem * @@
   drivers/ata/ahci_xgene.c:502:41: sparse:     expected void *port_mmio
   drivers/ata/ahci_xgene.c:502:41: sparse:     got void [noderef] __iomem *
   drivers/ata/ahci_xgene.c:508:41: sparse: sparse: incorrect type in argument 
1 (different address spaces) @@     expected void const volatile [noderef] 
__iomem *addr @@     got void * @@
   drivers/ata/ahci_xgene.c:508:41: sparse:     expected void const volatile 
[noderef] __iomem *addr
   drivers/ata/ahci_xgene.c:508:41: sparse:     got void *
   drivers/ata/ahci_xgene.c:514:36: sparse: sparse: incorrect type in argument 
1 (different address spaces) @@     expected void const volatile [noderef] 
__iomem *addr @@     got void * @@
   drivers/ata/ahci_xgene.c:514:36: sparse:     expected void const volatile 
[noderef] __iomem *addr
   drivers/ata/ahci_xgene.c:514:36: sparse:     got void *
   drivers/ata/ahci_xgene.c:517:36: sparse: sparse: incorrect type in argument 
2 (different address spaces) @@     expected void volatile [noderef] __iomem 
*addr @@     got void * @@
   drivers/ata/ahci_xgene.c:517:36: sparse:     expected void volatile 
[noderef] __iomem *addr
   drivers/ata/ahci_xgene.c:517:36: sparse:     got void *
   drivers/ata/ahci_xgene.c:530:57: sparse: sparse: incorrect type in argument 
2 (different address spaces) @@     expected void volatile [noderef] __iomem 
*addr @@     got void * @@
   drivers/ata/ahci_xgene.c:530:57: sparse:     expected void volatile 
[noderef] __iomem *addr
   drivers/ata/ahci_xgene.c:530:57: sparse:     got void *
   drivers/ata/ahci_xgene.c:718:9: sparse: sparse: Initializer entry defined 
twice
   drivers/ata/ahci_xgene.c:718:9: sparse:   also defined here
--
   drivers/usb/host/ehci-hcd.c: note: in included file:
   drivers/usb/host/ehci-q.c:1389:27: sparse: sparse: incorrect type in 
assignment (different base types) @@     expected restricted __hc32 [usertype] 
old_current @@     got int @@
   drivers/usb/host/ehci-q.c:1389:27: sparse:     expected restricted __hc32 
[usertype] old_current
   drivers/usb/host/ehci-q.c:1389:27: sparse:     got int
   drivers/usb/host/ehci-hcd.c: note: in included file:
   drivers/usb/host/ehci-mem.c:188:24: sparse: sparse: incorrect type in 
assignment (different base types) @@     expected restricted __hc32 [usertype] 
*periodic @@     got restricted __le32 [usertype] * @@
   drivers/usb/host/ehci-mem.c:188:24: sparse:     expected restricted __hc32 
[usertype] *periodic
   drivers/usb/host/ehci-mem.c:188:24: sparse:     got restricted __le32 
[usertype] *
   drivers/usb/host/ehci-hcd.c:566:27: sparse: sparse: incorrect type in 
assignment (different base types) @@     expected restricted __hc32 [usertype] 
old_current @@     got int @@
   drivers/usb/host/ehci-hcd.c:566:27: sparse:     expected restricted __hc32 
[usertype] old_current
   drivers/usb/host/ehci-hcd.c:566:27: sparse:     got int
   drivers/usb/host/ehci-hcd.c: note: in included file:
   drivers/usb/host/ehci-ppc-of.c:140:47: sparse: sparse: incorrect type in 
assignment (different address spaces) @@     expected restricted __hc32 
[usertype] *ohci_hcctrl_reg @@     got void [noderef] __iomem * @@
   drivers/usb/host/ehci-ppc-of.c:140:47: sparse:     expected restricted 
__hc32 [usertype] *ohci_hcctrl_reg
   drivers/usb/host/ehci-ppc-of.c:140:47: sparse:     got void [noderef] 
__iomem *
   drivers/usb/host/ehci-hcd.c: note: in included file:
>> drivers/usb/host/ehci.h:787:36: sparse: sparse: incorrect type in argument 1 
>> (different address spaces) @@     expected void const volatile [noderef] 
>> __iomem *addr @@     got restricted __hc32 [usertype] *ohci_hcctrl_reg @@
>> drivers/usb/host/ehci.h:787:36: sparse:     expected void const volatile 
>> [noderef] __iomem *addr
   drivers/usb/host/ehci.h:787:36: sparse:     got restricted __hc32 [usertype] 
*ohci_hcctrl_reg
>> drivers/usb/host/ehci.h:793:35: sparse: sparse: incorrect type in argument 2 
>> (different address spaces) @@     expected void volatile [noderef] __iomem 
>> *addr @@     got restricted __hc32 [usertype] *ohci_hcctrl_reg @@
>> drivers/usb/host/ehci.h:793:35: sparse:     expected void volatile [noderef] 
>> __iomem *addr
   drivers/usb/host/ehci.h:793:35: sparse:     got restricted __hc32 [usertype] 
*ohci_hcctrl_reg
   drivers/usb/host/ehci.h:794:29: sparse: sparse: incorrect type in argument 1 
(different address spaces) @@     expected void const volatile [noderef] 
__iomem *addr @@     got restricted __hc32 [usertype] *ohci_hcctrl_reg @@
   drivers/usb/host/ehci.h:794:29: sparse:     expected void const volatile 
[noderef] __iomem *addr
   drivers/usb/host/ehci.h:794:29: sparse:     got restricted __hc32 [usertype] 
*ohci_hcctrl_reg
>> drivers/usb/host/ehci.h:787:36: sparse: sparse: incorrect type in argument 1 
>> (different address spaces) @@     expected void const volatile [noderef] 
>> __iomem *addr @@     got restricted __hc32 [usertype] *ohci_hcctrl_reg @@
>> drivers/usb/host/ehci.h:787:36: sparse:     expected void const volatile 
>> [noderef] __iomem *addr
   drivers/usb/host/ehci.h:787:36: sparse:     got restricted __hc32 [usertype] 
*ohci_hcctrl_reg
>> drivers/usb/host/ehci.h:793:35: sparse: sparse: incorrect type in argument 2 
>> (different address spaces) @@     expected void volatile [noderef] __iomem 
>> *addr @@     got restricted __hc32 [usertype] *ohci_hcctrl_reg @@
>> drivers/usb/host/ehci.h:793:35: sparse:     expected void volatile [noderef] 
>> __iomem *addr
   drivers/usb/host/ehci.h:793:35: sparse:     got restricted __hc32 [usertype] 
*ohci_hcctrl_reg
   drivers/usb/host/ehci.h:794:29: sparse: sparse: incorrect type in argument 1 
(different address spaces) @@     expected void const volatile [noderef] 
__iomem *addr @@     got restricted __hc32 [usertype] *ohci_hcctrl_reg @@
   drivers/usb/host/ehci.h:794:29: sparse:     expected void const volatile 
[noderef] __iomem *addr
   drivers/usb/host/ehci.h:794:29: sparse:     got restricted __hc32 [usertype] 
*ohci_hcctrl_reg
>> drivers/usb/host/ehci.h:787:36: sparse: sparse: incorrect type in argument 1 
>> (different address spaces) @@     expected void const volatile [noderef] 
>> __iomem *addr @@     got restricted __hc32 [usertype] *ohci_hcctrl_reg @@
>> drivers/usb/host/ehci.h:787:36: sparse:     expected void const volatile 
>> [noderef] __iomem *addr
   drivers/usb/host/ehci.h:787:36: sparse:     got restricted __hc32 [usertype] 
*ohci_hcctrl_reg
>> drivers/usb/host/ehci.h:793:35: sparse: sparse: incorrect type in argument 2 
>> (different address spaces) @@     expected void volatile [noderef] __iomem 
>> *addr @@     got restricted __hc32 [usertype] *ohci_hcctrl_reg @@
>> drivers/usb/host/ehci.h:793:35: sparse:     expected void volatile [noderef] 
>> __iomem *addr
   drivers/usb/host/ehci.h:793:35: sparse:     got restricted __hc32 [usertype] 
*ohci_hcctrl_reg
   drivers/usb/host/ehci.h:794:29: sparse: sparse: incorrect type in argument 1 
(different address spaces) @@     expected void const volatile [noderef] 
__iomem *addr @@     got restricted __hc32 [usertype] *ohci_hcctrl_reg @@
   drivers/usb/host/ehci.h:794:29: sparse:     expected void const volatile 
[noderef] __iomem *addr
   drivers/usb/host/ehci.h:794:29: sparse:     got restricted __hc32 [usertype] 
*ohci_hcctrl_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 +196 drivers/ata/ahci_xgene.c

2a0bdff6b958d1b Suman Tripathi 2014-07-07  172  
2a0bdff6b958d1b Suman Tripathi 2014-07-07  173  /**
2a0bdff6b958d1b Suman Tripathi 2014-07-07  174   * xgene_ahci_qc_issue - Issue 
commands to the device
2a0bdff6b958d1b Suman Tripathi 2014-07-07  175   * @qc: Command to issue
2a0bdff6b958d1b Suman Tripathi 2014-07-07  176   *
a3a84bc7c885eee Suman Tripathi 2015-01-06  177   * Due to Hardware errata for 
IDENTIFY DEVICE command, the controller cannot
a3a84bc7c885eee Suman Tripathi 2015-01-06  178   * clear the BSY bit after 
receiving the PIO setup FIS. This results in the dma
a3a84bc7c885eee Suman Tripathi 2015-01-06  179   * state machine goes into the 
CMFatalErrorUpdate state and locks up. By
a3a84bc7c885eee Suman Tripathi 2015-01-06  180   * restarting the dma engine, 
it removes the controller out of lock up state.
a3a84bc7c885eee Suman Tripathi 2015-01-06  181   *
a3a84bc7c885eee Suman Tripathi 2015-01-06  182   * Due to H/W errata, the 
controller is unable to save the PMP
a3a84bc7c885eee Suman Tripathi 2015-01-06  183   * field fetched from command 
header before sending the H2D FIS.
a3a84bc7c885eee Suman Tripathi 2015-01-06  184   * When the device returns the 
PMP port field in the D2H FIS, there is
a3a84bc7c885eee Suman Tripathi 2015-01-06  185   * a mismatch and results in 
command completion failure. The
a3a84bc7c885eee Suman Tripathi 2015-01-06  186   * workaround is to write the 
pmp value to PxFBS.DEV field before issuing
a3a84bc7c885eee Suman Tripathi 2015-01-06  187   * any command to PMP.
2a0bdff6b958d1b Suman Tripathi 2014-07-07  188   */
2a0bdff6b958d1b Suman Tripathi 2014-07-07  189  static unsigned int 
xgene_ahci_qc_issue(struct ata_queued_cmd *qc)
2a0bdff6b958d1b Suman Tripathi 2014-07-07  190  {
2a0bdff6b958d1b Suman Tripathi 2014-07-07  191          struct ata_port *ap = 
qc->ap;
2a0bdff6b958d1b Suman Tripathi 2014-07-07  192          struct ahci_host_priv 
*hpriv = ap->host->private_data;
2a0bdff6b958d1b Suman Tripathi 2014-07-07  193          struct 
xgene_ahci_context *ctx = hpriv->plat_data;
2a0bdff6b958d1b Suman Tripathi 2014-07-07  194          int rc = 0;
a3a84bc7c885eee Suman Tripathi 2015-01-06  195          u32 port_fbs;
a3a84bc7c885eee Suman Tripathi 2015-01-06 @196          void *port_mmio = 
ahci_port_base(ap);
a3a84bc7c885eee Suman Tripathi 2015-01-06  197  
a3a84bc7c885eee Suman Tripathi 2015-01-06  198          /*
a3a84bc7c885eee Suman Tripathi 2015-01-06  199           * Write the pmp value 
to PxFBS.DEV
a3a84bc7c885eee Suman Tripathi 2015-01-06  200           * for case of Port 
Mulitplier.
a3a84bc7c885eee Suman Tripathi 2015-01-06  201           */
a3a84bc7c885eee Suman Tripathi 2015-01-06  202          if 
(ctx->class[ap->port_no] == ATA_DEV_PMP) {
a3a84bc7c885eee Suman Tripathi 2015-01-06 @203                  port_fbs = 
readl(port_mmio + PORT_FBS);
a3a84bc7c885eee Suman Tripathi 2015-01-06  204                  port_fbs &= 
~PORT_FBS_DEV_MASK;
a3a84bc7c885eee Suman Tripathi 2015-01-06  205                  port_fbs |= 
qc->dev->link->pmp << PORT_FBS_DEV_OFFSET;
a3a84bc7c885eee Suman Tripathi 2015-01-06 @206                  
writel(port_fbs, port_mmio + PORT_FBS);
a3a84bc7c885eee Suman Tripathi 2015-01-06  207          }
2a0bdff6b958d1b Suman Tripathi 2014-07-07  208  
1102407bb714dce Suman Tripathi 2014-12-29  209          if 
(unlikely((ctx->last_cmd[ap->port_no] == ATA_CMD_ID_ATA) ||
09c32aaa3683cbc Suman Tripathi 2015-02-02  210              
(ctx->last_cmd[ap->port_no] == ATA_CMD_PACKET) ||
09c32aaa3683cbc Suman Tripathi 2015-02-02  211              
(ctx->last_cmd[ap->port_no] == ATA_CMD_SMART)))
2a0bdff6b958d1b Suman Tripathi 2014-07-07  212                  
xgene_ahci_restart_engine(ap);
2a0bdff6b958d1b Suman Tripathi 2014-07-07  213  
2a0bdff6b958d1b Suman Tripathi 2014-07-07  214          rc = ahci_qc_issue(qc);
2a0bdff6b958d1b Suman Tripathi 2014-07-07  215  
2a0bdff6b958d1b Suman Tripathi 2014-07-07  216          /* Save the last 
command issued */
2a0bdff6b958d1b Suman Tripathi 2014-07-07  217          
ctx->last_cmd[ap->port_no] = qc->tf.command;
2a0bdff6b958d1b Suman Tripathi 2014-07-07  218  
2a0bdff6b958d1b Suman Tripathi 2014-07-07  219          return rc;
2a0bdff6b958d1b Suman Tripathi 2014-07-07  220  }
2a0bdff6b958d1b Suman Tripathi 2014-07-07  221  

:::::: The code at line 196 was first introduced by commit
:::::: a3a84bc7c885eee954f1971c43e36a3587fbf565 ahci_xgene: Implement the 
workaround to support PMP enumeration and discovery.

:::::: TO: Suman Tripathi <stripa...@apm.com>
:::::: CC: Tejun Heo <t...@kernel.org>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org

Attachment: .config.gz
Description: application/gzip

Reply via email to