drivers/isdn/hardware/mISDN/hfcmulti.c:452:22: sparse: sparse: incorrect type in argument 1 (different base types)
From: kernel test robot
Date: Mon Dec 02 2024 - 22:38:51 EST
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: cdd30ebb1b9f36159d66f088b61aee264e649d7a
commit: 15104de122a4f0258981b06ed94cf616a6eb03ef x86: Adjust types used in port I/O helpers
date: 2 years, 8 months ago
config: i386-randconfig-062-20240106 (https://download.01.org/0day-ci/archive/20241203/202412031124.o0Te9YD6-lkp@xxxxxxxxx/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241203/202412031124.o0Te9YD6-lkp@xxxxxxxxx/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@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202412031124.o0Te9YD6-lkp@xxxxxxxxx/
sparse warnings: (new ones prefixed by >>)
>> drivers/isdn/hardware/mISDN/hfcmulti.c:452:22: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int [usertype] value @@ got restricted __le32 [usertype] @@
drivers/isdn/hardware/mISDN/hfcmulti.c:452:22: sparse: expected unsigned int [usertype] value
drivers/isdn/hardware/mISDN/hfcmulti.c:452:22: sparse: got restricted __le32 [usertype]
>> drivers/isdn/hardware/mISDN/hfcmulti.c:457:22: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned short [usertype] value @@ got restricted __le16 [usertype] @@
drivers/isdn/hardware/mISDN/hfcmulti.c:457:22: sparse: expected unsigned short [usertype] value
drivers/isdn/hardware/mISDN/hfcmulti.c:457:22: sparse: got restricted __le16 [usertype]
drivers/isdn/hardware/mISDN/hfcmulti.c:472:24: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int val @@ got restricted __le32 [usertype] @@
drivers/isdn/hardware/mISDN/hfcmulti.c:472:24: sparse: expected unsigned int val
drivers/isdn/hardware/mISDN/hfcmulti.c:472:24: sparse: got restricted __le32 [usertype]
drivers/isdn/hardware/mISDN/hfcmulti.c:478:24: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned short val @@ got restricted __le16 [usertype] @@
drivers/isdn/hardware/mISDN/hfcmulti.c:478:24: sparse: expected unsigned short val
drivers/isdn/hardware/mISDN/hfcmulti.c:478:24: sparse: got restricted __le16 [usertype]
drivers/isdn/hardware/mISDN/hfcmulti.c:496:32: sparse: sparse: cast to restricted __le32
drivers/isdn/hardware/mISDN/hfcmulti.c:501:32: sparse: sparse: cast to restricted __le16
drivers/isdn/hardware/mISDN/hfcmulti.c:518:25: sparse: sparse: cast to restricted __le32
drivers/isdn/hardware/mISDN/hfcmulti.c:524:25: sparse: sparse: cast to restricted __le16
drivers/isdn/hardware/mISDN/hfcmulti.c:1092:26: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/isdn/hardware/mISDN/hfcmulti.c:1092:26: sparse: expected void volatile [noderef] __iomem *addr
drivers/isdn/hardware/mISDN/hfcmulti.c:1092:26: sparse: got void *
--
>> drivers/tty/ipwireless/hardware.c:431:30: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned short [usertype] value @@ got restricted __le16 [assigned] [usertype] raw_data @@
drivers/tty/ipwireless/hardware.c:431:30: sparse: expected unsigned short [usertype] value
drivers/tty/ipwireless/hardware.c:431:30: sparse: got restricted __le16 [assigned] [usertype] raw_data
drivers/tty/ipwireless/hardware.c:445:30: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned short [usertype] value @@ got restricted __le16 [assigned] [usertype] raw_data @@
drivers/tty/ipwireless/hardware.c:445:30: sparse: expected unsigned short [usertype] value
drivers/tty/ipwireless/hardware.c:445:30: sparse: got restricted __le16 [assigned] [usertype] raw_data
drivers/tty/ipwireless/hardware.c:872:46: sparse: sparse: incorrect type in initializer (different base types) @@ expected restricted __le16 [usertype] raw_data @@ got unsigned short @@
drivers/tty/ipwireless/hardware.c:872:46: sparse: expected restricted __le16 [usertype] raw_data
drivers/tty/ipwireless/hardware.c:872:46: sparse: got unsigned short
drivers/tty/ipwireless/hardware.c:889:46: sparse: sparse: incorrect type in initializer (different base types) @@ expected restricted __le16 [usertype] raw_data @@ got unsigned short @@
drivers/tty/ipwireless/hardware.c:889:46: sparse: expected restricted __le16 [usertype] raw_data
drivers/tty/ipwireless/hardware.c:889:46: sparse: got unsigned short
vim +452 drivers/isdn/hardware/mISDN/hfcmulti.c
af69fb3a8ffa37e Karsten Keil 2008-07-27 445
af69fb3a8ffa37e Karsten Keil 2008-07-27 446 /* write fifo data (REGIO) */
5b8343540a3d27f Hannes Eder 2008-12-12 447 static void
af69fb3a8ffa37e Karsten Keil 2008-07-27 448 write_fifo_regio(struct hfc_multi *hc, u_char *data, int len)
af69fb3a8ffa37e Karsten Keil 2008-07-27 449 {
af69fb3a8ffa37e Karsten Keil 2008-07-27 450 outb(A_FIFO_DATA0, (hc->pci_iobase) + 4);
af69fb3a8ffa37e Karsten Keil 2008-07-27 451 while (len >> 2) {
b3e0aeeb7e0f897 Karsten Keil 2008-08-02 @452 outl(cpu_to_le32(*(u32 *)data), hc->pci_iobase);
af69fb3a8ffa37e Karsten Keil 2008-07-27 453 data += 4;
af69fb3a8ffa37e Karsten Keil 2008-07-27 454 len -= 4;
af69fb3a8ffa37e Karsten Keil 2008-07-27 455 }
af69fb3a8ffa37e Karsten Keil 2008-07-27 456 while (len >> 1) {
b3e0aeeb7e0f897 Karsten Keil 2008-08-02 @457 outw(cpu_to_le16(*(u16 *)data), hc->pci_iobase);
af69fb3a8ffa37e Karsten Keil 2008-07-27 458 data += 2;
af69fb3a8ffa37e Karsten Keil 2008-07-27 459 len -= 2;
af69fb3a8ffa37e Karsten Keil 2008-07-27 460 }
af69fb3a8ffa37e Karsten Keil 2008-07-27 461 while (len) {
af69fb3a8ffa37e Karsten Keil 2008-07-27 462 outb(*data, hc->pci_iobase);
af69fb3a8ffa37e Karsten Keil 2008-07-27 463 data++;
af69fb3a8ffa37e Karsten Keil 2008-07-27 464 len--;
af69fb3a8ffa37e Karsten Keil 2008-07-27 465 }
af69fb3a8ffa37e Karsten Keil 2008-07-27 466 }
af69fb3a8ffa37e Karsten Keil 2008-07-27 467 /* write fifo data (PCIMEM) */
5b8343540a3d27f Hannes Eder 2008-12-12 468 static void
af69fb3a8ffa37e Karsten Keil 2008-07-27 469 write_fifo_pcimem(struct hfc_multi *hc, u_char *data, int len)
af69fb3a8ffa37e Karsten Keil 2008-07-27 470 {
af69fb3a8ffa37e Karsten Keil 2008-07-27 471 while (len >> 2) {
b3e0aeeb7e0f897 Karsten Keil 2008-08-02 472 writel(cpu_to_le32(*(u32 *)data),
b3e0aeeb7e0f897 Karsten Keil 2008-08-02 473 hc->pci_membase + A_FIFO_DATA0);
af69fb3a8ffa37e Karsten Keil 2008-07-27 474 data += 4;
af69fb3a8ffa37e Karsten Keil 2008-07-27 475 len -= 4;
af69fb3a8ffa37e Karsten Keil 2008-07-27 476 }
af69fb3a8ffa37e Karsten Keil 2008-07-27 477 while (len >> 1) {
b3e0aeeb7e0f897 Karsten Keil 2008-08-02 478 writew(cpu_to_le16(*(u16 *)data),
b3e0aeeb7e0f897 Karsten Keil 2008-08-02 479 hc->pci_membase + A_FIFO_DATA0);
af69fb3a8ffa37e Karsten Keil 2008-07-27 480 data += 2;
af69fb3a8ffa37e Karsten Keil 2008-07-27 481 len -= 2;
af69fb3a8ffa37e Karsten Keil 2008-07-27 482 }
af69fb3a8ffa37e Karsten Keil 2008-07-27 483 while (len) {
b3e0aeeb7e0f897 Karsten Keil 2008-08-02 484 writeb(*data, hc->pci_membase + A_FIFO_DATA0);
af69fb3a8ffa37e Karsten Keil 2008-07-27 485 data++;
af69fb3a8ffa37e Karsten Keil 2008-07-27 486 len--;
af69fb3a8ffa37e Karsten Keil 2008-07-27 487 }
af69fb3a8ffa37e Karsten Keil 2008-07-27 488 }
eac74af9b547e29 Karsten Keil 2009-05-22 489
:::::: The code at line 452 was first introduced by commit
:::::: b3e0aeeb7e0f89791c4c3bdfd98b36074c5178e6 Fix remaining big endian issue of hfcmulti
:::::: TO: Karsten Keil <kkeil@xxxxxxx>
:::::: CC: Karsten Keil <kkeil@xxxxxxx>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki