Hi Andy, kernel test robot noticed the following build errors: [auto build test ERROR on groeck-staging/hwmon-next] [also build test ERROR on linus/master v6.14-rc4 next-20250225] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Andy-Shevchenko/watchdog-nic7018_wdt-tidy-up-ACPI-ID-table/20250225-180908 base: https://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging.git hwmon-next patch link: https://lore.kernel.org/r/20250225095804.360899-1-andriy.shevchenko%40linux.intel.com patch subject: [PATCH v1 1/1] watchdog: nic7018_wdt: tidy up ACPI ID table config: s390-allmodconfig (https://download.01.org/0day-ci/archive/20250226/202502260805.jPVNYTZ0-lkp@xxxxxxxxx/config) compiler: clang version 19.1.7 (https://github.com/llvm/llvm-project cd708029e0b2869e80abe31ddb175f7c35361f90) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250226/202502260805.jPVNYTZ0-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/202502260805.jPVNYTZ0-lkp@xxxxxxxxx/ All errors (new ones prefixed by >>): In file included from drivers/watchdog/nic7018_wdt.c:7: In file included from include/linux/device.h:32: In file included from include/linux/device/driver.h:21: In file included from include/linux/module.h:19: In file included from include/linux/elf.h:6: In file included from arch/s390/include/asm/elf.h:181: In file included from arch/s390/include/asm/mmu_context.h:11: In file included from arch/s390/include/asm/pgalloc.h:18: In file included from include/linux/mm.h:2224: include/linux/vmstat.h:504:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion] 504 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS + | ~~~~~~~~~~~~~~~~~~~~~ ^ 505 | item]; | ~~~~ include/linux/vmstat.h:511:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion] 511 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS + | ~~~~~~~~~~~~~~~~~~~~~ ^ 512 | NR_VM_NUMA_EVENT_ITEMS + | ~~~~~~~~~~~~~~~~~~~~~~ include/linux/vmstat.h:524:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion] 524 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS + | ~~~~~~~~~~~~~~~~~~~~~ ^ 525 | NR_VM_NUMA_EVENT_ITEMS + | ~~~~~~~~~~~~~~~~~~~~~~ >> drivers/watchdog/nic7018_wdt.c:209:2: error: call to '_outb' declared with 'error' attribute: outb() requires CONFIG_HAS_IOPORT 209 | outb(UNLOCK, wdt->io_base + WDT_REG_LOCK); | ^ include/asm-generic/io.h:655:14: note: expanded from macro 'outb' 655 | #define outb _outb | ^ include/asm-generic/io.h:596:15: note: expanded from macro '_outb' 596 | #define _outb _outb | ^ drivers/watchdog/nic7018_wdt.c:213:3: error: call to '_outb' declared with 'error' attribute: outb() requires CONFIG_HAS_IOPORT 213 | outb(LOCK, wdt->io_base + WDT_REG_LOCK); | ^ include/asm-generic/io.h:655:14: note: expanded from macro 'outb' 655 | #define outb _outb | ^ include/asm-generic/io.h:596:15: note: expanded from macro '_outb' 596 | #define _outb _outb | ^ drivers/watchdog/nic7018_wdt.c:229:2: error: call to '_outb' declared with 'error' attribute: outb() requires CONFIG_HAS_IOPORT 229 | outb(LOCK, wdt->io_base + WDT_REG_LOCK); | ^ include/asm-generic/io.h:655:14: note: expanded from macro 'outb' 655 | #define outb _outb | ^ include/asm-generic/io.h:596:15: note: expanded from macro '_outb' 596 | #define _outb _outb | ^ drivers/watchdog/nic7018_wdt.c:96:2: error: call to '_outb' declared with 'error' attribute: outb() requires CONFIG_HAS_IOPORT 96 | outb(counter << 4 | config->divider, | ^ include/asm-generic/io.h:655:14: note: expanded from macro 'outb' 655 | #define outb _outb | ^ include/asm-generic/io.h:596:15: note: expanded from macro '_outb' 596 | #define _outb _outb | ^ >> drivers/watchdog/nic7018_wdt.c:112:12: error: call to '_inb' declared with 'error' attribute: inb()) requires CONFIG_HAS_IOPORT 112 | control = inb(wdt->io_base + WDT_RELOAD_CTRL); | ^ include/asm-generic/io.h:643:13: note: expanded from macro 'inb' 643 | #define inb _inb | ^ include/asm-generic/io.h:542:14: note: expanded from macro '_inb' 542 | #define _inb _inb | ^ drivers/watchdog/nic7018_wdt.c:113:2: error: call to '_outb' declared with 'error' attribute: outb() requires CONFIG_HAS_IOPORT 113 | outb(control | WDT_RELOAD_PORT_EN, wdt->io_base + WDT_RELOAD_CTRL); | ^ include/asm-generic/io.h:655:14: note: expanded from macro 'outb' 655 | #define outb _outb | ^ include/asm-generic/io.h:596:15: note: expanded from macro '_outb' 596 | #define _outb _outb | ^ drivers/watchdog/nic7018_wdt.c:115:2: error: call to '_outb' declared with 'error' attribute: outb() requires CONFIG_HAS_IOPORT 115 | outb(1, wdt->io_base + WDT_RELOAD_PORT); | ^ include/asm-generic/io.h:655:14: note: expanded from macro 'outb' 655 | #define outb _outb | ^ include/asm-generic/io.h:596:15: note: expanded from macro '_outb' 596 | #define _outb _outb | ^ drivers/watchdog/nic7018_wdt.c:117:12: error: call to '_inb' declared with 'error' attribute: inb()) requires CONFIG_HAS_IOPORT 117 | control = inb(wdt->io_base + WDT_CTRL); | ^ include/asm-generic/io.h:643:13: note: expanded from macro 'inb' 643 | #define inb _inb | ^ include/asm-generic/io.h:542:14: note: expanded from macro '_inb' 542 | #define _inb _inb | ^ drivers/watchdog/nic7018_wdt.c:118:2: error: call to '_outb' declared with 'error' attribute: outb() requires CONFIG_HAS_IOPORT 118 | outb(control | WDT_CTRL_RESET_EN, wdt->io_base + WDT_CTRL); | ^ include/asm-generic/io.h:655:14: note: expanded from macro 'outb' 655 | #define outb _outb | ^ include/asm-generic/io.h:596:15: note: expanded from macro '_outb' 596 | #define _outb _outb | ^ drivers/watchdog/nic7018_wdt.c:127:2: error: call to '_outb' declared with 'error' attribute: outb() requires CONFIG_HAS_IOPORT 127 | outb(0, wdt->io_base + WDT_CTRL); | ^ include/asm-generic/io.h:655:14: note: expanded from macro 'outb' 655 | #define outb _outb | ^ include/asm-generic/io.h:596:15: note: expanded from macro '_outb' 596 | #define _outb _outb | ^ drivers/watchdog/nic7018_wdt.c:128:2: error: call to '_outb' declared with 'error' attribute: outb() requires CONFIG_HAS_IOPORT 128 | outb(0, wdt->io_base + WDT_RELOAD_CTRL); | ^ include/asm-generic/io.h:655:14: note: expanded from macro 'outb' 655 | #define outb _outb | ^ include/asm-generic/io.h:596:15: note: expanded from macro '_outb' 596 | #define _outb _outb | ^ drivers/watchdog/nic7018_wdt.c:129:2: error: call to '_outb' declared with 'error' attribute: outb() requires CONFIG_HAS_IOPORT 129 | outb(0xF0, wdt->io_base + WDT_PRESET_PRESCALE); | ^ include/asm-generic/io.h:655:14: note: expanded from macro 'outb' 655 | #define outb _outb | ^ include/asm-generic/io.h:596:15: note: expanded from macro '_outb' 596 | #define _outb _outb | ^ drivers/watchdog/nic7018_wdt.c:138:2: error: call to '_outb' declared with 'error' attribute: outb() requires CONFIG_HAS_IOPORT 138 | outb(1, wdt->io_base + WDT_RELOAD_PORT); | ^ include/asm-generic/io.h:655:14: note: expanded from macro 'outb' 655 | #define outb _outb | ^ include/asm-generic/io.h:596:15: note: expanded from macro '_outb' 596 | #define _outb _outb | ^ drivers/watchdog/nic7018_wdt.c:96:2: error: call to '_outb' declared with 'error' attribute: outb() requires CONFIG_HAS_IOPORT 96 | outb(counter << 4 | config->divider, | ^ include/asm-generic/io.h:655:14: note: expanded from macro 'outb' 655 | #define outb _outb | ^ include/asm-generic/io.h:596:15: note: expanded from macro '_outb' 596 | #define _outb _outb | ^ drivers/watchdog/nic7018_wdt.c:148:10: error: call to '_inb' declared with 'error' attribute: inb()) requires CONFIG_HAS_IOPORT 148 | count = inb(wdt->io_base + WDT_COUNT) & 0xF; | ^ include/asm-generic/io.h:643:13: note: expanded from macro 'inb' 643 | #define inb _inb | ^ include/asm-generic/io.h:542:14: note: expanded from macro '_inb' 542 | #define _inb _inb | ^ 3 warnings and 15 errors generated. vim +209 drivers/watchdog/nic7018_wdt.c 98078ca34a0a71 Hui Chun Ong 2016-12-28 104 98078ca34a0a71 Hui Chun Ong 2016-12-28 105 static int nic7018_start(struct watchdog_device *wdd) 98078ca34a0a71 Hui Chun Ong 2016-12-28 106 { 98078ca34a0a71 Hui Chun Ong 2016-12-28 107 struct nic7018_wdt *wdt = watchdog_get_drvdata(wdd); 98078ca34a0a71 Hui Chun Ong 2016-12-28 108 u8 control; 98078ca34a0a71 Hui Chun Ong 2016-12-28 109 98078ca34a0a71 Hui Chun Ong 2016-12-28 110 nic7018_set_timeout(wdd, wdd->timeout); 98078ca34a0a71 Hui Chun Ong 2016-12-28 111 98078ca34a0a71 Hui Chun Ong 2016-12-28 @112 control = inb(wdt->io_base + WDT_RELOAD_CTRL); 98078ca34a0a71 Hui Chun Ong 2016-12-28 113 outb(control | WDT_RELOAD_PORT_EN, wdt->io_base + WDT_RELOAD_CTRL); 98078ca34a0a71 Hui Chun Ong 2016-12-28 114 98078ca34a0a71 Hui Chun Ong 2016-12-28 115 outb(1, wdt->io_base + WDT_RELOAD_PORT); 98078ca34a0a71 Hui Chun Ong 2016-12-28 116 98078ca34a0a71 Hui Chun Ong 2016-12-28 117 control = inb(wdt->io_base + WDT_CTRL); 98078ca34a0a71 Hui Chun Ong 2016-12-28 118 outb(control | WDT_CTRL_RESET_EN, wdt->io_base + WDT_CTRL); 98078ca34a0a71 Hui Chun Ong 2016-12-28 119 98078ca34a0a71 Hui Chun Ong 2016-12-28 120 return 0; 98078ca34a0a71 Hui Chun Ong 2016-12-28 121 } 98078ca34a0a71 Hui Chun Ong 2016-12-28 122 98078ca34a0a71 Hui Chun Ong 2016-12-28 123 static int nic7018_stop(struct watchdog_device *wdd) 98078ca34a0a71 Hui Chun Ong 2016-12-28 124 { 98078ca34a0a71 Hui Chun Ong 2016-12-28 125 struct nic7018_wdt *wdt = watchdog_get_drvdata(wdd); 98078ca34a0a71 Hui Chun Ong 2016-12-28 126 98078ca34a0a71 Hui Chun Ong 2016-12-28 127 outb(0, wdt->io_base + WDT_CTRL); 98078ca34a0a71 Hui Chun Ong 2016-12-28 128 outb(0, wdt->io_base + WDT_RELOAD_CTRL); 98078ca34a0a71 Hui Chun Ong 2016-12-28 129 outb(0xF0, wdt->io_base + WDT_PRESET_PRESCALE); 98078ca34a0a71 Hui Chun Ong 2016-12-28 130 98078ca34a0a71 Hui Chun Ong 2016-12-28 131 return 0; 98078ca34a0a71 Hui Chun Ong 2016-12-28 132 } 98078ca34a0a71 Hui Chun Ong 2016-12-28 133 98078ca34a0a71 Hui Chun Ong 2016-12-28 134 static int nic7018_ping(struct watchdog_device *wdd) 98078ca34a0a71 Hui Chun Ong 2016-12-28 135 { 98078ca34a0a71 Hui Chun Ong 2016-12-28 136 struct nic7018_wdt *wdt = watchdog_get_drvdata(wdd); 98078ca34a0a71 Hui Chun Ong 2016-12-28 137 98078ca34a0a71 Hui Chun Ong 2016-12-28 138 outb(1, wdt->io_base + WDT_RELOAD_PORT); 98078ca34a0a71 Hui Chun Ong 2016-12-28 139 98078ca34a0a71 Hui Chun Ong 2016-12-28 140 return 0; 98078ca34a0a71 Hui Chun Ong 2016-12-28 141 } 98078ca34a0a71 Hui Chun Ong 2016-12-28 142 98078ca34a0a71 Hui Chun Ong 2016-12-28 143 static unsigned int nic7018_get_timeleft(struct watchdog_device *wdd) 98078ca34a0a71 Hui Chun Ong 2016-12-28 144 { 98078ca34a0a71 Hui Chun Ong 2016-12-28 145 struct nic7018_wdt *wdt = watchdog_get_drvdata(wdd); 98078ca34a0a71 Hui Chun Ong 2016-12-28 146 u8 count; 98078ca34a0a71 Hui Chun Ong 2016-12-28 147 98078ca34a0a71 Hui Chun Ong 2016-12-28 148 count = inb(wdt->io_base + WDT_COUNT) & 0xF; 98078ca34a0a71 Hui Chun Ong 2016-12-28 149 if (!count) 98078ca34a0a71 Hui Chun Ong 2016-12-28 150 return 0; 98078ca34a0a71 Hui Chun Ong 2016-12-28 151 98078ca34a0a71 Hui Chun Ong 2016-12-28 152 return nic7018_timeout(wdt->period, count); 98078ca34a0a71 Hui Chun Ong 2016-12-28 153 } 98078ca34a0a71 Hui Chun Ong 2016-12-28 154 98078ca34a0a71 Hui Chun Ong 2016-12-28 155 static const struct watchdog_info nic7018_wdd_info = { 98078ca34a0a71 Hui Chun Ong 2016-12-28 156 .options = WDIOF_SETTIMEOUT | WDIOF_KEEPALIVEPING | WDIOF_MAGICCLOSE, 98078ca34a0a71 Hui Chun Ong 2016-12-28 157 .identity = "NIC7018 Watchdog", 98078ca34a0a71 Hui Chun Ong 2016-12-28 158 }; 98078ca34a0a71 Hui Chun Ong 2016-12-28 159 98078ca34a0a71 Hui Chun Ong 2016-12-28 160 static const struct watchdog_ops nic7018_wdd_ops = { 98078ca34a0a71 Hui Chun Ong 2016-12-28 161 .owner = THIS_MODULE, 98078ca34a0a71 Hui Chun Ong 2016-12-28 162 .start = nic7018_start, 98078ca34a0a71 Hui Chun Ong 2016-12-28 163 .stop = nic7018_stop, 98078ca34a0a71 Hui Chun Ong 2016-12-28 164 .ping = nic7018_ping, 98078ca34a0a71 Hui Chun Ong 2016-12-28 165 .set_timeout = nic7018_set_timeout, 98078ca34a0a71 Hui Chun Ong 2016-12-28 166 .get_timeleft = nic7018_get_timeleft, 98078ca34a0a71 Hui Chun Ong 2016-12-28 167 }; 98078ca34a0a71 Hui Chun Ong 2016-12-28 168 98078ca34a0a71 Hui Chun Ong 2016-12-28 169 static int nic7018_probe(struct platform_device *pdev) 98078ca34a0a71 Hui Chun Ong 2016-12-28 170 { 98078ca34a0a71 Hui Chun Ong 2016-12-28 171 struct device *dev = &pdev->dev; 98078ca34a0a71 Hui Chun Ong 2016-12-28 172 struct watchdog_device *wdd; 98078ca34a0a71 Hui Chun Ong 2016-12-28 173 struct nic7018_wdt *wdt; 98078ca34a0a71 Hui Chun Ong 2016-12-28 174 struct resource *io_rc; 98078ca34a0a71 Hui Chun Ong 2016-12-28 175 int ret; 98078ca34a0a71 Hui Chun Ong 2016-12-28 176 98078ca34a0a71 Hui Chun Ong 2016-12-28 177 wdt = devm_kzalloc(dev, sizeof(*wdt), GFP_KERNEL); 98078ca34a0a71 Hui Chun Ong 2016-12-28 178 if (!wdt) 98078ca34a0a71 Hui Chun Ong 2016-12-28 179 return -ENOMEM; 98078ca34a0a71 Hui Chun Ong 2016-12-28 180 98078ca34a0a71 Hui Chun Ong 2016-12-28 181 platform_set_drvdata(pdev, wdt); 98078ca34a0a71 Hui Chun Ong 2016-12-28 182 98078ca34a0a71 Hui Chun Ong 2016-12-28 183 io_rc = platform_get_resource(pdev, IORESOURCE_IO, 0); 98078ca34a0a71 Hui Chun Ong 2016-12-28 184 if (!io_rc) { 98078ca34a0a71 Hui Chun Ong 2016-12-28 185 dev_err(dev, "missing IO resources\n"); 98078ca34a0a71 Hui Chun Ong 2016-12-28 186 return -EINVAL; 98078ca34a0a71 Hui Chun Ong 2016-12-28 187 } 98078ca34a0a71 Hui Chun Ong 2016-12-28 188 98078ca34a0a71 Hui Chun Ong 2016-12-28 189 if (!devm_request_region(dev, io_rc->start, resource_size(io_rc), 98078ca34a0a71 Hui Chun Ong 2016-12-28 190 KBUILD_MODNAME)) { 98078ca34a0a71 Hui Chun Ong 2016-12-28 191 dev_err(dev, "failed to get IO region\n"); 98078ca34a0a71 Hui Chun Ong 2016-12-28 192 return -EBUSY; 98078ca34a0a71 Hui Chun Ong 2016-12-28 193 } 98078ca34a0a71 Hui Chun Ong 2016-12-28 194 98078ca34a0a71 Hui Chun Ong 2016-12-28 195 wdt->io_base = io_rc->start; 98078ca34a0a71 Hui Chun Ong 2016-12-28 196 wdd = &wdt->wdd; 98078ca34a0a71 Hui Chun Ong 2016-12-28 197 wdd->info = &nic7018_wdd_info; 98078ca34a0a71 Hui Chun Ong 2016-12-28 198 wdd->ops = &nic7018_wdd_ops; 98078ca34a0a71 Hui Chun Ong 2016-12-28 199 wdd->min_timeout = WDT_MIN_TIMEOUT; 98078ca34a0a71 Hui Chun Ong 2016-12-28 200 wdd->max_timeout = WDT_MAX_TIMEOUT; 98078ca34a0a71 Hui Chun Ong 2016-12-28 201 wdd->timeout = WDT_DEFAULT_TIMEOUT; 98078ca34a0a71 Hui Chun Ong 2016-12-28 202 wdd->parent = dev; 98078ca34a0a71 Hui Chun Ong 2016-12-28 203 98078ca34a0a71 Hui Chun Ong 2016-12-28 204 watchdog_set_drvdata(wdd, wdt); 98078ca34a0a71 Hui Chun Ong 2016-12-28 205 watchdog_set_nowayout(wdd, nowayout); 14fad5d98d9043 Wolfram Sang 2019-04-19 206 watchdog_init_timeout(wdd, timeout, dev); 98078ca34a0a71 Hui Chun Ong 2016-12-28 207 98078ca34a0a71 Hui Chun Ong 2016-12-28 208 /* Unlock WDT register */ 98078ca34a0a71 Hui Chun Ong 2016-12-28 @209 outb(UNLOCK, wdt->io_base + WDT_REG_LOCK); 98078ca34a0a71 Hui Chun Ong 2016-12-28 210 98078ca34a0a71 Hui Chun Ong 2016-12-28 211 ret = watchdog_register_device(wdd); 98078ca34a0a71 Hui Chun Ong 2016-12-28 212 if (ret) { 98078ca34a0a71 Hui Chun Ong 2016-12-28 213 outb(LOCK, wdt->io_base + WDT_REG_LOCK); 98078ca34a0a71 Hui Chun Ong 2016-12-28 214 return ret; 98078ca34a0a71 Hui Chun Ong 2016-12-28 215 } 98078ca34a0a71 Hui Chun Ong 2016-12-28 216 98078ca34a0a71 Hui Chun Ong 2016-12-28 217 dev_dbg(dev, "io_base=0x%04X, timeout=%d, nowayout=%d\n", 98078ca34a0a71 Hui Chun Ong 2016-12-28 218 wdt->io_base, timeout, nowayout); 98078ca34a0a71 Hui Chun Ong 2016-12-28 219 return 0; 98078ca34a0a71 Hui Chun Ong 2016-12-28 220 } 98078ca34a0a71 Hui Chun Ong 2016-12-28 221 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki