All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: drivers/usb/gadget/udc/fsl_qe_udc.c:837:33: sparse: sparse: non size-preserving integer to pointer cast
Date: Wed, 26 Aug 2020 19:37:16 +0800	[thread overview]
Message-ID: <202008261908.zlfjrtAl%lkp@intel.com> (raw)

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

Hi Rasmus,

First bad commit (maybe != root cause):

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   2ac69819ba9e3d8d550bb5d2d2df74848e556812
commit: 5a35435ef4e6e4bd2aabd6706b146b298a9cffe5 soc: fsl: qe: remove PPC32 dependency from CONFIG_QUICC_ENGINE
date:   9 months ago
config: powerpc-randconfig-s032-20200826 (attached as .config)
compiler: powerpc64-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 5a35435ef4e6e4bd2aabd6706b146b298a9cffe5
        # 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=powerpc 

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


sparse warnings: (new ones prefixed by >>)

   drivers/usb/gadget/udc/fsl_qe_udc.c:302:27: sparse:     got restricted __be32 [noderef] <asn:2> *
   drivers/usb/gadget/udc/fsl_qe_udc.c:317:51: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned short const volatile [noderef] [usertype] <asn:2> *addr @@     got restricted __be16 [noderef] <asn:2> * @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:317:51: sparse:     expected unsigned short const volatile [noderef] [usertype] <asn:2> *addr
   drivers/usb/gadget/udc/fsl_qe_udc.c:317:51: sparse:     got restricted __be16 [noderef] <asn:2> *
   drivers/usb/gadget/udc/fsl_qe_udc.c:334:42: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned short volatile [noderef] [usertype] <asn:2> *addr @@     got restricted __be16 [noderef] <asn:2> * @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:334:42: sparse:     expected unsigned short volatile [noderef] [usertype] <asn:2> *addr
   drivers/usb/gadget/udc/fsl_qe_udc.c:334:42: sparse:     got restricted __be16 [noderef] <asn:2> *
   drivers/usb/gadget/udc/fsl_qe_udc.c:387:27: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int volatile [noderef] [usertype] <asn:2> *addr @@     got restricted __be32 [noderef] <asn:2> * @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:387:27: sparse:     expected unsigned int volatile [noderef] [usertype] <asn:2> *addr
   drivers/usb/gadget/udc/fsl_qe_udc.c:387:27: sparse:     got restricted __be32 [noderef] <asn:2> *
   drivers/usb/gadget/udc/fsl_qe_udc.c:391:19: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int volatile [noderef] [usertype] <asn:2> *addr @@     got restricted __be32 [noderef] <asn:2> * @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:391:19: sparse:     expected unsigned int volatile [noderef] [usertype] <asn:2> *addr
   drivers/usb/gadget/udc/fsl_qe_udc.c:391:19: sparse:     got restricted __be32 [noderef] <asn:2> *
   drivers/usb/gadget/udc/fsl_qe_udc.c:396:27: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int volatile [noderef] [usertype] <asn:2> *addr @@     got restricted __be32 [noderef] <asn:2> * @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:396:27: sparse:     expected unsigned int volatile [noderef] [usertype] <asn:2> *addr
   drivers/usb/gadget/udc/fsl_qe_udc.c:396:27: sparse:     got restricted __be32 [noderef] <asn:2> *
   drivers/usb/gadget/udc/fsl_qe_udc.c:400:19: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int volatile [noderef] [usertype] <asn:2> *addr @@     got restricted __be32 [noderef] <asn:2> * @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:400:19: sparse:     expected unsigned int volatile [noderef] [usertype] <asn:2> *addr
   drivers/usb/gadget/udc/fsl_qe_udc.c:400:19: sparse:     got restricted __be32 [noderef] <asn:2> *
   drivers/usb/gadget/udc/fsl_qe_udc.c:456:27: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int volatile [noderef] [usertype] <asn:2> *addr @@     got restricted __be32 [noderef] <asn:2> * @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:456:27: sparse:     expected unsigned int volatile [noderef] [usertype] <asn:2> *addr
   drivers/usb/gadget/udc/fsl_qe_udc.c:456:27: sparse:     got restricted __be32 [noderef] <asn:2> *
   drivers/usb/gadget/udc/fsl_qe_udc.c:461:19: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int volatile [noderef] [usertype] <asn:2> *addr @@     got restricted __be32 [noderef] <asn:2> * @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:461:19: sparse:     expected unsigned int volatile [noderef] [usertype] <asn:2> *addr
   drivers/usb/gadget/udc/fsl_qe_udc.c:461:19: sparse:     got restricted __be32 [noderef] <asn:2> *
   drivers/usb/gadget/udc/fsl_qe_udc.c:506:42: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned short volatile [noderef] [usertype] <asn:2> *addr @@     got restricted __be16 [noderef] <asn:2> * @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:506:42: sparse:     expected unsigned short volatile [noderef] [usertype] <asn:2> *addr
   drivers/usb/gadget/udc/fsl_qe_udc.c:506:42: sparse:     got restricted __be16 [noderef] <asn:2> *
   drivers/usb/gadget/udc/fsl_qe_udc.c:770:25: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned short const volatile [noderef] [usertype] <asn:2> *addr @@     got restricted __be16 [noderef] <asn:2> * @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:770:25: sparse:     expected unsigned short const volatile [noderef] [usertype] <asn:2> *addr
   drivers/usb/gadget/udc/fsl_qe_udc.c:770:25: sparse:     got restricted __be16 [noderef] <asn:2> *
   drivers/usb/gadget/udc/fsl_qe_udc.c:771:30: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned short volatile [noderef] [usertype] <asn:2> *addr @@     got restricted __be16 [noderef] <asn:2> * @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:771:30: sparse:     expected unsigned short volatile [noderef] [usertype] <asn:2> *addr
   drivers/usb/gadget/udc/fsl_qe_udc.c:771:30: sparse:     got restricted __be16 [noderef] <asn:2> *
   drivers/usb/gadget/udc/fsl_qe_udc.c:836:68: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int const volatile [noderef] [usertype] <asn:2> *addr @@     got restricted __be32 [noderef] <asn:2> * @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:836:68: sparse:     expected unsigned int const volatile [noderef] [usertype] <asn:2> *addr
   drivers/usb/gadget/udc/fsl_qe_udc.c:836:68: sparse:     got restricted __be32 [noderef] <asn:2> *
   drivers/usb/gadget/udc/fsl_qe_udc.c:964:68: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int const volatile [noderef] [usertype] <asn:2> *addr @@     got restricted __be32 [noderef] <asn:2> * @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:964:68: sparse:     expected unsigned int const volatile [noderef] [usertype] <asn:2> *addr
   drivers/usb/gadget/udc/fsl_qe_udc.c:964:68: sparse:     got restricted __be32 [noderef] <asn:2> *
   drivers/usb/gadget/udc/fsl_qe_udc.c:1074:33: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned short const volatile [noderef] [usertype] <asn:2> *addr @@     got restricted __be16 [noderef] <asn:2> * @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:1074:33: sparse:     expected unsigned short const volatile [noderef] [usertype] <asn:2> *addr
   drivers/usb/gadget/udc/fsl_qe_udc.c:1074:33: sparse:     got restricted __be16 [noderef] <asn:2> *
   drivers/usb/gadget/udc/fsl_qe_udc.c:1075:22: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned short volatile [noderef] [usertype] <asn:2> *addr @@     got restricted __be16 [noderef] <asn:2> * @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:1075:22: sparse:     expected unsigned short volatile [noderef] [usertype] <asn:2> *addr
   drivers/usb/gadget/udc/fsl_qe_udc.c:1075:22: sparse:     got restricted __be16 [noderef] <asn:2> *
   drivers/usb/gadget/udc/fsl_qe_udc.c:1089:27: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int volatile [noderef] [usertype] <asn:2> *addr @@     got restricted __be32 [noderef] <asn:2> * @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:1089:27: sparse:     expected unsigned int volatile [noderef] [usertype] <asn:2> *addr
   drivers/usb/gadget/udc/fsl_qe_udc.c:1089:27: sparse:     got restricted __be32 [noderef] <asn:2> *
   drivers/usb/gadget/udc/fsl_qe_udc.c:1114:30: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned short volatile [noderef] [usertype] <asn:2> *addr @@     got restricted __be16 [noderef] <asn:2> * @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:1114:30: sparse:     expected unsigned short volatile [noderef] [usertype] <asn:2> *addr
   drivers/usb/gadget/udc/fsl_qe_udc.c:1114:30: sparse:     got restricted __be16 [noderef] <asn:2> *
   drivers/usb/gadget/udc/fsl_qe_udc.c:1124:30: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned short volatile [noderef] [usertype] <asn:2> *addr @@     got restricted __be16 [noderef] <asn:2> * @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:1124:30: sparse:     expected unsigned short volatile [noderef] [usertype] <asn:2> *addr
   drivers/usb/gadget/udc/fsl_qe_udc.c:1124:30: sparse:     got restricted __be16 [noderef] <asn:2> *
   drivers/usb/gadget/udc/fsl_qe_udc.c:1367:27: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int volatile [noderef] [usertype] <asn:2> *addr @@     got restricted __be32 [noderef] <asn:2> * @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:1367:27: sparse:     expected unsigned int volatile [noderef] [usertype] <asn:2> *addr
   drivers/usb/gadget/udc/fsl_qe_udc.c:1367:27: sparse:     got restricted __be32 [noderef] <asn:2> *
   drivers/usb/gadget/udc/fsl_qe_udc.c:1431:27: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int volatile [noderef] [usertype] <asn:2> *addr @@     got restricted __be32 [noderef] <asn:2> * @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:1431:27: sparse:     expected unsigned int volatile [noderef] [usertype] <asn:2> *addr
   drivers/usb/gadget/udc/fsl_qe_udc.c:1431:27: sparse:     got restricted __be32 [noderef] <asn:2> *
   drivers/usb/gadget/udc/fsl_qe_udc.c:1490:60: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int const volatile [noderef] [usertype] <asn:2> *addr @@     got restricted __be32 [noderef] <asn:2> * @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:1490:60: sparse:     expected unsigned int const volatile [noderef] [usertype] <asn:2> *addr
   drivers/usb/gadget/udc/fsl_qe_udc.c:1490:60: sparse:     got restricted __be32 [noderef] <asn:2> *
   drivers/usb/gadget/udc/fsl_qe_udc.c:2287:22: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned short volatile [noderef] [usertype] <asn:2> *addr @@     got restricted __be16 [noderef] <asn:2> * @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:2287:22: sparse:     expected unsigned short volatile [noderef] [usertype] <asn:2> *addr
   drivers/usb/gadget/udc/fsl_qe_udc.c:2287:22: sparse:     got restricted __be16 [noderef] <asn:2> *
   drivers/usb/gadget/udc/fsl_qe_udc.c:2288:22: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned short volatile [noderef] [usertype] <asn:2> *addr @@     got restricted __be16 [noderef] <asn:2> * @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:2288:22: sparse:     expected unsigned short volatile [noderef] [usertype] <asn:2> *addr
   drivers/usb/gadget/udc/fsl_qe_udc.c:2288:22: sparse:     got restricted __be16 [noderef] <asn:2> *
   drivers/usb/gadget/udc/fsl_qe_udc.c:1960:56: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned short const volatile [noderef] [usertype] <asn:2> *addr @@     got restricted __be16 [noderef] <asn:2> * @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:1960:56: sparse:     expected unsigned short const volatile [noderef] [usertype] <asn:2> *addr
   drivers/usb/gadget/udc/fsl_qe_udc.c:1960:56: sparse:     got restricted __be16 [noderef] <asn:2> *
   drivers/usb/gadget/udc/fsl_qe_udc.c:1978:30: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short [usertype] @@     got restricted __le16 [usertype] @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:1978:30: sparse:     expected unsigned short [usertype]
   drivers/usb/gadget/udc/fsl_qe_udc.c:1978:30: sparse:     got restricted __le16 [usertype]
   drivers/usb/gadget/udc/fsl_qe_udc.c:2174:62: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int const volatile [noderef] [usertype] <asn:2> *addr @@     got restricted __be32 [noderef] <asn:2> * @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:2174:62: sparse:     expected unsigned int const volatile [noderef] [usertype] <asn:2> *addr
   drivers/usb/gadget/udc/fsl_qe_udc.c:2174:62: sparse:     got restricted __be32 [noderef] <asn:2> *
   drivers/usb/gadget/udc/fsl_qe_udc.c:2199:62: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int const volatile [noderef] [usertype] <asn:2> *addr @@     got restricted __be32 [noderef] <asn:2> * @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:2199:62: sparse:     expected unsigned int const volatile [noderef] [usertype] <asn:2> *addr
   drivers/usb/gadget/udc/fsl_qe_udc.c:2199:62: sparse:     got restricted __be32 [noderef] <asn:2> *
   drivers/usb/gadget/udc/fsl_qe_udc.c:2220:31: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned short const volatile [noderef] [usertype] <asn:2> *addr @@     got restricted __be16 [noderef] <asn:2> * @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:2220:31: sparse:     expected unsigned short const volatile [noderef] [usertype] <asn:2> *addr
   drivers/usb/gadget/udc/fsl_qe_udc.c:2220:31: sparse:     got restricted __be16 [noderef] <asn:2> *
   drivers/usb/gadget/udc/fsl_qe_udc.c:2221:29: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned short const volatile [noderef] [usertype] <asn:2> *addr @@     got restricted __be16 [noderef] <asn:2> * @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:2221:29: sparse:     expected unsigned short const volatile [noderef] [usertype] <asn:2> *addr
   drivers/usb/gadget/udc/fsl_qe_udc.c:2221:29: sparse:     got restricted __be16 [noderef] <asn:2> *
   drivers/usb/gadget/udc/fsl_qe_udc.c:2223:22: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned short volatile [noderef] [usertype] <asn:2> *addr @@     got restricted __be16 [noderef] <asn:2> * @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:2223:22: sparse:     expected unsigned short volatile [noderef] [usertype] <asn:2> *addr
   drivers/usb/gadget/udc/fsl_qe_udc.c:2223:22: sparse:     got restricted __be16 [noderef] <asn:2> *
   drivers/usb/gadget/udc/fsl_qe_udc.c:2343:16: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int [usertype] offset @@     got restricted __be32 const [usertype] @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:2343:16: sparse:     expected unsigned int [usertype] offset
   drivers/usb/gadget/udc/fsl_qe_udc.c:2343:16: sparse:     got restricted __be32 const [usertype]
   drivers/usb/gadget/udc/fsl_qe_udc.c:2390:19: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned short volatile [noderef] [usertype] <asn:2> *addr @@     got restricted __be16 [noderef] <asn:2> * @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:2390:19: sparse:     expected unsigned short volatile [noderef] [usertype] <asn:2> *addr
   drivers/usb/gadget/udc/fsl_qe_udc.c:2390:19: sparse:     got restricted __be16 [noderef] <asn:2> *
   drivers/usb/gadget/udc/fsl_qe_udc.c:2392:19: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned short volatile [noderef] [usertype] <asn:2> *addr @@     got restricted __be16 [noderef] <asn:2> * @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:2392:19: sparse:     expected unsigned short volatile [noderef] [usertype] <asn:2> *addr
   drivers/usb/gadget/udc/fsl_qe_udc.c:2392:19: sparse:     got restricted __be16 [noderef] <asn:2> *
>> drivers/usb/gadget/udc/fsl_qe_udc.c:837:33: sparse: sparse: non size-preserving integer to pointer cast
   drivers/usb/gadget/udc/fsl_qe_udc.c:965:33: sparse: sparse: non size-preserving integer to pointer cast
   drivers/usb/gadget/udc/fsl_qe_udc.c:1491:25: sparse: sparse: non size-preserving integer to pointer cast
   drivers/usb/gadget/udc/fsl_qe_udc.c: note: in included file (through include/linux/seqlock.h, include/linux/time.h, include/linux/stat.h, ...):
>> include/linux/spinlock.h:378:9: sparse: sparse: context imbalance in 'setup_received_handle' - unexpected unlock

# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5a35435ef4e6e4bd2aabd6706b146b298a9cffe5
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 5a35435ef4e6e4bd2aabd6706b146b298a9cffe5
vim +837 drivers/usb/gadget/udc/fsl_qe_udc.c

3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  807  
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  808  static int qe_ep0_rx(struct qe_udc *udc)
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  809  {
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  810  	struct qe_ep *ep = &udc->eps[0];
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  811  	struct qe_frame *pframe;
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  812  	struct qe_bd __iomem *bd;
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  813  	u32 bdstatus, length;
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  814  	u32 vaddr;
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  815  
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  816  	pframe = ep->rxframe;
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  817  
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  818  	if (ep->dir == USB_DIR_IN) {
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  819  		dev_err(udc->dev, "ep0 not a control endpoint\n");
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  820  		return -EINVAL;
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  821  	}
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  822  
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  823  	bd = ep->n_rxbd;
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  824  	bdstatus = in_be32((u32 __iomem *)bd);
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  825  	length = bdstatus & BD_LENGTH_MASK;
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  826  
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  827  	while (!(bdstatus & R_E) && length) {
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  828  		if ((bdstatus & R_F) && (bdstatus & R_L)
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  829  			&& !(bdstatus & R_ERROR)) {
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  830  			if (length == USB_CRC_SIZE) {
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  831  				udc->ep0_state = WAIT_FOR_SETUP;
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  832  				dev_vdbg(udc->dev,
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  833  					"receive a ZLP in status phase\n");
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  834  			} else {
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  835  				qe_frame_clean(pframe);
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  836  				vaddr = (u32)phys_to_virt(in_be32(&bd->buf));
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02 @837  				frame_set_data(pframe, (u8 *)vaddr);
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  838  				frame_set_length(pframe,
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  839  						(length - USB_CRC_SIZE));
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  840  				frame_set_status(pframe, FRAME_OK);
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  841  				switch (bdstatus & R_PID) {
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  842  				case R_PID_SETUP:
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  843  					frame_set_info(pframe, PID_SETUP);
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  844  					break;
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  845  				case R_PID_DATA1:
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  846  					frame_set_info(pframe, PID_DATA1);
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  847  					break;
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  848  				default:
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  849  					frame_set_info(pframe, PID_DATA0);
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  850  					break;
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  851  				}
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  852  
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  853  				if ((bdstatus & R_PID) == R_PID_SETUP)
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  854  					ep0_setup_handle(udc);
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  855  				else
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  856  					qe_ep_rxframe_handle(ep);
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  857  			}
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  858  		} else {
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  859  			dev_err(udc->dev, "The receive frame with error!\n");
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  860  		}
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  861  
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  862  		/* note: don't clear the rxbd's buffer address */
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  863  		recycle_one_rxbd(ep);
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  864  
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  865  		/* Get next BD */
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  866  		if (bdstatus & R_W)
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  867  			bd = ep->rxbase;
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  868  		else
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  869  			bd++;
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  870  
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  871  		bdstatus = in_be32((u32 __iomem *)bd);
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  872  		length = bdstatus & BD_LENGTH_MASK;
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  873  
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  874  	}
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  875  
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  876  	ep->n_rxbd = bd;
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  877  
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  878  	return 0;
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  879  }
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  880  

:::::: The code at line 837 was first introduced by commit
:::::: 3948f0e0c999a6201e9898bb8fbe3c6cc1199276 usb: add Freescale QE/CPM USB peripheral controller driver

:::::: TO: Li Yang <leoli@freescale.com>
:::::: CC: Greg Kroah-Hartman <gregkh@suse.de>

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

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 32582 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Cc: kbuild-all@lists.01.org, linux-kernel@vger.kernel.org,
	Li Yang <leoyang.li@nxp.com>, Timur Tabi <timur@kernel.org>
Subject: drivers/usb/gadget/udc/fsl_qe_udc.c:837:33: sparse: sparse: non size-preserving integer to pointer cast
Date: Wed, 26 Aug 2020 19:37:16 +0800	[thread overview]
Message-ID: <202008261908.zlfjrtAl%lkp@intel.com> (raw)

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

Hi Rasmus,

First bad commit (maybe != root cause):

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   2ac69819ba9e3d8d550bb5d2d2df74848e556812
commit: 5a35435ef4e6e4bd2aabd6706b146b298a9cffe5 soc: fsl: qe: remove PPC32 dependency from CONFIG_QUICC_ENGINE
date:   9 months ago
config: powerpc-randconfig-s032-20200826 (attached as .config)
compiler: powerpc64-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 5a35435ef4e6e4bd2aabd6706b146b298a9cffe5
        # 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=powerpc 

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


sparse warnings: (new ones prefixed by >>)

   drivers/usb/gadget/udc/fsl_qe_udc.c:302:27: sparse:     got restricted __be32 [noderef] <asn:2> *
   drivers/usb/gadget/udc/fsl_qe_udc.c:317:51: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned short const volatile [noderef] [usertype] <asn:2> *addr @@     got restricted __be16 [noderef] <asn:2> * @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:317:51: sparse:     expected unsigned short const volatile [noderef] [usertype] <asn:2> *addr
   drivers/usb/gadget/udc/fsl_qe_udc.c:317:51: sparse:     got restricted __be16 [noderef] <asn:2> *
   drivers/usb/gadget/udc/fsl_qe_udc.c:334:42: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned short volatile [noderef] [usertype] <asn:2> *addr @@     got restricted __be16 [noderef] <asn:2> * @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:334:42: sparse:     expected unsigned short volatile [noderef] [usertype] <asn:2> *addr
   drivers/usb/gadget/udc/fsl_qe_udc.c:334:42: sparse:     got restricted __be16 [noderef] <asn:2> *
   drivers/usb/gadget/udc/fsl_qe_udc.c:387:27: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int volatile [noderef] [usertype] <asn:2> *addr @@     got restricted __be32 [noderef] <asn:2> * @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:387:27: sparse:     expected unsigned int volatile [noderef] [usertype] <asn:2> *addr
   drivers/usb/gadget/udc/fsl_qe_udc.c:387:27: sparse:     got restricted __be32 [noderef] <asn:2> *
   drivers/usb/gadget/udc/fsl_qe_udc.c:391:19: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int volatile [noderef] [usertype] <asn:2> *addr @@     got restricted __be32 [noderef] <asn:2> * @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:391:19: sparse:     expected unsigned int volatile [noderef] [usertype] <asn:2> *addr
   drivers/usb/gadget/udc/fsl_qe_udc.c:391:19: sparse:     got restricted __be32 [noderef] <asn:2> *
   drivers/usb/gadget/udc/fsl_qe_udc.c:396:27: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int volatile [noderef] [usertype] <asn:2> *addr @@     got restricted __be32 [noderef] <asn:2> * @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:396:27: sparse:     expected unsigned int volatile [noderef] [usertype] <asn:2> *addr
   drivers/usb/gadget/udc/fsl_qe_udc.c:396:27: sparse:     got restricted __be32 [noderef] <asn:2> *
   drivers/usb/gadget/udc/fsl_qe_udc.c:400:19: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int volatile [noderef] [usertype] <asn:2> *addr @@     got restricted __be32 [noderef] <asn:2> * @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:400:19: sparse:     expected unsigned int volatile [noderef] [usertype] <asn:2> *addr
   drivers/usb/gadget/udc/fsl_qe_udc.c:400:19: sparse:     got restricted __be32 [noderef] <asn:2> *
   drivers/usb/gadget/udc/fsl_qe_udc.c:456:27: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int volatile [noderef] [usertype] <asn:2> *addr @@     got restricted __be32 [noderef] <asn:2> * @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:456:27: sparse:     expected unsigned int volatile [noderef] [usertype] <asn:2> *addr
   drivers/usb/gadget/udc/fsl_qe_udc.c:456:27: sparse:     got restricted __be32 [noderef] <asn:2> *
   drivers/usb/gadget/udc/fsl_qe_udc.c:461:19: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int volatile [noderef] [usertype] <asn:2> *addr @@     got restricted __be32 [noderef] <asn:2> * @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:461:19: sparse:     expected unsigned int volatile [noderef] [usertype] <asn:2> *addr
   drivers/usb/gadget/udc/fsl_qe_udc.c:461:19: sparse:     got restricted __be32 [noderef] <asn:2> *
   drivers/usb/gadget/udc/fsl_qe_udc.c:506:42: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned short volatile [noderef] [usertype] <asn:2> *addr @@     got restricted __be16 [noderef] <asn:2> * @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:506:42: sparse:     expected unsigned short volatile [noderef] [usertype] <asn:2> *addr
   drivers/usb/gadget/udc/fsl_qe_udc.c:506:42: sparse:     got restricted __be16 [noderef] <asn:2> *
   drivers/usb/gadget/udc/fsl_qe_udc.c:770:25: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned short const volatile [noderef] [usertype] <asn:2> *addr @@     got restricted __be16 [noderef] <asn:2> * @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:770:25: sparse:     expected unsigned short const volatile [noderef] [usertype] <asn:2> *addr
   drivers/usb/gadget/udc/fsl_qe_udc.c:770:25: sparse:     got restricted __be16 [noderef] <asn:2> *
   drivers/usb/gadget/udc/fsl_qe_udc.c:771:30: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned short volatile [noderef] [usertype] <asn:2> *addr @@     got restricted __be16 [noderef] <asn:2> * @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:771:30: sparse:     expected unsigned short volatile [noderef] [usertype] <asn:2> *addr
   drivers/usb/gadget/udc/fsl_qe_udc.c:771:30: sparse:     got restricted __be16 [noderef] <asn:2> *
   drivers/usb/gadget/udc/fsl_qe_udc.c:836:68: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int const volatile [noderef] [usertype] <asn:2> *addr @@     got restricted __be32 [noderef] <asn:2> * @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:836:68: sparse:     expected unsigned int const volatile [noderef] [usertype] <asn:2> *addr
   drivers/usb/gadget/udc/fsl_qe_udc.c:836:68: sparse:     got restricted __be32 [noderef] <asn:2> *
   drivers/usb/gadget/udc/fsl_qe_udc.c:964:68: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int const volatile [noderef] [usertype] <asn:2> *addr @@     got restricted __be32 [noderef] <asn:2> * @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:964:68: sparse:     expected unsigned int const volatile [noderef] [usertype] <asn:2> *addr
   drivers/usb/gadget/udc/fsl_qe_udc.c:964:68: sparse:     got restricted __be32 [noderef] <asn:2> *
   drivers/usb/gadget/udc/fsl_qe_udc.c:1074:33: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned short const volatile [noderef] [usertype] <asn:2> *addr @@     got restricted __be16 [noderef] <asn:2> * @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:1074:33: sparse:     expected unsigned short const volatile [noderef] [usertype] <asn:2> *addr
   drivers/usb/gadget/udc/fsl_qe_udc.c:1074:33: sparse:     got restricted __be16 [noderef] <asn:2> *
   drivers/usb/gadget/udc/fsl_qe_udc.c:1075:22: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned short volatile [noderef] [usertype] <asn:2> *addr @@     got restricted __be16 [noderef] <asn:2> * @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:1075:22: sparse:     expected unsigned short volatile [noderef] [usertype] <asn:2> *addr
   drivers/usb/gadget/udc/fsl_qe_udc.c:1075:22: sparse:     got restricted __be16 [noderef] <asn:2> *
   drivers/usb/gadget/udc/fsl_qe_udc.c:1089:27: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int volatile [noderef] [usertype] <asn:2> *addr @@     got restricted __be32 [noderef] <asn:2> * @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:1089:27: sparse:     expected unsigned int volatile [noderef] [usertype] <asn:2> *addr
   drivers/usb/gadget/udc/fsl_qe_udc.c:1089:27: sparse:     got restricted __be32 [noderef] <asn:2> *
   drivers/usb/gadget/udc/fsl_qe_udc.c:1114:30: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned short volatile [noderef] [usertype] <asn:2> *addr @@     got restricted __be16 [noderef] <asn:2> * @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:1114:30: sparse:     expected unsigned short volatile [noderef] [usertype] <asn:2> *addr
   drivers/usb/gadget/udc/fsl_qe_udc.c:1114:30: sparse:     got restricted __be16 [noderef] <asn:2> *
   drivers/usb/gadget/udc/fsl_qe_udc.c:1124:30: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned short volatile [noderef] [usertype] <asn:2> *addr @@     got restricted __be16 [noderef] <asn:2> * @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:1124:30: sparse:     expected unsigned short volatile [noderef] [usertype] <asn:2> *addr
   drivers/usb/gadget/udc/fsl_qe_udc.c:1124:30: sparse:     got restricted __be16 [noderef] <asn:2> *
   drivers/usb/gadget/udc/fsl_qe_udc.c:1367:27: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int volatile [noderef] [usertype] <asn:2> *addr @@     got restricted __be32 [noderef] <asn:2> * @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:1367:27: sparse:     expected unsigned int volatile [noderef] [usertype] <asn:2> *addr
   drivers/usb/gadget/udc/fsl_qe_udc.c:1367:27: sparse:     got restricted __be32 [noderef] <asn:2> *
   drivers/usb/gadget/udc/fsl_qe_udc.c:1431:27: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int volatile [noderef] [usertype] <asn:2> *addr @@     got restricted __be32 [noderef] <asn:2> * @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:1431:27: sparse:     expected unsigned int volatile [noderef] [usertype] <asn:2> *addr
   drivers/usb/gadget/udc/fsl_qe_udc.c:1431:27: sparse:     got restricted __be32 [noderef] <asn:2> *
   drivers/usb/gadget/udc/fsl_qe_udc.c:1490:60: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int const volatile [noderef] [usertype] <asn:2> *addr @@     got restricted __be32 [noderef] <asn:2> * @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:1490:60: sparse:     expected unsigned int const volatile [noderef] [usertype] <asn:2> *addr
   drivers/usb/gadget/udc/fsl_qe_udc.c:1490:60: sparse:     got restricted __be32 [noderef] <asn:2> *
   drivers/usb/gadget/udc/fsl_qe_udc.c:2287:22: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned short volatile [noderef] [usertype] <asn:2> *addr @@     got restricted __be16 [noderef] <asn:2> * @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:2287:22: sparse:     expected unsigned short volatile [noderef] [usertype] <asn:2> *addr
   drivers/usb/gadget/udc/fsl_qe_udc.c:2287:22: sparse:     got restricted __be16 [noderef] <asn:2> *
   drivers/usb/gadget/udc/fsl_qe_udc.c:2288:22: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned short volatile [noderef] [usertype] <asn:2> *addr @@     got restricted __be16 [noderef] <asn:2> * @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:2288:22: sparse:     expected unsigned short volatile [noderef] [usertype] <asn:2> *addr
   drivers/usb/gadget/udc/fsl_qe_udc.c:2288:22: sparse:     got restricted __be16 [noderef] <asn:2> *
   drivers/usb/gadget/udc/fsl_qe_udc.c:1960:56: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned short const volatile [noderef] [usertype] <asn:2> *addr @@     got restricted __be16 [noderef] <asn:2> * @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:1960:56: sparse:     expected unsigned short const volatile [noderef] [usertype] <asn:2> *addr
   drivers/usb/gadget/udc/fsl_qe_udc.c:1960:56: sparse:     got restricted __be16 [noderef] <asn:2> *
   drivers/usb/gadget/udc/fsl_qe_udc.c:1978:30: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short [usertype] @@     got restricted __le16 [usertype] @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:1978:30: sparse:     expected unsigned short [usertype]
   drivers/usb/gadget/udc/fsl_qe_udc.c:1978:30: sparse:     got restricted __le16 [usertype]
   drivers/usb/gadget/udc/fsl_qe_udc.c:2174:62: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int const volatile [noderef] [usertype] <asn:2> *addr @@     got restricted __be32 [noderef] <asn:2> * @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:2174:62: sparse:     expected unsigned int const volatile [noderef] [usertype] <asn:2> *addr
   drivers/usb/gadget/udc/fsl_qe_udc.c:2174:62: sparse:     got restricted __be32 [noderef] <asn:2> *
   drivers/usb/gadget/udc/fsl_qe_udc.c:2199:62: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int const volatile [noderef] [usertype] <asn:2> *addr @@     got restricted __be32 [noderef] <asn:2> * @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:2199:62: sparse:     expected unsigned int const volatile [noderef] [usertype] <asn:2> *addr
   drivers/usb/gadget/udc/fsl_qe_udc.c:2199:62: sparse:     got restricted __be32 [noderef] <asn:2> *
   drivers/usb/gadget/udc/fsl_qe_udc.c:2220:31: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned short const volatile [noderef] [usertype] <asn:2> *addr @@     got restricted __be16 [noderef] <asn:2> * @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:2220:31: sparse:     expected unsigned short const volatile [noderef] [usertype] <asn:2> *addr
   drivers/usb/gadget/udc/fsl_qe_udc.c:2220:31: sparse:     got restricted __be16 [noderef] <asn:2> *
   drivers/usb/gadget/udc/fsl_qe_udc.c:2221:29: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned short const volatile [noderef] [usertype] <asn:2> *addr @@     got restricted __be16 [noderef] <asn:2> * @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:2221:29: sparse:     expected unsigned short const volatile [noderef] [usertype] <asn:2> *addr
   drivers/usb/gadget/udc/fsl_qe_udc.c:2221:29: sparse:     got restricted __be16 [noderef] <asn:2> *
   drivers/usb/gadget/udc/fsl_qe_udc.c:2223:22: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned short volatile [noderef] [usertype] <asn:2> *addr @@     got restricted __be16 [noderef] <asn:2> * @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:2223:22: sparse:     expected unsigned short volatile [noderef] [usertype] <asn:2> *addr
   drivers/usb/gadget/udc/fsl_qe_udc.c:2223:22: sparse:     got restricted __be16 [noderef] <asn:2> *
   drivers/usb/gadget/udc/fsl_qe_udc.c:2343:16: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int [usertype] offset @@     got restricted __be32 const [usertype] @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:2343:16: sparse:     expected unsigned int [usertype] offset
   drivers/usb/gadget/udc/fsl_qe_udc.c:2343:16: sparse:     got restricted __be32 const [usertype]
   drivers/usb/gadget/udc/fsl_qe_udc.c:2390:19: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned short volatile [noderef] [usertype] <asn:2> *addr @@     got restricted __be16 [noderef] <asn:2> * @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:2390:19: sparse:     expected unsigned short volatile [noderef] [usertype] <asn:2> *addr
   drivers/usb/gadget/udc/fsl_qe_udc.c:2390:19: sparse:     got restricted __be16 [noderef] <asn:2> *
   drivers/usb/gadget/udc/fsl_qe_udc.c:2392:19: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned short volatile [noderef] [usertype] <asn:2> *addr @@     got restricted __be16 [noderef] <asn:2> * @@
   drivers/usb/gadget/udc/fsl_qe_udc.c:2392:19: sparse:     expected unsigned short volatile [noderef] [usertype] <asn:2> *addr
   drivers/usb/gadget/udc/fsl_qe_udc.c:2392:19: sparse:     got restricted __be16 [noderef] <asn:2> *
>> drivers/usb/gadget/udc/fsl_qe_udc.c:837:33: sparse: sparse: non size-preserving integer to pointer cast
   drivers/usb/gadget/udc/fsl_qe_udc.c:965:33: sparse: sparse: non size-preserving integer to pointer cast
   drivers/usb/gadget/udc/fsl_qe_udc.c:1491:25: sparse: sparse: non size-preserving integer to pointer cast
   drivers/usb/gadget/udc/fsl_qe_udc.c: note: in included file (through include/linux/seqlock.h, include/linux/time.h, include/linux/stat.h, ...):
>> include/linux/spinlock.h:378:9: sparse: sparse: context imbalance in 'setup_received_handle' - unexpected unlock

# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5a35435ef4e6e4bd2aabd6706b146b298a9cffe5
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 5a35435ef4e6e4bd2aabd6706b146b298a9cffe5
vim +837 drivers/usb/gadget/udc/fsl_qe_udc.c

3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  807  
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  808  static int qe_ep0_rx(struct qe_udc *udc)
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  809  {
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  810  	struct qe_ep *ep = &udc->eps[0];
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  811  	struct qe_frame *pframe;
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  812  	struct qe_bd __iomem *bd;
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  813  	u32 bdstatus, length;
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  814  	u32 vaddr;
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  815  
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  816  	pframe = ep->rxframe;
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  817  
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  818  	if (ep->dir == USB_DIR_IN) {
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  819  		dev_err(udc->dev, "ep0 not a control endpoint\n");
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  820  		return -EINVAL;
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  821  	}
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  822  
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  823  	bd = ep->n_rxbd;
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  824  	bdstatus = in_be32((u32 __iomem *)bd);
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  825  	length = bdstatus & BD_LENGTH_MASK;
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  826  
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  827  	while (!(bdstatus & R_E) && length) {
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  828  		if ((bdstatus & R_F) && (bdstatus & R_L)
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  829  			&& !(bdstatus & R_ERROR)) {
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  830  			if (length == USB_CRC_SIZE) {
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  831  				udc->ep0_state = WAIT_FOR_SETUP;
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  832  				dev_vdbg(udc->dev,
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  833  					"receive a ZLP in status phase\n");
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  834  			} else {
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  835  				qe_frame_clean(pframe);
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  836  				vaddr = (u32)phys_to_virt(in_be32(&bd->buf));
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02 @837  				frame_set_data(pframe, (u8 *)vaddr);
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  838  				frame_set_length(pframe,
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  839  						(length - USB_CRC_SIZE));
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  840  				frame_set_status(pframe, FRAME_OK);
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  841  				switch (bdstatus & R_PID) {
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  842  				case R_PID_SETUP:
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  843  					frame_set_info(pframe, PID_SETUP);
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  844  					break;
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  845  				case R_PID_DATA1:
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  846  					frame_set_info(pframe, PID_DATA1);
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  847  					break;
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  848  				default:
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  849  					frame_set_info(pframe, PID_DATA0);
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  850  					break;
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  851  				}
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  852  
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  853  				if ((bdstatus & R_PID) == R_PID_SETUP)
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  854  					ep0_setup_handle(udc);
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  855  				else
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  856  					qe_ep_rxframe_handle(ep);
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  857  			}
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  858  		} else {
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  859  			dev_err(udc->dev, "The receive frame with error!\n");
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  860  		}
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  861  
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  862  		/* note: don't clear the rxbd's buffer address */
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  863  		recycle_one_rxbd(ep);
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  864  
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  865  		/* Get next BD */
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  866  		if (bdstatus & R_W)
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  867  			bd = ep->rxbase;
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  868  		else
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  869  			bd++;
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  870  
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  871  		bdstatus = in_be32((u32 __iomem *)bd);
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  872  		length = bdstatus & BD_LENGTH_MASK;
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  873  
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  874  	}
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  875  
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  876  	ep->n_rxbd = bd;
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  877  
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  878  	return 0;
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  879  }
3948f0e0c999a62 drivers/usb/gadget/fsl_qe_udc.c Li Yang 2008-09-02  880  

:::::: The code at line 837 was first introduced by commit
:::::: 3948f0e0c999a6201e9898bb8fbe3c6cc1199276 usb: add Freescale QE/CPM USB peripheral controller driver

:::::: TO: Li Yang <leoli@freescale.com>
:::::: CC: Greg Kroah-Hartman <gregkh@suse.de>

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

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 32582 bytes --]

             reply	other threads:[~2020-08-26 11:37 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-08-26 11:37 kernel test robot [this message]
2020-08-26 11:37 ` drivers/usb/gadget/udc/fsl_qe_udc.c:837:33: sparse: sparse: non size-preserving integer to pointer cast kernel test robot
  -- strict thread matches above, loose matches on Subject: below --
2020-12-06 20:12 kernel test robot
2020-12-06 20:12 ` kernel test robot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202008261908.zlfjrtAl%lkp@intel.com \
    --to=lkp@intel.com \
    --cc=kbuild-all@lists.01.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.