* [pinchartl-media:muxed/2022.2/base 670/740] drivers/usb/gadget/udc/udc-xilinx.c:502:37: sparse: sparse: incorrect type in argument 1 (different address spaces)
@ 2023-02-13 7:45 kernel test robot
0 siblings, 0 replies; 4+ messages in thread
From: kernel test robot @ 2023-02-13 7:45 UTC (permalink / raw)
To: Piyush Mehta; +Cc: oe-kbuild-all, Michal Simek
Hi Piyush,
FYI, the error/warning was bisected to this commit, please ignore it if it's irrelevant.
tree: git://linuxtv.org/pinchartl/media.git muxed/2022.2/base
head: e26621179c3b1834a1bb17e9a38e47238ac63bf5
commit: 59acbc300f7f442215a37478ac611aca8092eee3 [670/740] usb: gadget: udc-xilinx: fix compilation error
config: i386-randconfig-s001 (https://download.01.org/0day-ci/archive/20230213/202302131535.f1rVCTDG-lkp@intel.com/config)
compiler: gcc-11 (Debian 11.3.0-8) 11.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.4-39-gce1a6720-dirty
git remote add pinchartl-media git://linuxtv.org/pinchartl/media.git
git fetch --no-tags pinchartl-media muxed/2022.2/base
git checkout 59acbc300f7f442215a37478ac611aca8092eee3
# save the config file
mkdir build_dir && cp config build_dir/.config
make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=i386 olddefconfig
make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=i386 SHELL=/bin/bash drivers/usb/gadget/udc/
If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@intel.com>
| Link: https://lore.kernel.org/oe-kbuild-all/202302131535.f1rVCTDG-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
>> drivers/usb/gadget/udc/udc-xilinx.c:502:37: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem * @@ got unsigned int [usertype] *[assigned] eprambase @@
drivers/usb/gadget/udc/udc-xilinx.c:502:37: sparse: expected void volatile [noderef] __iomem *
drivers/usb/gadget/udc/udc-xilinx.c:502:37: sparse: got unsigned int [usertype] *[assigned] eprambase
>> drivers/usb/gadget/udc/udc-xilinx.c:506:37: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem * @@ got unsigned char [usertype] *bufferptr @@
drivers/usb/gadget/udc/udc-xilinx.c:506:37: sparse: expected void volatile [noderef] __iomem *
drivers/usb/gadget/udc/udc-xilinx.c:506:37: sparse: got unsigned char [usertype] *bufferptr
drivers/usb/gadget/udc/udc-xilinx.c:520:37: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem * @@ got unsigned int [usertype] *[assigned] eprambase @@
drivers/usb/gadget/udc/udc-xilinx.c:520:37: sparse: expected void volatile [noderef] __iomem *
drivers/usb/gadget/udc/udc-xilinx.c:520:37: sparse: got unsigned int [usertype] *[assigned] eprambase
drivers/usb/gadget/udc/udc-xilinx.c:524:37: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem * @@ got unsigned char [usertype] *bufferptr @@
drivers/usb/gadget/udc/udc-xilinx.c:524:37: sparse: expected void volatile [noderef] __iomem *
drivers/usb/gadget/udc/udc-xilinx.c:524:37: sparse: got unsigned char [usertype] *bufferptr
>> drivers/usb/gadget/udc/udc-xilinx.c:1026:29: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem * @@ got unsigned char [usertype] *[assigned] corebuf @@
drivers/usb/gadget/udc/udc-xilinx.c:1026:29: sparse: expected void volatile [noderef] __iomem *
drivers/usb/gadget/udc/udc-xilinx.c:1026:29: sparse: got unsigned char [usertype] *[assigned] corebuf
drivers/usb/gadget/udc/udc-xilinx.c:1617:35: sparse: sparse: restricted __le16 degrades to integer
drivers/usb/gadget/udc/udc-xilinx.c:1623:31: sparse: sparse: restricted __le16 degrades to integer
drivers/usb/gadget/udc/udc-xilinx.c:1638:34: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] @@ got restricted __le16 [usertype] @@
drivers/usb/gadget/udc/udc-xilinx.c:1638:34: sparse: expected unsigned short [usertype]
drivers/usb/gadget/udc/udc-xilinx.c:1638:34: sparse: got restricted __le16 [usertype]
drivers/usb/gadget/udc/udc-xilinx.c:1666:35: sparse: sparse: restricted __le16 degrades to integer
drivers/usb/gadget/udc/udc-xilinx.c:1666:35: sparse: sparse: restricted __le16 degrades to integer
drivers/usb/gadget/udc/udc-xilinx.c:1686:46: sparse: sparse: restricted __le16 degrades to integer
drivers/usb/gadget/udc/udc-xilinx.c:1692:46: sparse: sparse: restricted __le16 degrades to integer
>> drivers/usb/gadget/udc/udc-xilinx.c:1752:22: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem * @@ got struct usb_ctrlrequest * @@
drivers/usb/gadget/udc/udc-xilinx.c:1752:22: sparse: expected void volatile [noderef] __iomem *
drivers/usb/gadget/udc/udc-xilinx.c:1752:22: sparse: got struct usb_ctrlrequest *
drivers/usb/gadget/udc/udc-xilinx.c:1755:29: sparse: sparse: cast from restricted __le16
drivers/usb/gadget/udc/udc-xilinx.c:1756:29: sparse: sparse: cast from restricted __le16
drivers/usb/gadget/udc/udc-xilinx.c:1757:30: sparse: sparse: cast from restricted __le16
>> drivers/usb/gadget/udc/udc-xilinx.c:1839:29: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem * @@ got void *[assigned] buffer @@
drivers/usb/gadget/udc/udc-xilinx.c:1839:29: sparse: expected void volatile [noderef] __iomem *
drivers/usb/gadget/udc/udc-xilinx.c:1839:29: sparse: got void *[assigned] buffer
drivers/usb/gadget/udc/udc-xilinx.c:1869:34: sparse: sparse: restricted __le16 degrades to integer
drivers/usb/gadget/udc/udc-xilinx.c:1880:49: sparse: sparse: incorrect type in argument 3 (different base types) @@ expected unsigned int [usertype] @@ got restricted __le16 [usertype] wValue @@
drivers/usb/gadget/udc/udc-xilinx.c:1880:49: sparse: expected unsigned int [usertype]
drivers/usb/gadget/udc/udc-xilinx.c:1880:49: sparse: got restricted __le16 [usertype] wValue
drivers/usb/gadget/udc/udc-xilinx.c:1885:47: sparse: sparse: restricted __le16 degrades to integer
>> drivers/usb/gadget/udc/udc-xilinx.c:1915:37: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem * @@ got unsigned char [usertype] *[assigned] ep0rambase @@
drivers/usb/gadget/udc/udc-xilinx.c:1915:37: sparse: expected void volatile [noderef] __iomem *
drivers/usb/gadget/udc/udc-xilinx.c:1915:37: sparse: got unsigned char [usertype] *[assigned] ep0rambase
vim +502 drivers/usb/gadget/udc/udc-xilinx.c
468
469 /**
470 * xudc_eptxrx - Transmits or receives data to or from an endpoint.
471 * @ep: pointer to the usb endpoint configuration structure.
472 * @req: pointer to the usb request structure.
473 * @bufferptr: pointer to buffer containing the data to be sent.
474 * @bufferlen: The number of data bytes to be sent.
475 *
476 * Return: 0 on success, -EAGAIN if no buffer is free.
477 *
478 * This function copies the transmit/receive data to/from the end point buffer
479 * and enables the buffer for transmission/reception.
480 */
481 static int xudc_eptxrx(struct xusb_ep *ep, struct xusb_req *req,
482 u8 *bufferptr, u32 bufferlen)
483 {
484 u32 *eprambase;
485 u32 bytestosend;
486 int rc = 0;
487 struct xusb_udc *udc = ep->udc;
488
489 bytestosend = bufferlen;
490 if (udc->dma_enabled) {
491 if (ep->is_in)
492 rc = xudc_dma_send(ep, req, bufferptr, bufferlen);
493 else
494 rc = xudc_dma_receive(ep, req, bufferptr, bufferlen);
495 return rc;
496 }
497 /* Put the transmit buffer into the correct ping-pong buffer.*/
498 if (!ep->curbufnum && !ep->buffer0ready) {
499 /* Get the Buffer address and copy the transmit data.*/
500 eprambase = (u32 __force *)(udc->addr + ep->rambase);
501 if (ep->is_in) {
> 502 memcpy_toio(eprambase, bufferptr, bytestosend);
503 udc->write_fn(udc->addr, ep->offset +
504 XUSB_EP_BUF0COUNT_OFFSET, bufferlen);
505 } else {
> 506 memcpy_toio(bufferptr, eprambase, bytestosend);
507 }
508 /*
509 * Enable the buffer for transmission.
510 */
511 udc->write_fn(udc->addr, XUSB_BUFFREADY_OFFSET,
512 1 << ep->epnumber);
513 ep->buffer0ready = 1;
514 ep->curbufnum = 1;
515 } else if (ep->curbufnum && !ep->buffer1ready) {
516 /* Get the Buffer address and copy the transmit data.*/
517 eprambase = (u32 __force *)(udc->addr + ep->rambase +
518 ep->ep_usb.maxpacket);
519 if (ep->is_in) {
520 memcpy_toio(eprambase, bufferptr, bytestosend);
521 udc->write_fn(udc->addr, ep->offset +
522 XUSB_EP_BUF1COUNT_OFFSET, bufferlen);
523 } else {
524 memcpy_toio(bufferptr, eprambase, bytestosend);
525 }
526 /*
527 * Enable the buffer for transmission.
528 */
529 udc->write_fn(udc->addr, XUSB_BUFFREADY_OFFSET,
530 1 << (ep->epnumber + XUSB_STATUS_EP_BUFF2_SHIFT));
531 ep->buffer1ready = 1;
532 ep->curbufnum = 0;
533 } else {
534 /* None of the ping-pong buffers are ready currently */
535 return -EAGAIN;
536 }
537 return rc;
538 }
539
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests
^ permalink raw reply [flat|nested] 4+ messages in thread
* [pinchartl-media:muxed/2022.2/base 670/740] drivers/usb/gadget/udc/udc-xilinx.c:502:37: sparse: sparse: incorrect type in argument 1 (different address spaces)
@ 2023-12-28 19:17 kernel test robot
0 siblings, 0 replies; 4+ messages in thread
From: kernel test robot @ 2023-12-28 19:17 UTC (permalink / raw)
To: Piyush Mehta; +Cc: oe-kbuild-all, Michal Simek
Hi Piyush,
FYI, the error/warning was bisected to this commit, please ignore it if it's irrelevant.
tree: git://linuxtv.org/pinchartl/media.git muxed/2022.2/base
head: e26621179c3b1834a1bb17e9a38e47238ac63bf5
commit: 59acbc300f7f442215a37478ac611aca8092eee3 [670/740] usb: gadget: udc-xilinx: fix compilation error
config: openrisc-randconfig-r123-20231225 (https://download.01.org/0day-ci/archive/20231229/202312290344.OuvJ3Gcz-lkp@intel.com/config)
compiler: or1k-linux-gcc (GCC) 13.2.0
reproduce: (https://download.01.org/0day-ci/archive/20231229/202312290344.OuvJ3Gcz-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202312290344.OuvJ3Gcz-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
>> drivers/usb/gadget/udc/udc-xilinx.c:502:37: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got unsigned int [usertype] *[assigned] eprambase @@
drivers/usb/gadget/udc/udc-xilinx.c:502:37: sparse: expected void volatile [noderef] __iomem *addr
drivers/usb/gadget/udc/udc-xilinx.c:502:37: sparse: got unsigned int [usertype] *[assigned] eprambase
>> drivers/usb/gadget/udc/udc-xilinx.c:506:37: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got unsigned char [usertype] *bufferptr @@
drivers/usb/gadget/udc/udc-xilinx.c:506:37: sparse: expected void volatile [noderef] __iomem *addr
drivers/usb/gadget/udc/udc-xilinx.c:506:37: sparse: got unsigned char [usertype] *bufferptr
drivers/usb/gadget/udc/udc-xilinx.c:520:37: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got unsigned int [usertype] *[assigned] eprambase @@
drivers/usb/gadget/udc/udc-xilinx.c:520:37: sparse: expected void volatile [noderef] __iomem *addr
drivers/usb/gadget/udc/udc-xilinx.c:520:37: sparse: got unsigned int [usertype] *[assigned] eprambase
drivers/usb/gadget/udc/udc-xilinx.c:524:37: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got unsigned char [usertype] *bufferptr @@
drivers/usb/gadget/udc/udc-xilinx.c:524:37: sparse: expected void volatile [noderef] __iomem *addr
drivers/usb/gadget/udc/udc-xilinx.c:524:37: sparse: got unsigned char [usertype] *bufferptr
>> drivers/usb/gadget/udc/udc-xilinx.c:1026:29: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got unsigned char [usertype] *[assigned] corebuf @@
drivers/usb/gadget/udc/udc-xilinx.c:1026:29: sparse: expected void volatile [noderef] __iomem *addr
drivers/usb/gadget/udc/udc-xilinx.c:1026:29: sparse: got unsigned char [usertype] *[assigned] corebuf
drivers/usb/gadget/udc/udc-xilinx.c:1617:35: sparse: sparse: restricted __le16 degrades to integer
drivers/usb/gadget/udc/udc-xilinx.c:1623:31: sparse: sparse: restricted __le16 degrades to integer
drivers/usb/gadget/udc/udc-xilinx.c:1638:34: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] @@ got restricted __le16 [usertype] @@
drivers/usb/gadget/udc/udc-xilinx.c:1638:34: sparse: expected unsigned short [usertype]
drivers/usb/gadget/udc/udc-xilinx.c:1638:34: sparse: got restricted __le16 [usertype]
drivers/usb/gadget/udc/udc-xilinx.c:1666:35: sparse: sparse: restricted __le16 degrades to integer
drivers/usb/gadget/udc/udc-xilinx.c:1666:35: sparse: sparse: restricted __le16 degrades to integer
drivers/usb/gadget/udc/udc-xilinx.c:1686:46: sparse: sparse: restricted __le16 degrades to integer
drivers/usb/gadget/udc/udc-xilinx.c:1692:46: sparse: sparse: restricted __le16 degrades to integer
>> drivers/usb/gadget/udc/udc-xilinx.c:1752:22: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got struct usb_ctrlrequest * @@
drivers/usb/gadget/udc/udc-xilinx.c:1752:22: sparse: expected void volatile [noderef] __iomem *addr
drivers/usb/gadget/udc/udc-xilinx.c:1752:22: sparse: got struct usb_ctrlrequest *
drivers/usb/gadget/udc/udc-xilinx.c:1755:29: sparse: sparse: cast from restricted __le16
drivers/usb/gadget/udc/udc-xilinx.c:1755:29: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned short [usertype] val @@ got restricted __le16 [addressable] [usertype] wValue @@
drivers/usb/gadget/udc/udc-xilinx.c:1755:29: sparse: expected unsigned short [usertype] val
drivers/usb/gadget/udc/udc-xilinx.c:1755:29: sparse: got restricted __le16 [addressable] [usertype] wValue
drivers/usb/gadget/udc/udc-xilinx.c:1755:29: sparse: sparse: cast from restricted __le16
drivers/usb/gadget/udc/udc-xilinx.c:1755:29: sparse: sparse: cast from restricted __le16
drivers/usb/gadget/udc/udc-xilinx.c:1756:29: sparse: sparse: cast from restricted __le16
drivers/usb/gadget/udc/udc-xilinx.c:1756:29: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned short [usertype] val @@ got restricted __le16 [addressable] [usertype] wIndex @@
drivers/usb/gadget/udc/udc-xilinx.c:1756:29: sparse: expected unsigned short [usertype] val
drivers/usb/gadget/udc/udc-xilinx.c:1756:29: sparse: got restricted __le16 [addressable] [usertype] wIndex
drivers/usb/gadget/udc/udc-xilinx.c:1756:29: sparse: sparse: cast from restricted __le16
drivers/usb/gadget/udc/udc-xilinx.c:1756:29: sparse: sparse: cast from restricted __le16
drivers/usb/gadget/udc/udc-xilinx.c:1757:30: sparse: sparse: cast from restricted __le16
drivers/usb/gadget/udc/udc-xilinx.c:1757:30: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned short [usertype] val @@ got restricted __le16 [addressable] [usertype] wLength @@
drivers/usb/gadget/udc/udc-xilinx.c:1757:30: sparse: expected unsigned short [usertype] val
drivers/usb/gadget/udc/udc-xilinx.c:1757:30: sparse: got restricted __le16 [addressable] [usertype] wLength
drivers/usb/gadget/udc/udc-xilinx.c:1757:30: sparse: sparse: cast from restricted __le16
drivers/usb/gadget/udc/udc-xilinx.c:1757:30: sparse: sparse: cast from restricted __le16
>> drivers/usb/gadget/udc/udc-xilinx.c:1839:29: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void *[assigned] buffer @@
drivers/usb/gadget/udc/udc-xilinx.c:1839:29: sparse: expected void volatile [noderef] __iomem *addr
drivers/usb/gadget/udc/udc-xilinx.c:1839:29: sparse: got void *[assigned] buffer
drivers/usb/gadget/udc/udc-xilinx.c:1869:34: sparse: sparse: restricted __le16 degrades to integer
drivers/usb/gadget/udc/udc-xilinx.c:1880:49: sparse: sparse: incorrect type in argument 3 (different base types) @@ expected unsigned int [usertype] @@ got restricted __le16 [usertype] wValue @@
drivers/usb/gadget/udc/udc-xilinx.c:1880:49: sparse: expected unsigned int [usertype]
drivers/usb/gadget/udc/udc-xilinx.c:1880:49: sparse: got restricted __le16 [usertype] wValue
drivers/usb/gadget/udc/udc-xilinx.c:1885:47: sparse: sparse: restricted __le16 degrades to integer
>> drivers/usb/gadget/udc/udc-xilinx.c:1915:37: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got unsigned char [usertype] *[assigned] ep0rambase @@
drivers/usb/gadget/udc/udc-xilinx.c:1915:37: sparse: expected void volatile [noderef] __iomem *addr
drivers/usb/gadget/udc/udc-xilinx.c:1915:37: sparse: got unsigned char [usertype] *[assigned] ep0rambase
vim +502 drivers/usb/gadget/udc/udc-xilinx.c
468
469 /**
470 * xudc_eptxrx - Transmits or receives data to or from an endpoint.
471 * @ep: pointer to the usb endpoint configuration structure.
472 * @req: pointer to the usb request structure.
473 * @bufferptr: pointer to buffer containing the data to be sent.
474 * @bufferlen: The number of data bytes to be sent.
475 *
476 * Return: 0 on success, -EAGAIN if no buffer is free.
477 *
478 * This function copies the transmit/receive data to/from the end point buffer
479 * and enables the buffer for transmission/reception.
480 */
481 static int xudc_eptxrx(struct xusb_ep *ep, struct xusb_req *req,
482 u8 *bufferptr, u32 bufferlen)
483 {
484 u32 *eprambase;
485 u32 bytestosend;
486 int rc = 0;
487 struct xusb_udc *udc = ep->udc;
488
489 bytestosend = bufferlen;
490 if (udc->dma_enabled) {
491 if (ep->is_in)
492 rc = xudc_dma_send(ep, req, bufferptr, bufferlen);
493 else
494 rc = xudc_dma_receive(ep, req, bufferptr, bufferlen);
495 return rc;
496 }
497 /* Put the transmit buffer into the correct ping-pong buffer.*/
498 if (!ep->curbufnum && !ep->buffer0ready) {
499 /* Get the Buffer address and copy the transmit data.*/
500 eprambase = (u32 __force *)(udc->addr + ep->rambase);
501 if (ep->is_in) {
> 502 memcpy_toio(eprambase, bufferptr, bytestosend);
503 udc->write_fn(udc->addr, ep->offset +
504 XUSB_EP_BUF0COUNT_OFFSET, bufferlen);
505 } else {
> 506 memcpy_toio(bufferptr, eprambase, bytestosend);
507 }
508 /*
509 * Enable the buffer for transmission.
510 */
511 udc->write_fn(udc->addr, XUSB_BUFFREADY_OFFSET,
512 1 << ep->epnumber);
513 ep->buffer0ready = 1;
514 ep->curbufnum = 1;
515 } else if (ep->curbufnum && !ep->buffer1ready) {
516 /* Get the Buffer address and copy the transmit data.*/
517 eprambase = (u32 __force *)(udc->addr + ep->rambase +
518 ep->ep_usb.maxpacket);
519 if (ep->is_in) {
520 memcpy_toio(eprambase, bufferptr, bytestosend);
521 udc->write_fn(udc->addr, ep->offset +
522 XUSB_EP_BUF1COUNT_OFFSET, bufferlen);
523 } else {
524 memcpy_toio(bufferptr, eprambase, bytestosend);
525 }
526 /*
527 * Enable the buffer for transmission.
528 */
529 udc->write_fn(udc->addr, XUSB_BUFFREADY_OFFSET,
530 1 << (ep->epnumber + XUSB_STATUS_EP_BUFF2_SHIFT));
531 ep->buffer1ready = 1;
532 ep->curbufnum = 0;
533 } else {
534 /* None of the ping-pong buffers are ready currently */
535 return -EAGAIN;
536 }
537 return rc;
538 }
539
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 4+ messages in thread
* [pinchartl-media:muxed/2022.2/base 670/740] drivers/usb/gadget/udc/udc-xilinx.c:502:37: sparse: sparse: incorrect type in argument 1 (different address spaces)
@ 2023-12-25 22:29 kernel test robot
0 siblings, 0 replies; 4+ messages in thread
From: kernel test robot @ 2023-12-25 22:29 UTC (permalink / raw)
To: Piyush Mehta; +Cc: oe-kbuild-all, Michal Simek
Hi Piyush,
FYI, the error/warning was bisected to this commit, please ignore it if it's irrelevant.
tree: git://linuxtv.org/pinchartl/media.git muxed/2022.2/base
head: e26621179c3b1834a1bb17e9a38e47238ac63bf5
commit: 59acbc300f7f442215a37478ac611aca8092eee3 [670/740] usb: gadget: udc-xilinx: fix compilation error
config: powerpc64-randconfig-r133-20231225 (https://download.01.org/0day-ci/archive/20231226/202312260649.ewVNKJ7Y-lkp@intel.com/config)
compiler: powerpc64-linux-gcc (GCC) 13.2.0
reproduce: (https://download.01.org/0day-ci/archive/20231226/202312260649.ewVNKJ7Y-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202312260649.ewVNKJ7Y-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
>> drivers/usb/gadget/udc/udc-xilinx.c:502:37: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *d @@ got unsigned int [usertype] *[assigned] eprambase @@
drivers/usb/gadget/udc/udc-xilinx.c:502:37: sparse: expected void volatile [noderef] __iomem *d
drivers/usb/gadget/udc/udc-xilinx.c:502:37: sparse: got unsigned int [usertype] *[assigned] eprambase
>> drivers/usb/gadget/udc/udc-xilinx.c:506:37: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *d @@ got unsigned char [usertype] *bufferptr @@
drivers/usb/gadget/udc/udc-xilinx.c:506:37: sparse: expected void volatile [noderef] __iomem *d
drivers/usb/gadget/udc/udc-xilinx.c:506:37: sparse: got unsigned char [usertype] *bufferptr
drivers/usb/gadget/udc/udc-xilinx.c:520:37: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *d @@ got unsigned int [usertype] *[assigned] eprambase @@
drivers/usb/gadget/udc/udc-xilinx.c:520:37: sparse: expected void volatile [noderef] __iomem *d
drivers/usb/gadget/udc/udc-xilinx.c:520:37: sparse: got unsigned int [usertype] *[assigned] eprambase
drivers/usb/gadget/udc/udc-xilinx.c:524:37: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *d @@ got unsigned char [usertype] *bufferptr @@
drivers/usb/gadget/udc/udc-xilinx.c:524:37: sparse: expected void volatile [noderef] __iomem *d
drivers/usb/gadget/udc/udc-xilinx.c:524:37: sparse: got unsigned char [usertype] *bufferptr
>> drivers/usb/gadget/udc/udc-xilinx.c:1026:29: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *d @@ got unsigned char [usertype] *[assigned] corebuf @@
drivers/usb/gadget/udc/udc-xilinx.c:1026:29: sparse: expected void volatile [noderef] __iomem *d
drivers/usb/gadget/udc/udc-xilinx.c:1026:29: sparse: got unsigned char [usertype] *[assigned] corebuf
drivers/usb/gadget/udc/udc-xilinx.c:1617:35: sparse: sparse: restricted __le16 degrades to integer
drivers/usb/gadget/udc/udc-xilinx.c:1623:31: sparse: sparse: restricted __le16 degrades to integer
drivers/usb/gadget/udc/udc-xilinx.c:1638:34: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] @@ got restricted __le16 [usertype] @@
drivers/usb/gadget/udc/udc-xilinx.c:1638:34: sparse: expected unsigned short [usertype]
drivers/usb/gadget/udc/udc-xilinx.c:1638:34: sparse: got restricted __le16 [usertype]
drivers/usb/gadget/udc/udc-xilinx.c:1666:35: sparse: sparse: restricted __le16 degrades to integer
drivers/usb/gadget/udc/udc-xilinx.c:1666:35: sparse: sparse: restricted __le16 degrades to integer
drivers/usb/gadget/udc/udc-xilinx.c:1686:46: sparse: sparse: restricted __le16 degrades to integer
drivers/usb/gadget/udc/udc-xilinx.c:1692:46: sparse: sparse: restricted __le16 degrades to integer
>> drivers/usb/gadget/udc/udc-xilinx.c:1752:22: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *d @@ got struct usb_ctrlrequest * @@
drivers/usb/gadget/udc/udc-xilinx.c:1752:22: sparse: expected void volatile [noderef] __iomem *d
drivers/usb/gadget/udc/udc-xilinx.c:1752:22: sparse: got struct usb_ctrlrequest *
drivers/usb/gadget/udc/udc-xilinx.c:1755:29: sparse: sparse: cast from restricted __le16
drivers/usb/gadget/udc/udc-xilinx.c:1756:29: sparse: sparse: cast from restricted __le16
drivers/usb/gadget/udc/udc-xilinx.c:1757:30: sparse: sparse: cast from restricted __le16
>> drivers/usb/gadget/udc/udc-xilinx.c:1839:29: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *d @@ got void *[assigned] buffer @@
drivers/usb/gadget/udc/udc-xilinx.c:1839:29: sparse: expected void volatile [noderef] __iomem *d
drivers/usb/gadget/udc/udc-xilinx.c:1839:29: sparse: got void *[assigned] buffer
drivers/usb/gadget/udc/udc-xilinx.c:1869:34: sparse: sparse: restricted __le16 degrades to integer
drivers/usb/gadget/udc/udc-xilinx.c:1880:49: sparse: sparse: incorrect type in argument 3 (different base types) @@ expected unsigned int [usertype] @@ got restricted __le16 [usertype] wValue @@
drivers/usb/gadget/udc/udc-xilinx.c:1880:49: sparse: expected unsigned int [usertype]
drivers/usb/gadget/udc/udc-xilinx.c:1880:49: sparse: got restricted __le16 [usertype] wValue
drivers/usb/gadget/udc/udc-xilinx.c:1885:47: sparse: sparse: restricted __le16 degrades to integer
>> drivers/usb/gadget/udc/udc-xilinx.c:1915:37: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *d @@ got unsigned char [usertype] *[assigned] ep0rambase @@
drivers/usb/gadget/udc/udc-xilinx.c:1915:37: sparse: expected void volatile [noderef] __iomem *d
drivers/usb/gadget/udc/udc-xilinx.c:1915:37: sparse: got unsigned char [usertype] *[assigned] ep0rambase
drivers/usb/gadget/udc/udc-xilinx.c: note: in included file (through include/linux/gfp.h, include/linux/xarray.h, include/linux/radix-tree.h, ...):
include/linux/mmzone.h:1479:40: sparse: sparse: self-comparison always evaluates to false
include/linux/mmzone.h:1479:40: sparse: sparse: self-comparison always evaluates to false
include/linux/mmzone.h:1479:40: sparse: sparse: self-comparison always evaluates to false
include/linux/mmzone.h:1479:40: sparse: sparse: self-comparison always evaluates to false
vim +502 drivers/usb/gadget/udc/udc-xilinx.c
468
469 /**
470 * xudc_eptxrx - Transmits or receives data to or from an endpoint.
471 * @ep: pointer to the usb endpoint configuration structure.
472 * @req: pointer to the usb request structure.
473 * @bufferptr: pointer to buffer containing the data to be sent.
474 * @bufferlen: The number of data bytes to be sent.
475 *
476 * Return: 0 on success, -EAGAIN if no buffer is free.
477 *
478 * This function copies the transmit/receive data to/from the end point buffer
479 * and enables the buffer for transmission/reception.
480 */
481 static int xudc_eptxrx(struct xusb_ep *ep, struct xusb_req *req,
482 u8 *bufferptr, u32 bufferlen)
483 {
484 u32 *eprambase;
485 u32 bytestosend;
486 int rc = 0;
487 struct xusb_udc *udc = ep->udc;
488
489 bytestosend = bufferlen;
490 if (udc->dma_enabled) {
491 if (ep->is_in)
492 rc = xudc_dma_send(ep, req, bufferptr, bufferlen);
493 else
494 rc = xudc_dma_receive(ep, req, bufferptr, bufferlen);
495 return rc;
496 }
497 /* Put the transmit buffer into the correct ping-pong buffer.*/
498 if (!ep->curbufnum && !ep->buffer0ready) {
499 /* Get the Buffer address and copy the transmit data.*/
500 eprambase = (u32 __force *)(udc->addr + ep->rambase);
501 if (ep->is_in) {
> 502 memcpy_toio(eprambase, bufferptr, bytestosend);
503 udc->write_fn(udc->addr, ep->offset +
504 XUSB_EP_BUF0COUNT_OFFSET, bufferlen);
505 } else {
> 506 memcpy_toio(bufferptr, eprambase, bytestosend);
507 }
508 /*
509 * Enable the buffer for transmission.
510 */
511 udc->write_fn(udc->addr, XUSB_BUFFREADY_OFFSET,
512 1 << ep->epnumber);
513 ep->buffer0ready = 1;
514 ep->curbufnum = 1;
515 } else if (ep->curbufnum && !ep->buffer1ready) {
516 /* Get the Buffer address and copy the transmit data.*/
517 eprambase = (u32 __force *)(udc->addr + ep->rambase +
518 ep->ep_usb.maxpacket);
519 if (ep->is_in) {
520 memcpy_toio(eprambase, bufferptr, bytestosend);
521 udc->write_fn(udc->addr, ep->offset +
522 XUSB_EP_BUF1COUNT_OFFSET, bufferlen);
523 } else {
524 memcpy_toio(bufferptr, eprambase, bytestosend);
525 }
526 /*
527 * Enable the buffer for transmission.
528 */
529 udc->write_fn(udc->addr, XUSB_BUFFREADY_OFFSET,
530 1 << (ep->epnumber + XUSB_STATUS_EP_BUFF2_SHIFT));
531 ep->buffer1ready = 1;
532 ep->curbufnum = 0;
533 } else {
534 /* None of the ping-pong buffers are ready currently */
535 return -EAGAIN;
536 }
537 return rc;
538 }
539
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 4+ messages in thread
* [pinchartl-media:muxed/2022.2/base 670/740] drivers/usb/gadget/udc/udc-xilinx.c:502:37: sparse: sparse: incorrect type in argument 1 (different address spaces)
@ 2023-01-20 12:47 kernel test robot
0 siblings, 0 replies; 4+ messages in thread
From: kernel test robot @ 2023-01-20 12:47 UTC (permalink / raw)
To: Piyush Mehta; +Cc: oe-kbuild-all, Michal Simek
Hi Piyush,
FYI, the error/warning was bisected to this commit, please ignore it if it's irrelevant.
tree: git://linuxtv.org/pinchartl/media.git muxed/2022.2/base
head: e26621179c3b1834a1bb17e9a38e47238ac63bf5
commit: 59acbc300f7f442215a37478ac611aca8092eee3 [670/740] usb: gadget: udc-xilinx: fix compilation error
config: i386-randconfig-s001 (https://download.01.org/0day-ci/archive/20230120/202301202055.8ju3nTtq-lkp@intel.com/config)
compiler: gcc-11 (Debian 11.3.0-8) 11.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.4-39-gce1a6720-dirty
git remote add pinchartl-media git://linuxtv.org/pinchartl/media.git
git fetch --no-tags pinchartl-media muxed/2022.2/base
git checkout 59acbc300f7f442215a37478ac611aca8092eee3
# save the config file
mkdir build_dir && cp config build_dir/.config
make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=i386 olddefconfig
make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=i386 SHELL=/bin/bash drivers/usb/gadget/udc/
If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@intel.com>
sparse warnings: (new ones prefixed by >>)
>> drivers/usb/gadget/udc/udc-xilinx.c:502:37: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem * @@ got unsigned int [usertype] *[assigned] eprambase @@
drivers/usb/gadget/udc/udc-xilinx.c:502:37: sparse: expected void volatile [noderef] __iomem *
drivers/usb/gadget/udc/udc-xilinx.c:502:37: sparse: got unsigned int [usertype] *[assigned] eprambase
>> drivers/usb/gadget/udc/udc-xilinx.c:506:37: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem * @@ got unsigned char [usertype] *bufferptr @@
drivers/usb/gadget/udc/udc-xilinx.c:506:37: sparse: expected void volatile [noderef] __iomem *
drivers/usb/gadget/udc/udc-xilinx.c:506:37: sparse: got unsigned char [usertype] *bufferptr
drivers/usb/gadget/udc/udc-xilinx.c:520:37: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem * @@ got unsigned int [usertype] *[assigned] eprambase @@
drivers/usb/gadget/udc/udc-xilinx.c:520:37: sparse: expected void volatile [noderef] __iomem *
drivers/usb/gadget/udc/udc-xilinx.c:520:37: sparse: got unsigned int [usertype] *[assigned] eprambase
drivers/usb/gadget/udc/udc-xilinx.c:524:37: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem * @@ got unsigned char [usertype] *bufferptr @@
drivers/usb/gadget/udc/udc-xilinx.c:524:37: sparse: expected void volatile [noderef] __iomem *
drivers/usb/gadget/udc/udc-xilinx.c:524:37: sparse: got unsigned char [usertype] *bufferptr
>> drivers/usb/gadget/udc/udc-xilinx.c:1026:29: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem * @@ got unsigned char [usertype] *[assigned] corebuf @@
drivers/usb/gadget/udc/udc-xilinx.c:1026:29: sparse: expected void volatile [noderef] __iomem *
drivers/usb/gadget/udc/udc-xilinx.c:1026:29: sparse: got unsigned char [usertype] *[assigned] corebuf
drivers/usb/gadget/udc/udc-xilinx.c:1617:35: sparse: sparse: restricted __le16 degrades to integer
drivers/usb/gadget/udc/udc-xilinx.c:1623:31: sparse: sparse: restricted __le16 degrades to integer
drivers/usb/gadget/udc/udc-xilinx.c:1638:34: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] @@ got restricted __le16 [usertype] @@
drivers/usb/gadget/udc/udc-xilinx.c:1638:34: sparse: expected unsigned short [usertype]
drivers/usb/gadget/udc/udc-xilinx.c:1638:34: sparse: got restricted __le16 [usertype]
drivers/usb/gadget/udc/udc-xilinx.c:1666:35: sparse: sparse: restricted __le16 degrades to integer
drivers/usb/gadget/udc/udc-xilinx.c:1666:35: sparse: sparse: restricted __le16 degrades to integer
drivers/usb/gadget/udc/udc-xilinx.c:1686:46: sparse: sparse: restricted __le16 degrades to integer
drivers/usb/gadget/udc/udc-xilinx.c:1692:46: sparse: sparse: restricted __le16 degrades to integer
>> drivers/usb/gadget/udc/udc-xilinx.c:1752:22: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem * @@ got struct usb_ctrlrequest * @@
drivers/usb/gadget/udc/udc-xilinx.c:1752:22: sparse: expected void volatile [noderef] __iomem *
drivers/usb/gadget/udc/udc-xilinx.c:1752:22: sparse: got struct usb_ctrlrequest *
drivers/usb/gadget/udc/udc-xilinx.c:1755:29: sparse: sparse: cast from restricted __le16
drivers/usb/gadget/udc/udc-xilinx.c:1756:29: sparse: sparse: cast from restricted __le16
drivers/usb/gadget/udc/udc-xilinx.c:1757:30: sparse: sparse: cast from restricted __le16
>> drivers/usb/gadget/udc/udc-xilinx.c:1839:29: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem * @@ got void *[assigned] buffer @@
drivers/usb/gadget/udc/udc-xilinx.c:1839:29: sparse: expected void volatile [noderef] __iomem *
drivers/usb/gadget/udc/udc-xilinx.c:1839:29: sparse: got void *[assigned] buffer
drivers/usb/gadget/udc/udc-xilinx.c:1869:34: sparse: sparse: restricted __le16 degrades to integer
drivers/usb/gadget/udc/udc-xilinx.c:1880:49: sparse: sparse: incorrect type in argument 3 (different base types) @@ expected unsigned int [usertype] @@ got restricted __le16 [usertype] wValue @@
drivers/usb/gadget/udc/udc-xilinx.c:1880:49: sparse: expected unsigned int [usertype]
drivers/usb/gadget/udc/udc-xilinx.c:1880:49: sparse: got restricted __le16 [usertype] wValue
drivers/usb/gadget/udc/udc-xilinx.c:1885:47: sparse: sparse: restricted __le16 degrades to integer
>> drivers/usb/gadget/udc/udc-xilinx.c:1915:37: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem * @@ got unsigned char [usertype] *[assigned] ep0rambase @@
drivers/usb/gadget/udc/udc-xilinx.c:1915:37: sparse: expected void volatile [noderef] __iomem *
drivers/usb/gadget/udc/udc-xilinx.c:1915:37: sparse: got unsigned char [usertype] *[assigned] ep0rambase
vim +502 drivers/usb/gadget/udc/udc-xilinx.c
468
469 /**
470 * xudc_eptxrx - Transmits or receives data to or from an endpoint.
471 * @ep: pointer to the usb endpoint configuration structure.
472 * @req: pointer to the usb request structure.
473 * @bufferptr: pointer to buffer containing the data to be sent.
474 * @bufferlen: The number of data bytes to be sent.
475 *
476 * Return: 0 on success, -EAGAIN if no buffer is free.
477 *
478 * This function copies the transmit/receive data to/from the end point buffer
479 * and enables the buffer for transmission/reception.
480 */
481 static int xudc_eptxrx(struct xusb_ep *ep, struct xusb_req *req,
482 u8 *bufferptr, u32 bufferlen)
483 {
484 u32 *eprambase;
485 u32 bytestosend;
486 int rc = 0;
487 struct xusb_udc *udc = ep->udc;
488
489 bytestosend = bufferlen;
490 if (udc->dma_enabled) {
491 if (ep->is_in)
492 rc = xudc_dma_send(ep, req, bufferptr, bufferlen);
493 else
494 rc = xudc_dma_receive(ep, req, bufferptr, bufferlen);
495 return rc;
496 }
497 /* Put the transmit buffer into the correct ping-pong buffer.*/
498 if (!ep->curbufnum && !ep->buffer0ready) {
499 /* Get the Buffer address and copy the transmit data.*/
500 eprambase = (u32 __force *)(udc->addr + ep->rambase);
501 if (ep->is_in) {
> 502 memcpy_toio(eprambase, bufferptr, bytestosend);
503 udc->write_fn(udc->addr, ep->offset +
504 XUSB_EP_BUF0COUNT_OFFSET, bufferlen);
505 } else {
> 506 memcpy_toio(bufferptr, eprambase, bytestosend);
507 }
508 /*
509 * Enable the buffer for transmission.
510 */
511 udc->write_fn(udc->addr, XUSB_BUFFREADY_OFFSET,
512 1 << ep->epnumber);
513 ep->buffer0ready = 1;
514 ep->curbufnum = 1;
515 } else if (ep->curbufnum && !ep->buffer1ready) {
516 /* Get the Buffer address and copy the transmit data.*/
517 eprambase = (u32 __force *)(udc->addr + ep->rambase +
518 ep->ep_usb.maxpacket);
519 if (ep->is_in) {
520 memcpy_toio(eprambase, bufferptr, bytestosend);
521 udc->write_fn(udc->addr, ep->offset +
522 XUSB_EP_BUF1COUNT_OFFSET, bufferlen);
523 } else {
524 memcpy_toio(bufferptr, eprambase, bytestosend);
525 }
526 /*
527 * Enable the buffer for transmission.
528 */
529 udc->write_fn(udc->addr, XUSB_BUFFREADY_OFFSET,
530 1 << (ep->epnumber + XUSB_STATUS_EP_BUFF2_SHIFT));
531 ep->buffer1ready = 1;
532 ep->curbufnum = 0;
533 } else {
534 /* None of the ping-pong buffers are ready currently */
535 return -EAGAIN;
536 }
537 return rc;
538 }
539
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2023-12-28 19:17 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-02-13 7:45 [pinchartl-media:muxed/2022.2/base 670/740] drivers/usb/gadget/udc/udc-xilinx.c:502:37: sparse: sparse: incorrect type in argument 1 (different address spaces) kernel test robot
-- strict thread matches above, loose matches on Subject: below --
2023-12-28 19:17 kernel test robot
2023-12-25 22:29 kernel test robot
2023-01-20 12:47 kernel test robot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).