[<prev] [next>] [day] [month] [year] [list]
Message-ID: <202509131412.Yordu9eb-lkp@intel.com>
Date: Sat, 13 Sep 2025 14:59:51 +0800
From: kernel test robot <lkp@...el.com>
To: Dave Penkler <dpenkler@...il.com>
Cc: oe-kbuild-all@...ts.linux.dev, linux-kernel@...r.kernel.org
Subject: drivers/staging/gpib/eastwood/fluke_gpib.c:1013:21: error: call to
undeclared function 'ioremap'; ISO C99 and later do not support implicit
function declarations
Hi Dave,
First bad commit (maybe != root cause):
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 22f20375f5b71f30c0d6896583b93b6e4bba7279
commit: 165e8cc3cfec9ef51f3376b0d49b115294f34f3b staging: gpib: Add KBUILD files for GPIB drivers
date: 11 months ago
config: s390-randconfig-r133-20250913 (https://download.01.org/0day-ci/archive/20250913/202509131412.Yordu9eb-lkp@intel.com/config)
compiler: clang version 16.0.6 (https://github.com/llvm/llvm-project 7cbf1a2591520c2491aa35339f227775f4d3adf6)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250913/202509131412.Yordu9eb-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@...el.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202509131412.Yordu9eb-lkp@intel.com/
All errors (new ones prefixed by >>):
In file included from drivers/staging/gpib/eastwood/fluke_gpib.c:10:
In file included from drivers/staging/gpib/eastwood/fluke_gpib.h:9:
In file included from include/linux/dmaengine.h:12:
In file included from include/linux/scatterlist.h:9:
In file included from arch/s390/include/asm/io.h:93:
include/asm-generic/io.h:548:31: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
val = __raw_readb(PCI_IOBASE + addr);
~~~~~~~~~~ ^
include/asm-generic/io.h:561:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
val = __le16_to_cpu((__le16 __force)__raw_readw(PCI_IOBASE + addr));
~~~~~~~~~~ ^
include/uapi/linux/byteorder/big_endian.h:37:59: note: expanded from macro '__le16_to_cpu'
#define __le16_to_cpu(x) __swab16((__force __u16)(__le16)(x))
^
include/uapi/linux/swab.h:102:54: note: expanded from macro '__swab16'
#define __swab16(x) (__u16)__builtin_bswap16((__u16)(x))
^
In file included from drivers/staging/gpib/eastwood/fluke_gpib.c:10:
In file included from drivers/staging/gpib/eastwood/fluke_gpib.h:9:
In file included from include/linux/dmaengine.h:12:
In file included from include/linux/scatterlist.h:9:
In file included from arch/s390/include/asm/io.h:93:
include/asm-generic/io.h:574:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
val = __le32_to_cpu((__le32 __force)__raw_readl(PCI_IOBASE + addr));
~~~~~~~~~~ ^
include/uapi/linux/byteorder/big_endian.h:35:59: note: expanded from macro '__le32_to_cpu'
#define __le32_to_cpu(x) __swab32((__force __u32)(__le32)(x))
^
include/uapi/linux/swab.h:115:54: note: expanded from macro '__swab32'
#define __swab32(x) (__u32)__builtin_bswap32((__u32)(x))
^
In file included from drivers/staging/gpib/eastwood/fluke_gpib.c:10:
In file included from drivers/staging/gpib/eastwood/fluke_gpib.h:9:
In file included from include/linux/dmaengine.h:12:
In file included from include/linux/scatterlist.h:9:
In file included from arch/s390/include/asm/io.h:93:
include/asm-generic/io.h:585:33: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
__raw_writeb(value, PCI_IOBASE + addr);
~~~~~~~~~~ ^
include/asm-generic/io.h:595:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
__raw_writew((u16 __force)cpu_to_le16(value), PCI_IOBASE + addr);
~~~~~~~~~~ ^
include/asm-generic/io.h:605:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
__raw_writel((u32 __force)cpu_to_le32(value), PCI_IOBASE + addr);
~~~~~~~~~~ ^
include/asm-generic/io.h:693:20: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
readsb(PCI_IOBASE + addr, buffer, count);
~~~~~~~~~~ ^
include/asm-generic/io.h:701:20: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
readsw(PCI_IOBASE + addr, buffer, count);
~~~~~~~~~~ ^
include/asm-generic/io.h:709:20: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
readsl(PCI_IOBASE + addr, buffer, count);
~~~~~~~~~~ ^
include/asm-generic/io.h:718:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
writesb(PCI_IOBASE + addr, buffer, count);
~~~~~~~~~~ ^
include/asm-generic/io.h:727:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
writesw(PCI_IOBASE + addr, buffer, count);
~~~~~~~~~~ ^
include/asm-generic/io.h:736:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
writesl(PCI_IOBASE + addr, buffer, count);
~~~~~~~~~~ ^
drivers/staging/gpib/eastwood/fluke_gpib.c:196:23: warning: variable 'nec_priv' set but not used [-Wunused-but-set-variable]
struct nec7210_priv *nec_priv;
^
>> drivers/staging/gpib/eastwood/fluke_gpib.c:1013:21: error: call to undeclared function 'ioremap'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
nec_priv->iobase = ioremap(e_priv->gpib_iomem_res->start,
^
>> drivers/staging/gpib/eastwood/fluke_gpib.c:1013:19: error: incompatible integer to pointer conversion assigning to 'void *' from 'int' [-Wint-conversion]
nec_priv->iobase = ioremap(e_priv->gpib_iomem_res->start,
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/staging/gpib/eastwood/fluke_gpib.c:1050:33: error: incompatible integer to pointer conversion assigning to 'void *' from 'int' [-Wint-conversion]
e_priv->write_transfer_counter = ioremap(e_priv->write_transfer_counter_res->start,
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
13 warnings and 3 errors generated.
vim +/ioremap +1013 drivers/staging/gpib/eastwood/fluke_gpib.c
55936779f49612 Dave Penkler 2024-09-18 973
55936779f49612 Dave Penkler 2024-09-18 974 static int fluke_attach_impl(gpib_board_t *board, const gpib_board_config_t *config,
55936779f49612 Dave Penkler 2024-09-18 975 unsigned int handshake_mode)
55936779f49612 Dave Penkler 2024-09-18 976 {
55936779f49612 Dave Penkler 2024-09-18 977 struct fluke_priv *e_priv;
55936779f49612 Dave Penkler 2024-09-18 978 struct nec7210_priv *nec_priv;
55936779f49612 Dave Penkler 2024-09-18 979 int isr_flags = 0;
55936779f49612 Dave Penkler 2024-09-18 980 int retval;
55936779f49612 Dave Penkler 2024-09-18 981 int irq;
55936779f49612 Dave Penkler 2024-09-18 982 struct resource *res;
55936779f49612 Dave Penkler 2024-09-18 983 dma_cap_mask_t dma_cap;
55936779f49612 Dave Penkler 2024-09-18 984
55936779f49612 Dave Penkler 2024-09-18 985 if (!fluke_gpib_pdev) {
55936779f49612 Dave Penkler 2024-09-18 986 pr_err("No gpib platform device was found, attach failed.\n");
55936779f49612 Dave Penkler 2024-09-18 987 return -ENODEV;
55936779f49612 Dave Penkler 2024-09-18 988 }
55936779f49612 Dave Penkler 2024-09-18 989
55936779f49612 Dave Penkler 2024-09-18 990 retval = fluke_generic_attach(board);
55936779f49612 Dave Penkler 2024-09-18 991 if (retval)
55936779f49612 Dave Penkler 2024-09-18 992 return retval;
55936779f49612 Dave Penkler 2024-09-18 993
55936779f49612 Dave Penkler 2024-09-18 994 e_priv = board->private_data;
55936779f49612 Dave Penkler 2024-09-18 995 nec_priv = &e_priv->nec7210_priv;
55936779f49612 Dave Penkler 2024-09-18 996 nec_priv->offset = fluke_reg_offset;
55936779f49612 Dave Penkler 2024-09-18 997 board->dev = &fluke_gpib_pdev->dev;
55936779f49612 Dave Penkler 2024-09-18 998
55936779f49612 Dave Penkler 2024-09-18 999 res = platform_get_resource(fluke_gpib_pdev, IORESOURCE_MEM, 0);
55936779f49612 Dave Penkler 2024-09-18 1000 if (!res) {
55936779f49612 Dave Penkler 2024-09-18 1001 dev_err(&fluke_gpib_pdev->dev, "Unable to locate mmio resource for cb7210 gpib\n");
55936779f49612 Dave Penkler 2024-09-18 1002 return -ENODEV;
55936779f49612 Dave Penkler 2024-09-18 1003 }
55936779f49612 Dave Penkler 2024-09-18 1004
55936779f49612 Dave Penkler 2024-09-18 1005 if (request_mem_region(res->start,
55936779f49612 Dave Penkler 2024-09-18 1006 resource_size(res),
55936779f49612 Dave Penkler 2024-09-18 1007 fluke_gpib_pdev->name) == NULL) {
55936779f49612 Dave Penkler 2024-09-18 1008 dev_err(&fluke_gpib_pdev->dev, "cannot claim registers\n");
55936779f49612 Dave Penkler 2024-09-18 1009 return -ENXIO;
55936779f49612 Dave Penkler 2024-09-18 1010 }
55936779f49612 Dave Penkler 2024-09-18 1011 e_priv->gpib_iomem_res = res;
55936779f49612 Dave Penkler 2024-09-18 1012
55936779f49612 Dave Penkler 2024-09-18 @1013 nec_priv->iobase = ioremap(e_priv->gpib_iomem_res->start,
55936779f49612 Dave Penkler 2024-09-18 1014 resource_size(e_priv->gpib_iomem_res));
55936779f49612 Dave Penkler 2024-09-18 1015 pr_info("gpib: iobase %lx remapped to %p, length=%d\n",
55936779f49612 Dave Penkler 2024-09-18 1016 (unsigned long)e_priv->gpib_iomem_res->start,
55936779f49612 Dave Penkler 2024-09-18 1017 nec_priv->iobase, (int)resource_size(e_priv->gpib_iomem_res));
55936779f49612 Dave Penkler 2024-09-18 1018 if (!nec_priv->iobase) {
55936779f49612 Dave Penkler 2024-09-18 1019 dev_err(&fluke_gpib_pdev->dev, "Could not map I/O memory\n");
55936779f49612 Dave Penkler 2024-09-18 1020 return -ENOMEM;
55936779f49612 Dave Penkler 2024-09-18 1021 }
55936779f49612 Dave Penkler 2024-09-18 1022
55936779f49612 Dave Penkler 2024-09-18 1023 res = platform_get_resource(fluke_gpib_pdev, IORESOURCE_MEM, 1);
55936779f49612 Dave Penkler 2024-09-18 1024 if (!res) {
55936779f49612 Dave Penkler 2024-09-18 1025 dev_err(&fluke_gpib_pdev->dev, "Unable to locate mmio resource for gpib dma port\n");
55936779f49612 Dave Penkler 2024-09-18 1026 return -ENODEV;
55936779f49612 Dave Penkler 2024-09-18 1027 }
55936779f49612 Dave Penkler 2024-09-18 1028 if (request_mem_region(res->start,
55936779f49612 Dave Penkler 2024-09-18 1029 resource_size(res),
55936779f49612 Dave Penkler 2024-09-18 1030 fluke_gpib_pdev->name) == NULL) {
55936779f49612 Dave Penkler 2024-09-18 1031 dev_err(&fluke_gpib_pdev->dev, "cannot claim registers\n");
55936779f49612 Dave Penkler 2024-09-18 1032 return -ENXIO;
55936779f49612 Dave Penkler 2024-09-18 1033 }
55936779f49612 Dave Penkler 2024-09-18 1034 e_priv->dma_port_res = res;
55936779f49612 Dave Penkler 2024-09-18 1035
55936779f49612 Dave Penkler 2024-09-18 1036 res = platform_get_resource(fluke_gpib_pdev, IORESOURCE_MEM, 2);
55936779f49612 Dave Penkler 2024-09-18 1037 if (!res) {
55936779f49612 Dave Penkler 2024-09-18 1038 dev_err(&fluke_gpib_pdev->dev, "Unable to locate mmio resource for write transfer counter\n");
55936779f49612 Dave Penkler 2024-09-18 1039 return -ENODEV;
55936779f49612 Dave Penkler 2024-09-18 1040 }
55936779f49612 Dave Penkler 2024-09-18 1041
55936779f49612 Dave Penkler 2024-09-18 1042 if (request_mem_region(res->start,
55936779f49612 Dave Penkler 2024-09-18 1043 resource_size(res),
55936779f49612 Dave Penkler 2024-09-18 1044 fluke_gpib_pdev->name) == NULL) {
55936779f49612 Dave Penkler 2024-09-18 1045 dev_err(&fluke_gpib_pdev->dev, "cannot claim registers\n");
55936779f49612 Dave Penkler 2024-09-18 1046 return -ENXIO;
55936779f49612 Dave Penkler 2024-09-18 1047 }
55936779f49612 Dave Penkler 2024-09-18 1048 e_priv->write_transfer_counter_res = res;
55936779f49612 Dave Penkler 2024-09-18 1049
55936779f49612 Dave Penkler 2024-09-18 1050 e_priv->write_transfer_counter = ioremap(e_priv->write_transfer_counter_res->start,
55936779f49612 Dave Penkler 2024-09-18 1051 resource_size(e_priv->write_transfer_counter_res));
55936779f49612 Dave Penkler 2024-09-18 1052 pr_info("gpib: write transfer counter %lx remapped to %p, length=%d\n",
55936779f49612 Dave Penkler 2024-09-18 1053 (unsigned long)e_priv->write_transfer_counter_res->start,
55936779f49612 Dave Penkler 2024-09-18 1054 e_priv->write_transfer_counter,
55936779f49612 Dave Penkler 2024-09-18 1055 (int)resource_size(e_priv->write_transfer_counter_res));
55936779f49612 Dave Penkler 2024-09-18 1056 if (!e_priv->write_transfer_counter) {
55936779f49612 Dave Penkler 2024-09-18 1057 dev_err(&fluke_gpib_pdev->dev, "Could not map I/O memory\n");
55936779f49612 Dave Penkler 2024-09-18 1058 return -ENOMEM;
55936779f49612 Dave Penkler 2024-09-18 1059 }
55936779f49612 Dave Penkler 2024-09-18 1060
55936779f49612 Dave Penkler 2024-09-18 1061 irq = platform_get_irq(fluke_gpib_pdev, 0);
55936779f49612 Dave Penkler 2024-09-18 1062 pr_info("gpib: irq %d\n", irq);
55936779f49612 Dave Penkler 2024-09-18 1063 if (irq < 0) {
55936779f49612 Dave Penkler 2024-09-18 1064 dev_err(&fluke_gpib_pdev->dev, "fluke_gpib: request for IRQ failed\n");
55936779f49612 Dave Penkler 2024-09-18 1065 return -EBUSY;
55936779f49612 Dave Penkler 2024-09-18 1066 }
55936779f49612 Dave Penkler 2024-09-18 1067 retval = request_irq(irq, fluke_gpib_interrupt, isr_flags, fluke_gpib_pdev->name, board);
55936779f49612 Dave Penkler 2024-09-18 1068 if (retval) {
55936779f49612 Dave Penkler 2024-09-18 1069 dev_err(&fluke_gpib_pdev->dev,
55936779f49612 Dave Penkler 2024-09-18 1070 "cannot register interrupt handler err=%d\n",
55936779f49612 Dave Penkler 2024-09-18 1071 retval);
55936779f49612 Dave Penkler 2024-09-18 1072 return retval;
55936779f49612 Dave Penkler 2024-09-18 1073 }
55936779f49612 Dave Penkler 2024-09-18 1074 e_priv->irq = irq;
55936779f49612 Dave Penkler 2024-09-18 1075
55936779f49612 Dave Penkler 2024-09-18 1076 dma_cap_zero(dma_cap);
55936779f49612 Dave Penkler 2024-09-18 1077 dma_cap_set(DMA_SLAVE, dma_cap);
55936779f49612 Dave Penkler 2024-09-18 1078 e_priv->dma_channel = dma_request_channel(dma_cap, gpib_dma_channel_filter, NULL);
55936779f49612 Dave Penkler 2024-09-18 1079 if (!e_priv->dma_channel) {
55936779f49612 Dave Penkler 2024-09-18 1080 pr_err("fluke_gpib: failed to allocate a dma channel.\n");
55936779f49612 Dave Penkler 2024-09-18 1081 // we don't error out here because unaccel interface will still
55936779f49612 Dave Penkler 2024-09-18 1082 // work without dma
55936779f49612 Dave Penkler 2024-09-18 1083 }
55936779f49612 Dave Penkler 2024-09-18 1084
55936779f49612 Dave Penkler 2024-09-18 1085 return fluke_init(e_priv, board, handshake_mode);
55936779f49612 Dave Penkler 2024-09-18 1086 }
55936779f49612 Dave Penkler 2024-09-18 1087
:::::: The code at line 1013 was first introduced by commit
:::::: 55936779f4961299efa99a6843c8ff3b019d3858 staging: gpib: Add Fluke cda based cards GPIB driver
:::::: TO: Dave Penkler <dpenkler@...il.com>
:::::: CC: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
Powered by blists - more mailing lists