drivers/tty/serial/ucc_uart.c:1001:29: sparse: sparse: incorrect type in assignment (different address spaces)

From: kbuild test robot
Date: Wed May 27 2020 - 19:24:46 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: b0c3ba31be3e45a130e13b278cf3b90f69bda6f6
commit: 461c3ac0dc46ba7fc09628aadf63c81253c4c3de soc: fsl: qe: fix sparse warnings for ucc_slow.c
date: 9 weeks ago
config: arm64-randconfig-s031-20200527 (attached as .config)
compiler: aarch64-linux-gcc (GCC) 9.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.1-240-gf0fe1cd9-dirty
git checkout 461c3ac0dc46ba7fc09628aadf63c81253c4c3de
# save the attached .config to linux build tree
make W=1 C=1 ARCH=arm64 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'

If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp@xxxxxxxxx>


sparse warnings: (new ones prefixed by >>)

drivers/tty/serial/ucc_uart.c:637:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] <asn:2> *addr @@ got restricted __be16 * @@
drivers/tty/serial/ucc_uart.c:637:9: sparse: expected void volatile [noderef] <asn:2> *addr
drivers/tty/serial/ucc_uart.c:637:9: sparse: got restricted __be16 *
drivers/tty/serial/ucc_uart.c:638:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] <asn:2> *addr @@ got restricted __be32 * @@
drivers/tty/serial/ucc_uart.c:638:9: sparse: expected void volatile [noderef] <asn:2> *addr
drivers/tty/serial/ucc_uart.c:638:9: sparse: got restricted __be32 *
drivers/tty/serial/ucc_uart.c:639:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] <asn:2> *addr @@ got restricted __be16 * @@
drivers/tty/serial/ucc_uart.c:639:9: sparse: expected void volatile [noderef] <asn:2> *addr
drivers/tty/serial/ucc_uart.c:639:9: sparse: got restricted __be16 *
drivers/tty/serial/ucc_uart.c:653:46: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct ucc_uart_pram *uccup @@ got struct ucc_uart_pram [noderef] <asn:2> *uccup @@
drivers/tty/serial/ucc_uart.c:653:46: sparse: expected struct ucc_uart_pram *uccup
drivers/tty/serial/ucc_uart.c:653:46: sparse: got struct ucc_uart_pram [noderef] <asn:2> *uccup
drivers/tty/serial/ucc_uart.c:661:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] <asn:2> *addr @@ got unsigned char * @@
drivers/tty/serial/ucc_uart.c:661:9: sparse: expected void volatile [noderef] <asn:2> *addr
drivers/tty/serial/ucc_uart.c:661:9: sparse: got unsigned char *
drivers/tty/serial/ucc_uart.c:662:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] <asn:2> *addr @@ got unsigned char * @@
drivers/tty/serial/ucc_uart.c:662:9: sparse: expected void volatile [noderef] <asn:2> *addr
drivers/tty/serial/ucc_uart.c:662:9: sparse: got unsigned char *
drivers/tty/serial/ucc_uart.c:663:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] <asn:2> *addr @@ got restricted __be16 * @@
drivers/tty/serial/ucc_uart.c:663:9: sparse: expected void volatile [noderef] <asn:2> *addr
drivers/tty/serial/ucc_uart.c:663:9: sparse: got restricted __be16 *
drivers/tty/serial/ucc_uart.c:664:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] <asn:2> *addr @@ got restricted __be16 * @@
drivers/tty/serial/ucc_uart.c:664:9: sparse: expected void volatile [noderef] <asn:2> *addr
drivers/tty/serial/ucc_uart.c:664:9: sparse: got restricted __be16 *
drivers/tty/serial/ucc_uart.c:665:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] <asn:2> *addr @@ got restricted __be16 * @@
drivers/tty/serial/ucc_uart.c:665:9: sparse: expected void volatile [noderef] <asn:2> *addr
drivers/tty/serial/ucc_uart.c:665:9: sparse: got restricted __be16 *
drivers/tty/serial/ucc_uart.c:666:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] <asn:2> *addr @@ got restricted __be16 * @@
drivers/tty/serial/ucc_uart.c:666:9: sparse: expected void volatile [noderef] <asn:2> *addr
drivers/tty/serial/ucc_uart.c:666:9: sparse: got restricted __be16 *
drivers/tty/serial/ucc_uart.c:667:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] <asn:2> *addr @@ got restricted __be16 * @@
drivers/tty/serial/ucc_uart.c:667:9: sparse: expected void volatile [noderef] <asn:2> *addr
drivers/tty/serial/ucc_uart.c:667:9: sparse: got restricted __be16 *
drivers/tty/serial/ucc_uart.c:668:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] <asn:2> *addr @@ got restricted __be16 * @@
drivers/tty/serial/ucc_uart.c:668:9: sparse: expected void volatile [noderef] <asn:2> *addr
drivers/tty/serial/ucc_uart.c:668:9: sparse: got restricted __be16 *
drivers/tty/serial/ucc_uart.c:669:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] <asn:2> *addr @@ got restricted __be16 * @@
drivers/tty/serial/ucc_uart.c:669:9: sparse: expected void volatile [noderef] <asn:2> *addr
drivers/tty/serial/ucc_uart.c:669:9: sparse: got restricted __be16 *
drivers/tty/serial/ucc_uart.c:670:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] <asn:2> *addr @@ got restricted __be16 * @@
drivers/tty/serial/ucc_uart.c:670:9: sparse: expected void volatile [noderef] <asn:2> *addr
drivers/tty/serial/ucc_uart.c:670:9: sparse: got restricted __be16 *
drivers/tty/serial/ucc_uart.c:671:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] <asn:2> *addr @@ got restricted __be16 * @@
drivers/tty/serial/ucc_uart.c:671:9: sparse: expected void volatile [noderef] <asn:2> *addr
drivers/tty/serial/ucc_uart.c:671:9: sparse: got restricted __be16 *
drivers/tty/serial/ucc_uart.c:672:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] <asn:2> *addr @@ got restricted __be16 * @@
drivers/tty/serial/ucc_uart.c:672:9: sparse: expected void volatile [noderef] <asn:2> *addr
drivers/tty/serial/ucc_uart.c:672:9: sparse: got restricted __be16 *
drivers/tty/serial/ucc_uart.c:674:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] <asn:2> *addr @@ got restricted __be16 * @@
drivers/tty/serial/ucc_uart.c:674:17: sparse: expected void volatile [noderef] <asn:2> *addr
drivers/tty/serial/ucc_uart.c:674:17: sparse: got restricted __be16 *
drivers/tty/serial/ucc_uart.c:675:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] <asn:2> *addr @@ got restricted __be16 * @@
drivers/tty/serial/ucc_uart.c:675:9: sparse: expected void volatile [noderef] <asn:2> *addr
drivers/tty/serial/ucc_uart.c:675:9: sparse: got restricted __be16 *
drivers/tty/serial/ucc_uart.c:713:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] <asn:2> *addr @@ got restricted __be16 * @@
drivers/tty/serial/ucc_uart.c:713:17: sparse: expected void volatile [noderef] <asn:2> *addr
drivers/tty/serial/ucc_uart.c:713:17: sparse: got restricted __be16 *
drivers/tty/serial/ucc_uart.c:714:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] <asn:2> *addr @@ got restricted __be16 * @@
drivers/tty/serial/ucc_uart.c:714:17: sparse: expected void volatile [noderef] <asn:2> *addr
drivers/tty/serial/ucc_uart.c:714:17: sparse: got restricted __be16 *
drivers/tty/serial/ucc_uart.c:715:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] <asn:2> *addr @@ got restricted __be32 * @@
drivers/tty/serial/ucc_uart.c:715:17: sparse: expected void volatile [noderef] <asn:2> *addr
drivers/tty/serial/ucc_uart.c:715:17: sparse: got restricted __be32 *
drivers/tty/serial/ucc_uart.c:716:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] <asn:2> *addr @@ got restricted __be32 * @@
drivers/tty/serial/ucc_uart.c:716:17: sparse: expected void volatile [noderef] <asn:2> *addr
drivers/tty/serial/ucc_uart.c:716:17: sparse: got restricted __be32 *
drivers/tty/serial/ucc_uart.c:717:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] <asn:2> *addr @@ got unsigned char * @@
drivers/tty/serial/ucc_uart.c:717:17: sparse: expected void volatile [noderef] <asn:2> *addr
drivers/tty/serial/ucc_uart.c:717:17: sparse: got unsigned char *
drivers/tty/serial/ucc_uart.c:718:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] <asn:2> *addr @@ got unsigned char * @@
drivers/tty/serial/ucc_uart.c:718:17: sparse: expected void volatile [noderef] <asn:2> *addr
drivers/tty/serial/ucc_uart.c:718:17: sparse: got unsigned char *
drivers/tty/serial/ucc_uart.c:719:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] <asn:2> *addr @@ got restricted __be32 * @@
drivers/tty/serial/ucc_uart.c:719:17: sparse: expected void volatile [noderef] <asn:2> *addr
drivers/tty/serial/ucc_uart.c:719:17: sparse: got restricted __be32 *
drivers/tty/serial/ucc_uart.c:720:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] <asn:2> *addr @@ got unsigned char * @@
drivers/tty/serial/ucc_uart.c:720:17: sparse: expected void volatile [noderef] <asn:2> *addr
drivers/tty/serial/ucc_uart.c:720:17: sparse: got unsigned char *
drivers/tty/serial/ucc_uart.c:721:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] <asn:2> *addr @@ got restricted __be32 * @@
drivers/tty/serial/ucc_uart.c:721:17: sparse: expected void volatile [noderef] <asn:2> *addr
drivers/tty/serial/ucc_uart.c:721:17: sparse: got restricted __be32 *
drivers/tty/serial/ucc_uart.c:722:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] <asn:2> *addr @@ got unsigned char * @@
drivers/tty/serial/ucc_uart.c:722:17: sparse: expected void volatile [noderef] <asn:2> *addr
drivers/tty/serial/ucc_uart.c:722:17: sparse: got unsigned char *
drivers/tty/serial/ucc_uart.c:724:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] <asn:2> *addr @@ got unsigned char * @@
drivers/tty/serial/ucc_uart.c:724:17: sparse: expected void volatile [noderef] <asn:2> *addr
drivers/tty/serial/ucc_uart.c:724:17: sparse: got unsigned char *
drivers/tty/serial/ucc_uart.c:726:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] <asn:2> *addr @@ got restricted __be16 * @@
drivers/tty/serial/ucc_uart.c:726:17: sparse: expected void volatile [noderef] <asn:2> *addr
drivers/tty/serial/ucc_uart.c:726:17: sparse: got restricted __be16 *
drivers/tty/serial/ucc_uart.c:727:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] <asn:2> *addr @@ got unsigned char * @@
drivers/tty/serial/ucc_uart.c:727:17: sparse: expected void volatile [noderef] <asn:2> *addr
drivers/tty/serial/ucc_uart.c:727:17: sparse: got unsigned char *
drivers/tty/serial/ucc_uart.c:728:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] <asn:2> *addr @@ got restricted __be16 * @@
drivers/tty/serial/ucc_uart.c:728:17: sparse: expected void volatile [noderef] <asn:2> *addr
drivers/tty/serial/ucc_uart.c:728:17: sparse: got restricted __be16 *
drivers/tty/serial/ucc_uart.c:1000:27: sparse: sparse: cast removes address space '<asn:2>' of expression
drivers/tty/serial/ucc_uart.c:1000:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct ucc_uart_pram [noderef] <asn:2> *uccup @@ got struct ucc_uart_pram * @@
drivers/tty/serial/ucc_uart.c:1000:24: sparse: expected struct ucc_uart_pram [noderef] <asn:2> *uccup
drivers/tty/serial/ucc_uart.c:1000:24: sparse: got struct ucc_uart_pram *
>> drivers/tty/serial/ucc_uart.c:1001:29: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct qe_bd *rx_bd_base @@ got struct qe_bd [noderef] <asn:2> *rx_bd @@
drivers/tty/serial/ucc_uart.c:1001:29: sparse: expected struct qe_bd *rx_bd_base
drivers/tty/serial/ucc_uart.c:1001:29: sparse: got struct qe_bd [noderef] <asn:2> *rx_bd
>> drivers/tty/serial/ucc_uart.c:1002:29: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct qe_bd *tx_bd_base @@ got struct qe_bd [noderef] <asn:2> *tx_bd @@
drivers/tty/serial/ucc_uart.c:1002:29: sparse: expected struct qe_bd *tx_bd_base
drivers/tty/serial/ucc_uart.c:1002:29: sparse: got struct qe_bd [noderef] <asn:2> *tx_bd

vim +1001 drivers/tty/serial/ucc_uart.c

d7584ed2b994a5 drivers/serial/ucc_uart.c Timur Tabi 2008-01-15 976
d7584ed2b994a5 drivers/serial/ucc_uart.c Timur Tabi 2008-01-15 977 /*
d7584ed2b994a5 drivers/serial/ucc_uart.c Timur Tabi 2008-01-15 978 * Allocate any memory and I/O resources required by the port.
d7584ed2b994a5 drivers/serial/ucc_uart.c Timur Tabi 2008-01-15 979 */
d7584ed2b994a5 drivers/serial/ucc_uart.c Timur Tabi 2008-01-15 980 static int qe_uart_request_port(struct uart_port *port)
d7584ed2b994a5 drivers/serial/ucc_uart.c Timur Tabi 2008-01-15 981 {
d7584ed2b994a5 drivers/serial/ucc_uart.c Timur Tabi 2008-01-15 982 int ret;
d7584ed2b994a5 drivers/serial/ucc_uart.c Timur Tabi 2008-01-15 983 struct uart_qe_port *qe_port =
d7584ed2b994a5 drivers/serial/ucc_uart.c Timur Tabi 2008-01-15 984 container_of(port, struct uart_qe_port, port);
d7584ed2b994a5 drivers/serial/ucc_uart.c Timur Tabi 2008-01-15 985 struct ucc_slow_info *us_info = &qe_port->us_info;
d7584ed2b994a5 drivers/serial/ucc_uart.c Timur Tabi 2008-01-15 986 struct ucc_slow_private *uccs;
d7584ed2b994a5 drivers/serial/ucc_uart.c Timur Tabi 2008-01-15 987 unsigned int rx_size, tx_size;
d7584ed2b994a5 drivers/serial/ucc_uart.c Timur Tabi 2008-01-15 988 void *bd_virt;
d7584ed2b994a5 drivers/serial/ucc_uart.c Timur Tabi 2008-01-15 989 dma_addr_t bd_dma_addr = 0;
d7584ed2b994a5 drivers/serial/ucc_uart.c Timur Tabi 2008-01-15 990
d7584ed2b994a5 drivers/serial/ucc_uart.c Timur Tabi 2008-01-15 991 ret = ucc_slow_init(us_info, &uccs);
d7584ed2b994a5 drivers/serial/ucc_uart.c Timur Tabi 2008-01-15 992 if (ret) {
d7584ed2b994a5 drivers/serial/ucc_uart.c Timur Tabi 2008-01-15 993 dev_err(port->dev, "could not initialize UCC%u\n",
d7584ed2b994a5 drivers/serial/ucc_uart.c Timur Tabi 2008-01-15 994 qe_port->ucc_num);
d7584ed2b994a5 drivers/serial/ucc_uart.c Timur Tabi 2008-01-15 995 return ret;
d7584ed2b994a5 drivers/serial/ucc_uart.c Timur Tabi 2008-01-15 996 }
d7584ed2b994a5 drivers/serial/ucc_uart.c Timur Tabi 2008-01-15 997
d7584ed2b994a5 drivers/serial/ucc_uart.c Timur Tabi 2008-01-15 998 qe_port->us_private = uccs;
d7584ed2b994a5 drivers/serial/ucc_uart.c Timur Tabi 2008-01-15 999 qe_port->uccp = uccs->us_regs;
d7584ed2b994a5 drivers/serial/ucc_uart.c Timur Tabi 2008-01-15 1000 qe_port->uccup = (struct ucc_uart_pram *) uccs->us_pram;
d7584ed2b994a5 drivers/serial/ucc_uart.c Timur Tabi 2008-01-15 @1001 qe_port->rx_bd_base = uccs->rx_bd;
d7584ed2b994a5 drivers/serial/ucc_uart.c Timur Tabi 2008-01-15 @1002 qe_port->tx_bd_base = uccs->tx_bd;
d7584ed2b994a5 drivers/serial/ucc_uart.c Timur Tabi 2008-01-15 1003
d7584ed2b994a5 drivers/serial/ucc_uart.c Timur Tabi 2008-01-15 1004 /*
d7584ed2b994a5 drivers/serial/ucc_uart.c Timur Tabi 2008-01-15 1005 * Allocate the transmit and receive data buffers.
d7584ed2b994a5 drivers/serial/ucc_uart.c Timur Tabi 2008-01-15 1006 */
d7584ed2b994a5 drivers/serial/ucc_uart.c Timur Tabi 2008-01-15 1007
d7584ed2b994a5 drivers/serial/ucc_uart.c Timur Tabi 2008-01-15 1008 rx_size = L1_CACHE_ALIGN(qe_port->rx_nrfifos * qe_port->rx_fifosize);
d7584ed2b994a5 drivers/serial/ucc_uart.c Timur Tabi 2008-01-15 1009 tx_size = L1_CACHE_ALIGN(qe_port->tx_nrfifos * qe_port->tx_fifosize);
d7584ed2b994a5 drivers/serial/ucc_uart.c Timur Tabi 2008-01-15 1010
8b05cefca73bfb drivers/serial/ucc_uart.c Becky Bruce 2008-09-12 1011 bd_virt = dma_alloc_coherent(port->dev, rx_size + tx_size, &bd_dma_addr,
d7584ed2b994a5 drivers/serial/ucc_uart.c Timur Tabi 2008-01-15 1012 GFP_KERNEL);
d7584ed2b994a5 drivers/serial/ucc_uart.c Timur Tabi 2008-01-15 1013 if (!bd_virt) {
d7584ed2b994a5 drivers/serial/ucc_uart.c Timur Tabi 2008-01-15 1014 dev_err(port->dev, "could not allocate buffer descriptors\n");
d7584ed2b994a5 drivers/serial/ucc_uart.c Timur Tabi 2008-01-15 1015 return -ENOMEM;
d7584ed2b994a5 drivers/serial/ucc_uart.c Timur Tabi 2008-01-15 1016 }
d7584ed2b994a5 drivers/serial/ucc_uart.c Timur Tabi 2008-01-15 1017
d7584ed2b994a5 drivers/serial/ucc_uart.c Timur Tabi 2008-01-15 1018 qe_port->bd_virt = bd_virt;
d7584ed2b994a5 drivers/serial/ucc_uart.c Timur Tabi 2008-01-15 1019 qe_port->bd_dma_addr = bd_dma_addr;
d7584ed2b994a5 drivers/serial/ucc_uart.c Timur Tabi 2008-01-15 1020 qe_port->bd_size = rx_size + tx_size;
d7584ed2b994a5 drivers/serial/ucc_uart.c Timur Tabi 2008-01-15 1021
d7584ed2b994a5 drivers/serial/ucc_uart.c Timur Tabi 2008-01-15 1022 qe_port->rx_buf = bd_virt;
d7584ed2b994a5 drivers/serial/ucc_uart.c Timur Tabi 2008-01-15 1023 qe_port->tx_buf = qe_port->rx_buf + rx_size;
d7584ed2b994a5 drivers/serial/ucc_uart.c Timur Tabi 2008-01-15 1024
d7584ed2b994a5 drivers/serial/ucc_uart.c Timur Tabi 2008-01-15 1025 return 0;
d7584ed2b994a5 drivers/serial/ucc_uart.c Timur Tabi 2008-01-15 1026 }
d7584ed2b994a5 drivers/serial/ucc_uart.c Timur Tabi 2008-01-15 1027

:::::: The code at line 1001 was first introduced by commit
:::::: d7584ed2b994a572326650b0c4d2c25961e6f49d [POWERPC] qe-uart: add support for Freescale QUICCEngine UART

:::::: TO: Timur Tabi <timur@xxxxxxxxxxxxx>
:::::: CC: Kumar Gala <galak@xxxxxxxxxxxxxxxxxxx>

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

Attachment: .config.gz
Description: application/gzip