* include/asm-generic/io.h:542:14: error: call to '_inb' declared with attribute error: inb()) requires CONFIG_HAS_IOPORT
@ 2025-06-05 23:02 kernel test robot
2025-06-06 7:46 ` Arnd Bergmann
0 siblings, 1 reply; 3+ messages in thread
From: kernel test robot @ 2025-06-05 23:02 UTC (permalink / raw)
To: Arnd Bergmann; +Cc: oe-kbuild-all, linux-kernel, Johannes Berg
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: e271ed52b344ac02d4581286961d0c40acc54c03
commit: b8c9c3b822fe8e033b9802516f6466099d915488 um: stop using PCI port I/O
date: 4 days ago
config: um-randconfig-001-20250606 (https://download.01.org/0day-ci/archive/20250606/202506060742.XR3HcxWA-lkp@intel.com/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/20250606/202506060742.XR3HcxWA-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/202506060742.XR3HcxWA-lkp@intel.com/
All errors (new ones prefixed by >>):
drivers/char/sonypi.c: In function 'sonypi_call1':
drivers/char/sonypi.c:638:12: warning: variable 'v1' set but not used [-Wunused-but-set-variable]
638 | u8 v1, v2;
| ^~
In file included from arch/um/include/asm/io.h:24,
from include/linux/io.h:12,
from include/linux/irq.h:20,
from include/asm-generic/hardirq.h:17,
from arch/um/include/asm/hardirq.h:5,
from include/linux/hardirq.h:11,
from include/linux/interrupt.h:11,
from include/linux/pci.h:38,
from drivers/char/sonypi.c:27:
In function 'inb_p',
inlined from 'sonypi_irq' at drivers/char/sonypi.c:830:7:
>> include/asm-generic/io.h:542:14: error: call to '_inb' declared with attribute error: inb()) requires CONFIG_HAS_IOPORT
542 | #define _inb _inb
| ^
include/asm-generic/io.h:643:13: note: in expansion of macro '_inb'
643 | #define inb _inb
| ^~~~
include/asm-generic/io.h:670:16: note: in expansion of macro 'inb'
670 | return inb(addr);
| ^~~
In function 'inb_p',
inlined from 'sonypi_irq' at drivers/char/sonypi.c:831:7:
>> include/asm-generic/io.h:542:14: error: call to '_inb' declared with attribute error: inb()) requires CONFIG_HAS_IOPORT
542 | #define _inb _inb
| ^
include/asm-generic/io.h:643:13: note: in expansion of macro '_inb'
643 | #define inb _inb
| ^~~~
include/asm-generic/io.h:670:16: note: in expansion of macro 'inb'
670 | return inb(addr);
| ^~~
In function 'inb_p',
inlined from 'sonypi_call1.isra' at drivers/char/sonypi.c:640:2:
>> include/asm-generic/io.h:542:14: error: call to '_inb' declared with attribute error: inb()) requires CONFIG_HAS_IOPORT
542 | #define _inb _inb
| ^
include/asm-generic/io.h:643:13: note: in expansion of macro '_inb'
643 | #define inb _inb
| ^~~~
include/asm-generic/io.h:670:16: note: in expansion of macro 'inb'
670 | return inb(addr);
| ^~~
drivers/char/sonypi.c: In function 'sonypi_call1.isra':
>> include/asm-generic/io.h:596:15: error: call to '_outb' declared with attribute error: outb() requires CONFIG_HAS_IOPORT
596 | #define _outb _outb
include/asm-generic/io.h:655:14: note: in expansion of macro '_outb'
655 | #define outb _outb
| ^~~~~
drivers/char/sonypi.c:641:9: note: in expansion of macro 'outb'
641 | outb(dev, sonypi_device.ioport2);
| ^~~~
In function 'inb_p',
inlined from 'sonypi_call1.isra' at drivers/char/sonypi.c:642:7:
>> include/asm-generic/io.h:542:14: error: call to '_inb' declared with attribute error: inb()) requires CONFIG_HAS_IOPORT
542 | #define _inb _inb
| ^
include/asm-generic/io.h:643:13: note: in expansion of macro '_inb'
643 | #define inb _inb
| ^~~~
include/asm-generic/io.h:670:16: note: in expansion of macro 'inb'
670 | return inb(addr);
| ^~~
In function 'inb_p',
inlined from 'sonypi_call1.isra' at drivers/char/sonypi.c:643:7:
>> include/asm-generic/io.h:542:14: error: call to '_inb' declared with attribute error: inb()) requires CONFIG_HAS_IOPORT
542 | #define _inb _inb
| ^
include/asm-generic/io.h:643:13: note: in expansion of macro '_inb'
643 | #define inb _inb
| ^~~~
include/asm-generic/io.h:670:16: note: in expansion of macro 'inb'
670 | return inb(addr);
| ^~~
In function 'inb_p',
inlined from 'sonypi_call2' at drivers/char/sonypi.c:651:2:
>> include/asm-generic/io.h:542:14: error: call to '_inb' declared with attribute error: inb()) requires CONFIG_HAS_IOPORT
542 | #define _inb _inb
| ^
include/asm-generic/io.h:643:13: note: in expansion of macro '_inb'
643 | #define inb _inb
| ^~~~
include/asm-generic/io.h:670:16: note: in expansion of macro 'inb'
670 | return inb(addr);
| ^~~
drivers/char/sonypi.c: In function 'sonypi_call2':
>> include/asm-generic/io.h:596:15: error: call to '_outb' declared with attribute error: outb() requires CONFIG_HAS_IOPORT
596 | #define _outb _outb
include/asm-generic/io.h:655:14: note: in expansion of macro '_outb'
655 | #define outb _outb
| ^~~~~
drivers/char/sonypi.c:652:9: note: in expansion of macro 'outb'
652 | outb(dev, sonypi_device.ioport2);
| ^~~~
In function 'inb_p',
inlined from 'sonypi_call2' at drivers/char/sonypi.c:653:2:
>> include/asm-generic/io.h:542:14: error: call to '_inb' declared with attribute error: inb()) requires CONFIG_HAS_IOPORT
542 | #define _inb _inb
| ^
include/asm-generic/io.h:643:13: note: in expansion of macro '_inb'
643 | #define inb _inb
| ^~~~
include/asm-generic/io.h:670:16: note: in expansion of macro 'inb'
670 | return inb(addr);
| ^~~
drivers/char/sonypi.c: In function 'sonypi_call2':
>> include/asm-generic/io.h:596:15: error: call to '_outb' declared with attribute error: outb() requires CONFIG_HAS_IOPORT
596 | #define _outb _outb
include/asm-generic/io.h:655:14: note: in expansion of macro '_outb'
655 | #define outb _outb
| ^~~~~
drivers/char/sonypi.c:654:9: note: in expansion of macro 'outb'
654 | outb(fn, sonypi_device.ioport1);
| ^~~~
In function 'inb_p',
inlined from 'sonypi_call2' at drivers/char/sonypi.c:655:7:
>> include/asm-generic/io.h:542:14: error: call to '_inb' declared with attribute error: inb()) requires CONFIG_HAS_IOPORT
542 | #define _inb _inb
| ^
include/asm-generic/io.h:643:13: note: in expansion of macro '_inb'
643 | #define inb _inb
| ^~~~
include/asm-generic/io.h:670:16: note: in expansion of macro 'inb'
670 | return inb(addr);
| ^~~
In function 'inb_p',
inlined from 'sonypi_ec_read' at drivers/char/sonypi.c:533:2:
>> include/asm-generic/io.h:542:14: error: call to '_inb' declared with attribute error: inb()) requires CONFIG_HAS_IOPORT
542 | #define _inb _inb
| ^
include/asm-generic/io.h:643:13: note: in expansion of macro '_inb'
643 | #define inb _inb
| ^~~~
include/asm-generic/io.h:670:16: note: in expansion of macro 'inb'
670 | return inb(addr);
| ^~~
In function 'outb_p',
inlined from 'sonypi_ec_read' at drivers/char/sonypi.c:534:2:
>> include/asm-generic/io.h:596:15: error: call to '_outb' declared with attribute error: outb() requires CONFIG_HAS_IOPORT
596 | #define _outb _outb
| ^
include/asm-generic/io.h:655:14: note: in expansion of macro '_outb'
655 | #define outb _outb
| ^~~~~
include/asm-generic/io.h:694:9: note: in expansion of macro 'outb'
694 | outb(value, addr);
| ^~~~
In function 'inb_p',
inlined from 'sonypi_ec_read' at drivers/char/sonypi.c:535:2:
>> include/asm-generic/io.h:542:14: error: call to '_inb' declared with attribute error: inb()) requires CONFIG_HAS_IOPORT
542 | #define _inb _inb
| ^
include/asm-generic/io.h:643:13: note: in expansion of macro '_inb'
643 | #define inb _inb
| ^~~~
include/asm-generic/io.h:670:16: note: in expansion of macro 'inb'
670 | return inb(addr);
| ^~~
In function 'outb_p',
inlined from 'sonypi_ec_read' at drivers/char/sonypi.c:536:2:
>> include/asm-generic/io.h:596:15: error: call to '_outb' declared with attribute error: outb() requires CONFIG_HAS_IOPORT
596 | #define _outb _outb
| ^
include/asm-generic/io.h:655:14: note: in expansion of macro '_outb'
655 | #define outb _outb
| ^~~~~
include/asm-generic/io.h:694:9: note: in expansion of macro 'outb'
694 | outb(value, addr);
| ^~~~
In function 'inb_p',
inlined from 'sonypi_ec_read' at drivers/char/sonypi.c:537:2:
>> include/asm-generic/io.h:542:14: error: call to '_inb' declared with attribute error: inb()) requires CONFIG_HAS_IOPORT
542 | #define _inb _inb
| ^
include/asm-generic/io.h:643:13: note: in expansion of macro '_inb'
643 | #define inb _inb
| ^~~~
include/asm-generic/io.h:670:16: note: in expansion of macro 'inb'
670 | return inb(addr);
| ^~~
In function 'inb_p',
inlined from 'sonypi_ec_read' at drivers/char/sonypi.c:538:11:
>> include/asm-generic/io.h:542:14: error: call to '_inb' declared with attribute error: inb()) requires CONFIG_HAS_IOPORT
542 | #define _inb _inb
| ^
include/asm-generic/io.h:643:13: note: in expansion of macro '_inb'
643 | #define inb _inb
| ^~~~
include/asm-generic/io.h:670:16: note: in expansion of macro 'inb'
670 | return inb(addr);
| ^~~
In function 'inb_p',
inlined from 'sonypi_ec_write' at drivers/char/sonypi.c:517:2:
>> include/asm-generic/io.h:542:14: error: call to '_inb' declared with attribute error: inb()) requires CONFIG_HAS_IOPORT
542 | #define _inb _inb
| ^
include/asm-generic/io.h:643:13: note: in expansion of macro '_inb'
643 | #define inb _inb
| ^~~~
include/asm-generic/io.h:670:16: note: in expansion of macro 'inb'
670 | return inb(addr);
| ^~~
In function 'outb_p',
inlined from 'sonypi_ec_write' at drivers/char/sonypi.c:518:2:
>> include/asm-generic/io.h:596:15: error: call to '_outb' declared with attribute error: outb() requires CONFIG_HAS_IOPORT
596 | #define _outb _outb
| ^
include/asm-generic/io.h:655:14: note: in expansion of macro '_outb'
655 | #define outb _outb
| ^~~~~
include/asm-generic/io.h:694:9: note: in expansion of macro 'outb'
694 | outb(value, addr);
| ^~~~
In function 'inb_p',
inlined from 'sonypi_ec_write' at drivers/char/sonypi.c:519:2:
>> include/asm-generic/io.h:542:14: error: call to '_inb' declared with attribute error: inb()) requires CONFIG_HAS_IOPORT
542 | #define _inb _inb
| ^
include/asm-generic/io.h:643:13: note: in expansion of macro '_inb'
643 | #define inb _inb
| ^~~~
include/asm-generic/io.h:670:16: note: in expansion of macro 'inb'
670 | return inb(addr);
| ^~~
In function 'outb_p',
inlined from 'sonypi_ec_write' at drivers/char/sonypi.c:520:2:
include/asm-generic/io.h:596:15: error: call to '_outb' declared with attribute error: outb() requires CONFIG_HAS_IOPORT
596 | #define _outb _outb
| ^
include/asm-generic/io.h:655:14: note: in expansion of macro '_outb'
655 | #define outb _outb
| ^~~~~
include/asm-generic/io.h:694:9: note: in expansion of macro 'outb'
694 | outb(value, addr);
| ^~~~
In function 'inb_p',
inlined from 'sonypi_ec_write' at drivers/char/sonypi.c:521:2:
include/asm-generic/io.h:542:14: error: call to '_inb' declared with attribute error: inb()) requires CONFIG_HAS_IOPORT
542 | #define _inb _inb
| ^
include/asm-generic/io.h:643:13: note: in expansion of macro '_inb'
643 | #define inb _inb
| ^~~~
include/asm-generic/io.h:670:16: note: in expansion of macro 'inb'
670 | return inb(addr);
| ^~~
In function 'outb_p',
inlined from 'sonypi_ec_write' at drivers/char/sonypi.c:522:2:
include/asm-generic/io.h:596:15: error: call to '_outb' declared with attribute error: outb() requires CONFIG_HAS_IOPORT
596 | #define _outb _outb
| ^
include/asm-generic/io.h:655:14: note: in expansion of macro '_outb'
655 | #define outb _outb
| ^~~~~
include/asm-generic/io.h:694:9: note: in expansion of macro 'outb'
694 | outb(value, addr);
| ^~~~
In function 'inb_p',
inlined from 'sonypi_ec_write' at drivers/char/sonypi.c:523:2:
include/asm-generic/io.h:542:14: error: call to '_inb' declared with attribute error: inb()) requires CONFIG_HAS_IOPORT
542 | #define _inb _inb
| ^
include/asm-generic/io.h:643:13: note: in expansion of macro '_inb'
643 | #define inb _inb
| ^~~~
include/asm-generic/io.h:670:16: note: in expansion of macro 'inb'
670 | return inb(addr);
| ^~~
In function 'inb_p',
inlined from 'sonypi_call3' at drivers/char/sonypi.c:663:2,
inlined from 'sonypi_set' at drivers/char/sonypi.c:693:2:
include/asm-generic/io.h:542:14: error: call to '_inb' declared with attribute error: inb()) requires CONFIG_HAS_IOPORT
542 | #define _inb _inb
| ^
include/asm-generic/io.h:643:13: note: in expansion of macro '_inb'
643 | #define inb _inb
| ^~~~
include/asm-generic/io.h:670:16: note: in expansion of macro 'inb'
670 | return inb(addr);
| ^~~
In function 'sonypi_call3',
inlined from 'sonypi_set' at drivers/char/sonypi.c:693:2:
include/asm-generic/io.h:596:15: error: call to '_outb' declared with attribute error: outb() requires CONFIG_HAS_IOPORT
596 | #define _outb _outb
include/asm-generic/io.h:655:14: note: in expansion of macro '_outb'
655 | #define outb _outb
| ^~~~~
drivers/char/sonypi.c:664:9: note: in expansion of macro 'outb'
664 | outb(dev, sonypi_device.ioport2);
| ^~~~
In function 'inb_p',
inlined from 'sonypi_call3' at drivers/char/sonypi.c:665:2,
inlined from 'sonypi_set' at drivers/char/sonypi.c:693:2:
include/asm-generic/io.h:542:14: error: call to '_inb' declared with attribute error: inb()) requires CONFIG_HAS_IOPORT
542 | #define _inb _inb
| ^
include/asm-generic/io.h:643:13: note: in expansion of macro '_inb'
643 | #define inb _inb
| ^~~~
include/asm-generic/io.h:670:16: note: in expansion of macro 'inb'
670 | return inb(addr);
| ^~~
In function 'sonypi_call3',
inlined from 'sonypi_set' at drivers/char/sonypi.c:693:2:
include/asm-generic/io.h:596:15: error: call to '_outb' declared with attribute error: outb() requires CONFIG_HAS_IOPORT
596 | #define _outb _outb
include/asm-generic/io.h:655:14: note: in expansion of macro '_outb'
655 | #define outb _outb
| ^~~~~
drivers/char/sonypi.c:666:9: note: in expansion of macro 'outb'
666 | outb(fn, sonypi_device.ioport1);
| ^~~~
In function 'inb_p',
inlined from 'sonypi_call3' at drivers/char/sonypi.c:667:2,
inlined from 'sonypi_set' at drivers/char/sonypi.c:693:2:
include/asm-generic/io.h:542:14: error: call to '_inb' declared with attribute error: inb()) requires CONFIG_HAS_IOPORT
..
vim +/_inb +542 include/asm-generic/io.h
3f7e212df82ca0 Arnd Bergmann 2009-05-13 534
9216efafc52ff9 Thierry Reding 2014-10-01 535 /*
9216efafc52ff9 Thierry Reding 2014-10-01 536 * {in,out}{b,w,l}() access little endian I/O. {in,out}{b,w,l}_p() can be
9216efafc52ff9 Thierry Reding 2014-10-01 537 * implemented on hardware that needs an additional delay for I/O accesses to
9216efafc52ff9 Thierry Reding 2014-10-01 538 * take effect.
9216efafc52ff9 Thierry Reding 2014-10-01 539 */
9216efafc52ff9 Thierry Reding 2014-10-01 540
f009c89df79abe John Garry 2020-03-28 541 #if !defined(inb) && !defined(_inb)
f009c89df79abe John Garry 2020-03-28 @542 #define _inb _inb
6f043e75744596 Niklas Schnelle 2024-10-24 543 #ifdef CONFIG_HAS_IOPORT
214ba3584b2e2c Stafford Horne 2020-07-26 544 static inline u8 _inb(unsigned long addr)
9216efafc52ff9 Thierry Reding 2014-10-01 545 {
87fe2d543f8173 Sinan Kaya 2018-04-05 546 u8 val;
87fe2d543f8173 Sinan Kaya 2018-04-05 547
87fe2d543f8173 Sinan Kaya 2018-04-05 548 __io_pbr();
87fe2d543f8173 Sinan Kaya 2018-04-05 549 val = __raw_readb(PCI_IOBASE + addr);
abbbbc83a210e9 Will Deacon 2019-02-22 550 __io_par(val);
87fe2d543f8173 Sinan Kaya 2018-04-05 551 return val;
9216efafc52ff9 Thierry Reding 2014-10-01 552 }
6f043e75744596 Niklas Schnelle 2024-10-24 553 #else
6f043e75744596 Niklas Schnelle 2024-10-24 554 u8 _inb(unsigned long addr)
6f043e75744596 Niklas Schnelle 2024-10-24 555 __compiletime_error("inb()) requires CONFIG_HAS_IOPORT");
6f043e75744596 Niklas Schnelle 2024-10-24 556 #endif
9216efafc52ff9 Thierry Reding 2014-10-01 557 #endif
9216efafc52ff9 Thierry Reding 2014-10-01 558
f009c89df79abe John Garry 2020-03-28 559 #if !defined(inw) && !defined(_inw)
f009c89df79abe John Garry 2020-03-28 560 #define _inw _inw
6f043e75744596 Niklas Schnelle 2024-10-24 561 #ifdef CONFIG_HAS_IOPORT
f009c89df79abe John Garry 2020-03-28 562 static inline u16 _inw(unsigned long addr)
9216efafc52ff9 Thierry Reding 2014-10-01 563 {
87fe2d543f8173 Sinan Kaya 2018-04-05 564 u16 val;
87fe2d543f8173 Sinan Kaya 2018-04-05 565
87fe2d543f8173 Sinan Kaya 2018-04-05 566 __io_pbr();
c1d55d50139bea Stafford Horne 2020-07-29 567 val = __le16_to_cpu((__le16 __force)__raw_readw(PCI_IOBASE + addr));
abbbbc83a210e9 Will Deacon 2019-02-22 568 __io_par(val);
87fe2d543f8173 Sinan Kaya 2018-04-05 569 return val;
9216efafc52ff9 Thierry Reding 2014-10-01 570 }
6f043e75744596 Niklas Schnelle 2024-10-24 571 #else
6f043e75744596 Niklas Schnelle 2024-10-24 572 u16 _inw(unsigned long addr)
6f043e75744596 Niklas Schnelle 2024-10-24 573 __compiletime_error("inw() requires CONFIG_HAS_IOPORT");
6f043e75744596 Niklas Schnelle 2024-10-24 574 #endif
9216efafc52ff9 Thierry Reding 2014-10-01 575 #endif
9216efafc52ff9 Thierry Reding 2014-10-01 576
f009c89df79abe John Garry 2020-03-28 577 #if !defined(inl) && !defined(_inl)
f009c89df79abe John Garry 2020-03-28 @578 #define _inl _inl
6f043e75744596 Niklas Schnelle 2024-10-24 579 #ifdef CONFIG_HAS_IOPORT
214ba3584b2e2c Stafford Horne 2020-07-26 580 static inline u32 _inl(unsigned long addr)
9216efafc52ff9 Thierry Reding 2014-10-01 581 {
87fe2d543f8173 Sinan Kaya 2018-04-05 582 u32 val;
87fe2d543f8173 Sinan Kaya 2018-04-05 583
87fe2d543f8173 Sinan Kaya 2018-04-05 584 __io_pbr();
c1d55d50139bea Stafford Horne 2020-07-29 585 val = __le32_to_cpu((__le32 __force)__raw_readl(PCI_IOBASE + addr));
abbbbc83a210e9 Will Deacon 2019-02-22 586 __io_par(val);
87fe2d543f8173 Sinan Kaya 2018-04-05 587 return val;
9216efafc52ff9 Thierry Reding 2014-10-01 588 }
6f043e75744596 Niklas Schnelle 2024-10-24 589 #else
6f043e75744596 Niklas Schnelle 2024-10-24 590 u32 _inl(unsigned long addr)
6f043e75744596 Niklas Schnelle 2024-10-24 591 __compiletime_error("inl() requires CONFIG_HAS_IOPORT");
6f043e75744596 Niklas Schnelle 2024-10-24 592 #endif
9216efafc52ff9 Thierry Reding 2014-10-01 593 #endif
9216efafc52ff9 Thierry Reding 2014-10-01 594
f009c89df79abe John Garry 2020-03-28 595 #if !defined(outb) && !defined(_outb)
f009c89df79abe John Garry 2020-03-28 @596 #define _outb _outb
6f043e75744596 Niklas Schnelle 2024-10-24 597 #ifdef CONFIG_HAS_IOPORT
f009c89df79abe John Garry 2020-03-28 598 static inline void _outb(u8 value, unsigned long addr)
9216efafc52ff9 Thierry Reding 2014-10-01 599 {
a7851aa54c0cdd Sinan Kaya 2018-04-05 600 __io_pbw();
a7851aa54c0cdd Sinan Kaya 2018-04-05 601 __raw_writeb(value, PCI_IOBASE + addr);
a7851aa54c0cdd Sinan Kaya 2018-04-05 602 __io_paw();
9216efafc52ff9 Thierry Reding 2014-10-01 603 }
6f043e75744596 Niklas Schnelle 2024-10-24 604 #else
6f043e75744596 Niklas Schnelle 2024-10-24 605 void _outb(u8 value, unsigned long addr)
6f043e75744596 Niklas Schnelle 2024-10-24 606 __compiletime_error("outb() requires CONFIG_HAS_IOPORT");
6f043e75744596 Niklas Schnelle 2024-10-24 607 #endif
9216efafc52ff9 Thierry Reding 2014-10-01 608 #endif
9216efafc52ff9 Thierry Reding 2014-10-01 609
f009c89df79abe John Garry 2020-03-28 610 #if !defined(outw) && !defined(_outw)
f009c89df79abe John Garry 2020-03-28 611 #define _outw _outw
6f043e75744596 Niklas Schnelle 2024-10-24 612 #ifdef CONFIG_HAS_IOPORT
f009c89df79abe John Garry 2020-03-28 613 static inline void _outw(u16 value, unsigned long addr)
9216efafc52ff9 Thierry Reding 2014-10-01 614 {
a7851aa54c0cdd Sinan Kaya 2018-04-05 615 __io_pbw();
c1d55d50139bea Stafford Horne 2020-07-29 616 __raw_writew((u16 __force)cpu_to_le16(value), PCI_IOBASE + addr);
a7851aa54c0cdd Sinan Kaya 2018-04-05 617 __io_paw();
9216efafc52ff9 Thierry Reding 2014-10-01 618 }
6f043e75744596 Niklas Schnelle 2024-10-24 619 #else
6f043e75744596 Niklas Schnelle 2024-10-24 620 void _outw(u16 value, unsigned long addr)
6f043e75744596 Niklas Schnelle 2024-10-24 621 __compiletime_error("outw() requires CONFIG_HAS_IOPORT");
6f043e75744596 Niklas Schnelle 2024-10-24 622 #endif
9216efafc52ff9 Thierry Reding 2014-10-01 623 #endif
9216efafc52ff9 Thierry Reding 2014-10-01 624
f009c89df79abe John Garry 2020-03-28 625 #if !defined(outl) && !defined(_outl)
f009c89df79abe John Garry 2020-03-28 @626 #define _outl _outl
6f043e75744596 Niklas Schnelle 2024-10-24 627 #ifdef CONFIG_HAS_IOPORT
f009c89df79abe John Garry 2020-03-28 628 static inline void _outl(u32 value, unsigned long addr)
9216efafc52ff9 Thierry Reding 2014-10-01 629 {
a7851aa54c0cdd Sinan Kaya 2018-04-05 630 __io_pbw();
c1d55d50139bea Stafford Horne 2020-07-29 631 __raw_writel((u32 __force)cpu_to_le32(value), PCI_IOBASE + addr);
a7851aa54c0cdd Sinan Kaya 2018-04-05 632 __io_paw();
9216efafc52ff9 Thierry Reding 2014-10-01 633 }
6f043e75744596 Niklas Schnelle 2024-10-24 634 #else
6f043e75744596 Niklas Schnelle 2024-10-24 635 void _outl(u32 value, unsigned long addr)
6f043e75744596 Niklas Schnelle 2024-10-24 636 __compiletime_error("outl() requires CONFIG_HAS_IOPORT");
6f043e75744596 Niklas Schnelle 2024-10-24 637 #endif
9216efafc52ff9 Thierry Reding 2014-10-01 638 #endif
9216efafc52ff9 Thierry Reding 2014-10-01 639
:::::: The code at line 542 was first introduced by commit
:::::: f009c89df79abea5f5244b8135a205f7d4352f86 io: Provide _inX() and _outX()
:::::: TO: John Garry <john.garry@huawei.com>
:::::: CC: Wei Xu <xuwei5@hisilicon.com>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: include/asm-generic/io.h:542:14: error: call to '_inb' declared with attribute error: inb()) requires CONFIG_HAS_IOPORT
2025-06-05 23:02 include/asm-generic/io.h:542:14: error: call to '_inb' declared with attribute error: inb()) requires CONFIG_HAS_IOPORT kernel test robot
@ 2025-06-06 7:46 ` Arnd Bergmann
0 siblings, 0 replies; 3+ messages in thread
From: Arnd Bergmann @ 2025-06-06 7:46 UTC (permalink / raw)
To: kernel test robot; +Cc: oe-kbuild-all, linux-kernel, Johannes Berg
On Fri, Jun 6, 2025, at 01:02, kernel test robot wrote:
> commit: b8c9c3b822fe8e033b9802516f6466099d915488 um: stop using PCI
> port I/O
> In function 'inb_p',
> inlined from 'sonypi_irq' at drivers/char/sonypi.c:831:7:
>>> include/asm-generic/io.h:542:14: error: call to '_inb' declared with attribute error: inb()) requires CONFIG_HAS_IOPORT
It appears that there are some drivers that are only built when
targetting i386 but that now fail to build for UM. I'll send
these three fixups, which should be enough to fix a
'make ARCH=um SUBARCH=i386 allmodconfig' build.
Arnd
diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig
index f2a68a0a8c93..a20b353ffddf 100644
--- a/drivers/char/Kconfig
+++ b/drivers/char/Kconfig
@@ -238,6 +238,7 @@ config APPLICOM
config SONYPI
tristate "Sony Vaio Programmable I/O Control Device support"
depends on X86_32 && PCI && INPUT
+ depends on HAS_IOPORT
depends on ACPI_EC || !ACPI
help
This driver enables access to the Sony Programmable I/O Control
diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig
index bec3bffca808..464ed9bf9114 100644
--- a/drivers/i2c/busses/Kconfig
+++ b/drivers/i2c/busses/Kconfig
@@ -1531,6 +1531,7 @@ config I2C_XGENE_SLIMPRO
config SCx200_ACB
tristate "Geode ACCESS.bus support"
depends on X86_32 && PCI
+ depends on HAS_IOPORT
help
Enable the use of the ACCESS.bus controllers on the Geode SCx200 and
SC1100 processors and the CS5535 and CS5536 Geode companion devices.
diff --git a/drivers/video/fbdev/nvidia/nv_local.h b/drivers/video/fbdev/nvidia/nv_local.h
index 68e508daa417..93aff35305a9 100644
--- a/drivers/video/fbdev/nvidia/nv_local.h
+++ b/drivers/video/fbdev/nvidia/nv_local.h
@@ -80,7 +80,7 @@
(par)->dmaFree -= ((size) + 1); \
}
-#if defined(__i386__)
+#if defined(__i386__) && !defined(CONFIG_UML)
#define _NV_FENCE() outb(0, 0x3D0);
#else
#define _NV_FENCE() mb();
diff --git a/drivers/ata/Kconfig b/drivers/ata/Kconfig
index e00536b49552..329aa9016553 100644
--- a/drivers/ata/Kconfig
+++ b/drivers/ata/Kconfig
@@ -650,6 +650,7 @@ config PATA_CS5535
config PATA_CS5536
tristate "CS5536 PATA support"
depends on PCI && (X86_32 || MIPS || COMPILE_TEST)
+ depends on HAS_IOPORT
help
This option enables support for the AMD CS5536
companion chip used with the Geode LX processor family.
diff --git a/drivers/ata/pata_cs5536.c b/drivers/ata/pata_cs5536.c
index b811efd2cc34..4a9fb4249caf 100644
--- a/drivers/ata/pata_cs5536.c
+++ b/drivers/ata/pata_cs5536.c
@@ -27,7 +27,7 @@
#include <scsi/scsi_host.h>
#include <linux/dmi.h>
-#ifdef CONFIG_X86_32
+#if defined(CONFIG_X86_32) && !defined(CONFIG_UML)
#include <asm/msr.h>
static int use_msr;
module_param_named(msr, use_msr, int, 0644);
^ permalink raw reply [flat|nested] 3+ messages in thread
* include/asm-generic/io.h:542:14: error: call to '_inb' declared with attribute error: inb()) requires CONFIG_HAS_IOPORT
@ 2025-11-10 23:00 kernel test robot
0 siblings, 0 replies; 3+ messages in thread
From: kernel test robot @ 2025-11-10 23:00 UTC (permalink / raw)
To: Niklas Schnelle
Cc: oe-kbuild-all, linux-kernel, Arnd Bergmann, Takashi Iwai,
Ville Syrjälä,
Jarkko Sakkinen
Hi Niklas,
FYI, the error/warning still remains.
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 4ea7c1717f3f2344f7a1cdab4f5875cfa89c87a9
commit: 6f043e75744596968b6547c4bd43e4d30bbb6d6e asm-generic/io.h: Remove I/O port accessors for HAS_IOPORT=n
date: 1 year ago
config: m68k-randconfig-r054-20251111 (https://download.01.org/0day-ci/archive/20251111/202511110659.0E0b38nM-lkp@intel.com/config)
compiler: m68k-linux-gcc (GCC) 8.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251111/202511110659.0E0b38nM-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/202511110659.0E0b38nM-lkp@intel.com/
All errors (new ones prefixed by >>):
In file included from arch/m68k/include/asm/io.h:14,
from arch/m68k/include/asm/pgtable_no.h:14,
from arch/m68k/include/asm/pgtable.h:8,
from include/linux/pgtable.h:6,
from include/linux/mm.h:30,
from arch/m68k/include/asm/cacheflush_no.h:8,
from arch/m68k/include/asm/cacheflush.h:3,
from include/linux/cacheflush.h:5,
from include/linux/highmem.h:8,
from include/linux/bvec.h:10,
from include/linux/skbuff.h:17,
from include/net/net_namespace.h:43,
from include/linux/netdevice.h:38,
from drivers/net/ethernet/8390/mcf8390.c:15:
drivers/net/ethernet/8390/lib8390.c: In function '__ei_get_stats':
>> include/asm-generic/io.h:542:14: error: call to '_inb' declared with attribute error: inb()) requires CONFIG_HAS_IOPORT
#define _inb _inb
include/asm-generic/io.h:643:13: note: in expansion of macro '_inb'
#define inb _inb
^~~~
drivers/net/ethernet/8390/mcf8390.c:131:17: note: in expansion of macro 'inb'
#define ei_inb inb
^~~
drivers/net/ethernet/8390/mcf8390.c:140:18: note: in expansion of macro 'ei_inb'
#define ei_inb_p ei_inb
^~~~~~
drivers/net/ethernet/8390/lib8390.c:868:33: note: in expansion of macro 'ei_inb_p'
dev->stats.rx_frame_errors += ei_inb_p(ioaddr + EN0_COUNTER0);
^~~~~~~~
>> include/asm-generic/io.h:542:14: error: call to '_inb' declared with attribute error: inb()) requires CONFIG_HAS_IOPORT
#define _inb _inb
include/asm-generic/io.h:643:13: note: in expansion of macro '_inb'
#define inb _inb
^~~~
drivers/net/ethernet/8390/mcf8390.c:131:17: note: in expansion of macro 'inb'
#define ei_inb inb
^~~
drivers/net/ethernet/8390/mcf8390.c:140:18: note: in expansion of macro 'ei_inb'
#define ei_inb_p ei_inb
^~~~~~
drivers/net/ethernet/8390/lib8390.c:869:33: note: in expansion of macro 'ei_inb_p'
dev->stats.rx_crc_errors += ei_inb_p(ioaddr + EN0_COUNTER1);
^~~~~~~~
>> include/asm-generic/io.h:542:14: error: call to '_inb' declared with attribute error: inb()) requires CONFIG_HAS_IOPORT
#define _inb _inb
include/asm-generic/io.h:643:13: note: in expansion of macro '_inb'
#define inb _inb
^~~~
drivers/net/ethernet/8390/mcf8390.c:131:17: note: in expansion of macro 'inb'
#define ei_inb inb
^~~
drivers/net/ethernet/8390/mcf8390.c:140:18: note: in expansion of macro 'ei_inb'
#define ei_inb_p ei_inb
^~~~~~
drivers/net/ethernet/8390/lib8390.c:870:33: note: in expansion of macro 'ei_inb_p'
dev->stats.rx_missed_errors += ei_inb_p(ioaddr + EN0_COUNTER2);
^~~~~~~~
drivers/net/ethernet/8390/lib8390.c: In function 'NS8390_trigger_send':
>> include/asm-generic/io.h:596:15: error: call to '_outb' declared with attribute error: outb() requires CONFIG_HAS_IOPORT
#define _outb _outb
include/asm-generic/io.h:655:14: note: in expansion of macro '_outb'
#define outb _outb
^~~~~
drivers/net/ethernet/8390/mcf8390.c:132:18: note: in expansion of macro 'outb'
#define ei_outb outb
^~~~
drivers/net/ethernet/8390/mcf8390.c:141:19: note: in expansion of macro 'ei_outb'
#define ei_outb_p ei_outb
^~~~~~~
drivers/net/ethernet/8390/lib8390.c:1081:2: note: in expansion of macro 'ei_outb_p'
ei_outb_p(E8390_NODMA+E8390_PAGE0, e8390_base+E8390_CMD);
^~~~~~~~~
>> include/asm-generic/io.h:542:14: error: call to '_inb' declared with attribute error: inb()) requires CONFIG_HAS_IOPORT
#define _inb _inb
include/asm-generic/io.h:643:13: note: in expansion of macro '_inb'
#define inb _inb
^~~~
drivers/net/ethernet/8390/mcf8390.c:131:17: note: in expansion of macro 'inb'
#define ei_inb inb
^~~
drivers/net/ethernet/8390/mcf8390.c:140:18: note: in expansion of macro 'ei_inb'
#define ei_inb_p ei_inb
^~~~~~
drivers/net/ethernet/8390/lib8390.c:1083:6: note: in expansion of macro 'ei_inb_p'
if (ei_inb_p(e8390_base + E8390_CMD) & E8390_TRANS) {
^~~~~~~~
>> include/asm-generic/io.h:596:15: error: call to '_outb' declared with attribute error: outb() requires CONFIG_HAS_IOPORT
#define _outb _outb
include/asm-generic/io.h:655:14: note: in expansion of macro '_outb'
#define outb _outb
^~~~~
drivers/net/ethernet/8390/mcf8390.c:132:18: note: in expansion of macro 'outb'
#define ei_outb outb
^~~~
drivers/net/ethernet/8390/mcf8390.c:141:19: note: in expansion of macro 'ei_outb'
#define ei_outb_p ei_outb
^~~~~~~
drivers/net/ethernet/8390/lib8390.c:1087:2: note: in expansion of macro 'ei_outb_p'
ei_outb_p(length & 0xff, e8390_base + EN0_TCNTLO);
^~~~~~~~~
>> include/asm-generic/io.h:596:15: error: call to '_outb' declared with attribute error: outb() requires CONFIG_HAS_IOPORT
#define _outb _outb
include/asm-generic/io.h:655:14: note: in expansion of macro '_outb'
#define outb _outb
^~~~~
drivers/net/ethernet/8390/mcf8390.c:132:18: note: in expansion of macro 'outb'
#define ei_outb outb
^~~~
drivers/net/ethernet/8390/mcf8390.c:141:19: note: in expansion of macro 'ei_outb'
#define ei_outb_p ei_outb
^~~~~~~
drivers/net/ethernet/8390/lib8390.c:1088:2: note: in expansion of macro 'ei_outb_p'
ei_outb_p(length >> 8, e8390_base + EN0_TCNTHI);
^~~~~~~~~
>> include/asm-generic/io.h:596:15: error: call to '_outb' declared with attribute error: outb() requires CONFIG_HAS_IOPORT
#define _outb _outb
include/asm-generic/io.h:655:14: note: in expansion of macro '_outb'
#define outb _outb
^~~~~
drivers/net/ethernet/8390/mcf8390.c:132:18: note: in expansion of macro 'outb'
#define ei_outb outb
^~~~
drivers/net/ethernet/8390/mcf8390.c:141:19: note: in expansion of macro 'ei_outb'
#define ei_outb_p ei_outb
^~~~~~~
drivers/net/ethernet/8390/lib8390.c:1089:2: note: in expansion of macro 'ei_outb_p'
ei_outb_p(start_page, e8390_base + EN0_TPSR);
^~~~~~~~~
>> include/asm-generic/io.h:596:15: error: call to '_outb' declared with attribute error: outb() requires CONFIG_HAS_IOPORT
#define _outb _outb
include/asm-generic/io.h:655:14: note: in expansion of macro '_outb'
#define outb _outb
^~~~~
drivers/net/ethernet/8390/mcf8390.c:132:18: note: in expansion of macro 'outb'
#define ei_outb outb
^~~~
drivers/net/ethernet/8390/mcf8390.c:141:19: note: in expansion of macro 'ei_outb'
#define ei_outb_p ei_outb
^~~~~~~
drivers/net/ethernet/8390/lib8390.c:1090:2: note: in expansion of macro 'ei_outb_p'
ei_outb_p(E8390_NODMA+E8390_TRANS+E8390_START, e8390_base+E8390_CMD);
^~~~~~~~~
drivers/net/ethernet/8390/mcf8390.c: In function 'mcf8390_reset_8390':
>> include/asm-generic/io.h:542:14: error: call to '_inb' declared with attribute error: inb()) requires CONFIG_HAS_IOPORT
#define _inb _inb
include/asm-generic/io.h:643:13: note: in expansion of macro '_inb'
#define inb _inb
^~~~
drivers/net/ethernet/8390/mcf8390.c:131:17: note: in expansion of macro 'inb'
#define ei_inb inb
^~~
drivers/net/ethernet/8390/mcf8390.c:157:10: note: in expansion of macro 'ei_inb'
ei_outb(ei_inb(addr + NE_RESET), addr + NE_RESET);
^~~~~~
>> include/asm-generic/io.h:596:15: error: call to '_outb' declared with attribute error: outb() requires CONFIG_HAS_IOPORT
#define _outb _outb
include/asm-generic/io.h:655:14: note: in expansion of macro '_outb'
#define outb _outb
^~~~~
drivers/net/ethernet/8390/mcf8390.c:132:18: note: in expansion of macro 'outb'
#define ei_outb outb
^~~~
drivers/net/ethernet/8390/mcf8390.c:157:2: note: in expansion of macro 'ei_outb'
ei_outb(ei_inb(addr + NE_RESET), addr + NE_RESET);
^~~~~~~
>> include/asm-generic/io.h:542:14: error: call to '_inb' declared with attribute error: inb()) requires CONFIG_HAS_IOPORT
#define _inb _inb
include/asm-generic/io.h:643:13: note: in expansion of macro '_inb'
#define inb _inb
^~~~
drivers/net/ethernet/8390/mcf8390.c:131:17: note: in expansion of macro 'inb'
#define ei_inb inb
^~~
drivers/net/ethernet/8390/mcf8390.c:163:10: note: in expansion of macro 'ei_inb'
while ((ei_inb(addr + NE_EN0_ISR) & ENISR_RESET) == 0) {
^~~~~~
>> include/asm-generic/io.h:596:15: error: call to '_outb' declared with attribute error: outb() requires CONFIG_HAS_IOPORT
#define _outb _outb
include/asm-generic/io.h:655:14: note: in expansion of macro '_outb'
#define outb _outb
^~~~~
drivers/net/ethernet/8390/mcf8390.c:132:18: note: in expansion of macro 'outb'
#define ei_outb outb
^~~~
drivers/net/ethernet/8390/mcf8390.c:170:2: note: in expansion of macro 'ei_outb'
ei_outb(ENISR_RESET, addr + NE_EN0_ISR);
^~~~~~~
drivers/net/ethernet/8390/lib8390.c: In function '__ei_start_xmit':
>> include/asm-generic/io.h:596:15: error: call to '_outb' declared with attribute error: outb() requires CONFIG_HAS_IOPORT
#define _outb _outb
include/asm-generic/io.h:655:14: note: in expansion of macro '_outb'
#define outb _outb
^~~~~
drivers/net/ethernet/8390/mcf8390.c:132:18: note: in expansion of macro 'outb'
#define ei_outb outb
^~~~
drivers/net/ethernet/8390/mcf8390.c:141:19: note: in expansion of macro 'ei_outb'
#define ei_outb_p ei_outb
^~~~~~~
drivers/net/ethernet/8390/lib8390.c:325:2: note: in expansion of macro 'ei_outb_p'
ei_outb_p(0x00, e8390_base + EN0_IMR);
^~~~~~~~~
>> include/asm-generic/io.h:596:15: error: call to '_outb' declared with attribute error: outb() requires CONFIG_HAS_IOPORT
#define _outb _outb
include/asm-generic/io.h:655:14: note: in expansion of macro '_outb'
#define outb _outb
^~~~~
drivers/net/ethernet/8390/mcf8390.c:132:18: note: in expansion of macro 'outb'
#define ei_outb outb
^~~~
drivers/net/ethernet/8390/mcf8390.c:141:19: note: in expansion of macro 'ei_outb'
#define ei_outb_p ei_outb
^~~~~~~
drivers/net/ethernet/8390/lib8390.c:369:3: note: in expansion of macro 'ei_outb_p'
ei_outb_p(ENISR_ALL, e8390_base + EN0_IMR);
^~~~~~~~~
>> include/asm-generic/io.h:596:15: error: call to '_outb' declared with attribute error: outb() requires CONFIG_HAS_IOPORT
#define _outb _outb
include/asm-generic/io.h:655:14: note: in expansion of macro '_outb'
#define outb _outb
^~~~~
drivers/net/ethernet/8390/mcf8390.c:132:18: note: in expansion of macro 'outb'
#define ei_outb outb
^~~~
drivers/net/ethernet/8390/mcf8390.c:141:19: note: in expansion of macro 'ei_outb'
#define ei_outb_p ei_outb
^~~~~~~
drivers/net/ethernet/8390/lib8390.c:404:2: note: in expansion of macro 'ei_outb_p'
ei_outb_p(ENISR_ALL, e8390_base + EN0_IMR);
^~~~~~~~~
drivers/net/ethernet/8390/lib8390.c: In function 'ei_receive':
>> include/asm-generic/io.h:596:15: error: call to '_outb' declared with attribute error: outb() requires CONFIG_HAS_IOPORT
#define _outb _outb
include/asm-generic/io.h:655:14: note: in expansion of macro '_outb'
#define outb _outb
^~~~~
drivers/net/ethernet/8390/mcf8390.c:132:18: note: in expansion of macro 'outb'
#define ei_outb outb
^~~~
drivers/net/ethernet/8390/mcf8390.c:141:19: note: in expansion of macro 'ei_outb'
#define ei_outb_p ei_outb
^~~~~~~
drivers/net/ethernet/8390/lib8390.c:673:3: note: in expansion of macro 'ei_outb_p'
ei_outb_p(E8390_NODMA+E8390_PAGE1, e8390_base + E8390_CMD);
^~~~~~~~~
>> include/asm-generic/io.h:542:14: error: call to '_inb' declared with attribute error: inb()) requires CONFIG_HAS_IOPORT
#define _inb _inb
include/asm-generic/io.h:643:13: note: in expansion of macro '_inb'
#define inb _inb
^~~~
drivers/net/ethernet/8390/mcf8390.c:131:17: note: in expansion of macro 'inb'
#define ei_inb inb
^~~
drivers/net/ethernet/8390/mcf8390.c:140:18: note: in expansion of macro 'ei_inb'
#define ei_inb_p ei_inb
^~~~~~
drivers/net/ethernet/8390/lib8390.c:674:16: note: in expansion of macro 'ei_inb_p'
rxing_page = ei_inb_p(e8390_base + EN1_CURPAG);
^~~~~~~~
>> include/asm-generic/io.h:596:15: error: call to '_outb' declared with attribute error: outb() requires CONFIG_HAS_IOPORT
#define _outb _outb
include/asm-generic/io.h:655:14: note: in expansion of macro '_outb'
#define outb _outb
^~~~~
drivers/net/ethernet/8390/mcf8390.c:132:18: note: in expansion of macro 'outb'
#define ei_outb outb
^~~~
drivers/net/ethernet/8390/mcf8390.c:141:19: note: in expansion of macro 'ei_outb'
#define ei_outb_p ei_outb
^~~~~~~
drivers/net/ethernet/8390/lib8390.c:675:3: note: in expansion of macro 'ei_outb_p'
ei_outb_p(E8390_NODMA+E8390_PAGE0, e8390_base + E8390_CMD);
^~~~~~~~~
>> include/asm-generic/io.h:542:14: error: call to '_inb' declared with attribute error: inb()) requires CONFIG_HAS_IOPORT
#define _inb _inb
include/asm-generic/io.h:643:13: note: in expansion of macro '_inb'
#define inb _inb
^~~~
drivers/net/ethernet/8390/mcf8390.c:131:17: note: in expansion of macro 'inb'
#define ei_inb inb
^~~
drivers/net/ethernet/8390/mcf8390.c:140:18: note: in expansion of macro 'ei_inb'
#define ei_inb_p ei_inb
^~~~~~
drivers/net/ethernet/8390/lib8390.c:678:16: note: in expansion of macro 'ei_inb_p'
this_frame = ei_inb_p(e8390_base + EN0_BOUNDARY) + 1;
^~~~~~~~
include/asm-generic/io.h:596:15: error: call to '_outb' declared with attribute error: outb() requires CONFIG_HAS_IOPORT
#define _outb _outb
include/asm-generic/io.h:655:14: note: in expansion of macro '_outb'
#define outb _outb
^~~~~
drivers/net/ethernet/8390/mcf8390.c:132:18: note: in expansion of macro 'outb'
#define ei_outb outb
^~~~
drivers/net/ethernet/8390/lib8390.c:714:4: note: in expansion of macro 'ei_outb'
ei_outb(ei_local->current_page-1, e8390_base+EN0_BOUNDARY);
^~~~~~~
include/asm-generic/io.h:596:15: error: call to '_outb' declared with attribute error: outb() requires CONFIG_HAS_IOPORT
#define _outb _outb
include/asm-generic/io.h:655:14: note: in expansion of macro '_outb'
#define outb _outb
^~~~~
drivers/net/ethernet/8390/mcf8390.c:132:18: note: in expansion of macro 'outb'
#define ei_outb outb
^~~~
drivers/net/ethernet/8390/mcf8390.c:141:19: note: in expansion of macro 'ei_outb'
#define ei_outb_p ei_outb
^~~~~~~
drivers/net/ethernet/8390/lib8390.c:767:3: note: in expansion of macro 'ei_outb_p'
ei_outb_p(next_frame-1, e8390_base+EN0_BOUNDARY);
^~~~~~~~~
include/asm-generic/io.h:596:15: error: call to '_outb' declared with attribute error: outb() requires CONFIG_HAS_IOPORT
#define _outb _outb
include/asm-generic/io.h:655:14: note: in expansion of macro '_outb'
#define outb _outb
^~~~~
drivers/net/ethernet/8390/mcf8390.c:132:18: note: in expansion of macro 'outb'
#define ei_outb outb
^~~~
drivers/net/ethernet/8390/mcf8390.c:141:19: note: in expansion of macro 'ei_outb'
#define ei_outb_p ei_outb
^~~~~~~
drivers/net/ethernet/8390/lib8390.c:772:2: note: in expansion of macro 'ei_outb_p'
ei_outb_p(ENISR_RX+ENISR_RX_ERR, e8390_base+EN0_ISR);
^~~~~~~~~
drivers/net/ethernet/8390/lib8390.c: In function 'do_set_multicast_list':
include/asm-generic/io.h:596:15: error: call to '_outb' declared with attribute error: outb() requires CONFIG_HAS_IOPORT
#define _outb _outb
include/asm-generic/io.h:655:14: note: in expansion of macro '_outb'
#define outb _outb
^~~~~
drivers/net/ethernet/8390/mcf8390.c:132:18: note: in expansion of macro 'outb'
#define ei_outb outb
^~~~
drivers/net/ethernet/8390/mcf8390.c:141:19: note: in expansion of macro 'ei_outb'
#define ei_outb_p ei_outb
^~~~~~~
drivers/net/ethernet/8390/lib8390.c:930:3: note: in expansion of macro 'ei_outb_p'
ei_outb_p(E8390_RXCONFIG, e8390_base + EN0_RXCR);
^~~~~~~~~
include/asm-generic/io.h:596:15: error: call to '_outb' declared with attribute error: outb() requires CONFIG_HAS_IOPORT
#define _outb _outb
include/asm-generic/io.h:655:14: note: in expansion of macro '_outb'
#define outb _outb
^~~~~
drivers/net/ethernet/8390/mcf8390.c:132:18: note: in expansion of macro 'outb'
#define ei_outb outb
^~~~
drivers/net/ethernet/8390/mcf8390.c:141:19: note: in expansion of macro 'ei_outb'
#define ei_outb_p ei_outb
^~~~~~~
drivers/net/ethernet/8390/lib8390.c:931:2: note: in expansion of macro 'ei_outb_p'
ei_outb_p(E8390_NODMA + E8390_PAGE1, e8390_base + E8390_CMD);
^~~~~~~~~
include/asm-generic/io.h:596:15: error: call to '_outb' declared with attribute error: outb() requires CONFIG_HAS_IOPORT
#define _outb _outb
include/asm-generic/io.h:655:14: note: in expansion of macro '_outb'
#define outb _outb
^~~~~
drivers/net/ethernet/8390/mcf8390.c:132:18: note: in expansion of macro 'outb'
#define ei_outb outb
^~~~
drivers/net/ethernet/8390/mcf8390.c:141:19: note: in expansion of macro 'ei_outb'
#define ei_outb_p ei_outb
^~~~~~~
drivers/net/ethernet/8390/lib8390.c:933:3: note: in expansion of macro 'ei_outb_p'
ei_outb_p(ei_local->mcfilter[i], e8390_base + EN1_MULT_SHIFT(i));
^~~~~~~~~
include/asm-generic/io.h:596:15: error: call to '_outb' declared with attribute error: outb() requires CONFIG_HAS_IOPORT
#define _outb _outb
include/asm-generic/io.h:655:14: note: in expansion of macro '_outb'
#define outb _outb
^~~~~
vim +/_inb +542 include/asm-generic/io.h
3f7e212df82ca0 Arnd Bergmann 2009-05-13 534
9216efafc52ff9 Thierry Reding 2014-10-01 535 /*
9216efafc52ff9 Thierry Reding 2014-10-01 536 * {in,out}{b,w,l}() access little endian I/O. {in,out}{b,w,l}_p() can be
9216efafc52ff9 Thierry Reding 2014-10-01 537 * implemented on hardware that needs an additional delay for I/O accesses to
9216efafc52ff9 Thierry Reding 2014-10-01 538 * take effect.
9216efafc52ff9 Thierry Reding 2014-10-01 539 */
9216efafc52ff9 Thierry Reding 2014-10-01 540
f009c89df79abe John Garry 2020-03-28 541 #if !defined(inb) && !defined(_inb)
f009c89df79abe John Garry 2020-03-28 @542 #define _inb _inb
6f043e75744596 Niklas Schnelle 2024-10-24 543 #ifdef CONFIG_HAS_IOPORT
214ba3584b2e2c Stafford Horne 2020-07-26 544 static inline u8 _inb(unsigned long addr)
9216efafc52ff9 Thierry Reding 2014-10-01 545 {
87fe2d543f8173 Sinan Kaya 2018-04-05 546 u8 val;
87fe2d543f8173 Sinan Kaya 2018-04-05 547
87fe2d543f8173 Sinan Kaya 2018-04-05 548 __io_pbr();
87fe2d543f8173 Sinan Kaya 2018-04-05 549 val = __raw_readb(PCI_IOBASE + addr);
abbbbc83a210e9 Will Deacon 2019-02-22 550 __io_par(val);
87fe2d543f8173 Sinan Kaya 2018-04-05 551 return val;
9216efafc52ff9 Thierry Reding 2014-10-01 552 }
6f043e75744596 Niklas Schnelle 2024-10-24 553 #else
6f043e75744596 Niklas Schnelle 2024-10-24 554 u8 _inb(unsigned long addr)
6f043e75744596 Niklas Schnelle 2024-10-24 555 __compiletime_error("inb()) requires CONFIG_HAS_IOPORT");
6f043e75744596 Niklas Schnelle 2024-10-24 556 #endif
9216efafc52ff9 Thierry Reding 2014-10-01 557 #endif
9216efafc52ff9 Thierry Reding 2014-10-01 558
f009c89df79abe John Garry 2020-03-28 559 #if !defined(inw) && !defined(_inw)
f009c89df79abe John Garry 2020-03-28 560 #define _inw _inw
6f043e75744596 Niklas Schnelle 2024-10-24 561 #ifdef CONFIG_HAS_IOPORT
f009c89df79abe John Garry 2020-03-28 562 static inline u16 _inw(unsigned long addr)
9216efafc52ff9 Thierry Reding 2014-10-01 563 {
87fe2d543f8173 Sinan Kaya 2018-04-05 564 u16 val;
87fe2d543f8173 Sinan Kaya 2018-04-05 565
87fe2d543f8173 Sinan Kaya 2018-04-05 566 __io_pbr();
c1d55d50139bea Stafford Horne 2020-07-29 567 val = __le16_to_cpu((__le16 __force)__raw_readw(PCI_IOBASE + addr));
abbbbc83a210e9 Will Deacon 2019-02-22 568 __io_par(val);
87fe2d543f8173 Sinan Kaya 2018-04-05 569 return val;
9216efafc52ff9 Thierry Reding 2014-10-01 570 }
6f043e75744596 Niklas Schnelle 2024-10-24 571 #else
6f043e75744596 Niklas Schnelle 2024-10-24 572 u16 _inw(unsigned long addr)
6f043e75744596 Niklas Schnelle 2024-10-24 573 __compiletime_error("inw() requires CONFIG_HAS_IOPORT");
6f043e75744596 Niklas Schnelle 2024-10-24 574 #endif
9216efafc52ff9 Thierry Reding 2014-10-01 575 #endif
9216efafc52ff9 Thierry Reding 2014-10-01 576
f009c89df79abe John Garry 2020-03-28 577 #if !defined(inl) && !defined(_inl)
f009c89df79abe John Garry 2020-03-28 578 #define _inl _inl
6f043e75744596 Niklas Schnelle 2024-10-24 579 #ifdef CONFIG_HAS_IOPORT
214ba3584b2e2c Stafford Horne 2020-07-26 580 static inline u32 _inl(unsigned long addr)
9216efafc52ff9 Thierry Reding 2014-10-01 581 {
87fe2d543f8173 Sinan Kaya 2018-04-05 582 u32 val;
87fe2d543f8173 Sinan Kaya 2018-04-05 583
87fe2d543f8173 Sinan Kaya 2018-04-05 584 __io_pbr();
c1d55d50139bea Stafford Horne 2020-07-29 585 val = __le32_to_cpu((__le32 __force)__raw_readl(PCI_IOBASE + addr));
abbbbc83a210e9 Will Deacon 2019-02-22 586 __io_par(val);
87fe2d543f8173 Sinan Kaya 2018-04-05 587 return val;
9216efafc52ff9 Thierry Reding 2014-10-01 588 }
6f043e75744596 Niklas Schnelle 2024-10-24 589 #else
6f043e75744596 Niklas Schnelle 2024-10-24 590 u32 _inl(unsigned long addr)
6f043e75744596 Niklas Schnelle 2024-10-24 591 __compiletime_error("inl() requires CONFIG_HAS_IOPORT");
6f043e75744596 Niklas Schnelle 2024-10-24 592 #endif
9216efafc52ff9 Thierry Reding 2014-10-01 593 #endif
9216efafc52ff9 Thierry Reding 2014-10-01 594
f009c89df79abe John Garry 2020-03-28 595 #if !defined(outb) && !defined(_outb)
f009c89df79abe John Garry 2020-03-28 @596 #define _outb _outb
6f043e75744596 Niklas Schnelle 2024-10-24 597 #ifdef CONFIG_HAS_IOPORT
f009c89df79abe John Garry 2020-03-28 598 static inline void _outb(u8 value, unsigned long addr)
9216efafc52ff9 Thierry Reding 2014-10-01 599 {
a7851aa54c0cdd Sinan Kaya 2018-04-05 600 __io_pbw();
a7851aa54c0cdd Sinan Kaya 2018-04-05 601 __raw_writeb(value, PCI_IOBASE + addr);
a7851aa54c0cdd Sinan Kaya 2018-04-05 602 __io_paw();
9216efafc52ff9 Thierry Reding 2014-10-01 603 }
6f043e75744596 Niklas Schnelle 2024-10-24 604 #else
6f043e75744596 Niklas Schnelle 2024-10-24 605 void _outb(u8 value, unsigned long addr)
6f043e75744596 Niklas Schnelle 2024-10-24 606 __compiletime_error("outb() requires CONFIG_HAS_IOPORT");
6f043e75744596 Niklas Schnelle 2024-10-24 607 #endif
9216efafc52ff9 Thierry Reding 2014-10-01 608 #endif
9216efafc52ff9 Thierry Reding 2014-10-01 609
f009c89df79abe John Garry 2020-03-28 610 #if !defined(outw) && !defined(_outw)
f009c89df79abe John Garry 2020-03-28 611 #define _outw _outw
6f043e75744596 Niklas Schnelle 2024-10-24 612 #ifdef CONFIG_HAS_IOPORT
f009c89df79abe John Garry 2020-03-28 613 static inline void _outw(u16 value, unsigned long addr)
9216efafc52ff9 Thierry Reding 2014-10-01 614 {
a7851aa54c0cdd Sinan Kaya 2018-04-05 615 __io_pbw();
c1d55d50139bea Stafford Horne 2020-07-29 616 __raw_writew((u16 __force)cpu_to_le16(value), PCI_IOBASE + addr);
a7851aa54c0cdd Sinan Kaya 2018-04-05 617 __io_paw();
9216efafc52ff9 Thierry Reding 2014-10-01 618 }
6f043e75744596 Niklas Schnelle 2024-10-24 619 #else
6f043e75744596 Niklas Schnelle 2024-10-24 620 void _outw(u16 value, unsigned long addr)
6f043e75744596 Niklas Schnelle 2024-10-24 621 __compiletime_error("outw() requires CONFIG_HAS_IOPORT");
6f043e75744596 Niklas Schnelle 2024-10-24 622 #endif
9216efafc52ff9 Thierry Reding 2014-10-01 623 #endif
9216efafc52ff9 Thierry Reding 2014-10-01 624
f009c89df79abe John Garry 2020-03-28 625 #if !defined(outl) && !defined(_outl)
f009c89df79abe John Garry 2020-03-28 626 #define _outl _outl
6f043e75744596 Niklas Schnelle 2024-10-24 627 #ifdef CONFIG_HAS_IOPORT
f009c89df79abe John Garry 2020-03-28 628 static inline void _outl(u32 value, unsigned long addr)
9216efafc52ff9 Thierry Reding 2014-10-01 629 {
a7851aa54c0cdd Sinan Kaya 2018-04-05 630 __io_pbw();
c1d55d50139bea Stafford Horne 2020-07-29 631 __raw_writel((u32 __force)cpu_to_le32(value), PCI_IOBASE + addr);
a7851aa54c0cdd Sinan Kaya 2018-04-05 632 __io_paw();
9216efafc52ff9 Thierry Reding 2014-10-01 633 }
6f043e75744596 Niklas Schnelle 2024-10-24 634 #else
6f043e75744596 Niklas Schnelle 2024-10-24 635 void _outl(u32 value, unsigned long addr)
6f043e75744596 Niklas Schnelle 2024-10-24 636 __compiletime_error("outl() requires CONFIG_HAS_IOPORT");
6f043e75744596 Niklas Schnelle 2024-10-24 637 #endif
9216efafc52ff9 Thierry Reding 2014-10-01 638 #endif
9216efafc52ff9 Thierry Reding 2014-10-01 639
f009c89df79abe John Garry 2020-03-28 640 #include <linux/logic_pio.h>
f009c89df79abe John Garry 2020-03-28 641
f009c89df79abe John Garry 2020-03-28 642 #ifndef inb
f009c89df79abe John Garry 2020-03-28 643 #define inb _inb
f009c89df79abe John Garry 2020-03-28 644 #endif
f009c89df79abe John Garry 2020-03-28 645
f009c89df79abe John Garry 2020-03-28 646 #ifndef inw
f009c89df79abe John Garry 2020-03-28 647 #define inw _inw
f009c89df79abe John Garry 2020-03-28 648 #endif
f009c89df79abe John Garry 2020-03-28 649
f009c89df79abe John Garry 2020-03-28 650 #ifndef inl
f009c89df79abe John Garry 2020-03-28 651 #define inl _inl
f009c89df79abe John Garry 2020-03-28 652 #endif
f009c89df79abe John Garry 2020-03-28 653
f009c89df79abe John Garry 2020-03-28 654 #ifndef outb
f009c89df79abe John Garry 2020-03-28 655 #define outb _outb
f009c89df79abe John Garry 2020-03-28 656 #endif
f009c89df79abe John Garry 2020-03-28 657
f009c89df79abe John Garry 2020-03-28 658 #ifndef outw
f009c89df79abe John Garry 2020-03-28 659 #define outw _outw
f009c89df79abe John Garry 2020-03-28 660 #endif
f009c89df79abe John Garry 2020-03-28 661
f009c89df79abe John Garry 2020-03-28 662 #ifndef outl
f009c89df79abe John Garry 2020-03-28 663 #define outl _outl
f009c89df79abe John Garry 2020-03-28 664 #endif
f009c89df79abe John Garry 2020-03-28 665
9216efafc52ff9 Thierry Reding 2014-10-01 666 #ifndef inb_p
9216efafc52ff9 Thierry Reding 2014-10-01 667 #define inb_p inb_p
9216efafc52ff9 Thierry Reding 2014-10-01 668 static inline u8 inb_p(unsigned long addr)
9216efafc52ff9 Thierry Reding 2014-10-01 669 {
9216efafc52ff9 Thierry Reding 2014-10-01 670 return inb(addr);
9216efafc52ff9 Thierry Reding 2014-10-01 671 }
9216efafc52ff9 Thierry Reding 2014-10-01 672 #endif
9216efafc52ff9 Thierry Reding 2014-10-01 673
9216efafc52ff9 Thierry Reding 2014-10-01 674 #ifndef inw_p
9216efafc52ff9 Thierry Reding 2014-10-01 675 #define inw_p inw_p
9216efafc52ff9 Thierry Reding 2014-10-01 676 static inline u16 inw_p(unsigned long addr)
9216efafc52ff9 Thierry Reding 2014-10-01 677 {
9216efafc52ff9 Thierry Reding 2014-10-01 678 return inw(addr);
9216efafc52ff9 Thierry Reding 2014-10-01 679 }
9216efafc52ff9 Thierry Reding 2014-10-01 680 #endif
9216efafc52ff9 Thierry Reding 2014-10-01 681
9216efafc52ff9 Thierry Reding 2014-10-01 682 #ifndef inl_p
9216efafc52ff9 Thierry Reding 2014-10-01 683 #define inl_p inl_p
9216efafc52ff9 Thierry Reding 2014-10-01 684 static inline u32 inl_p(unsigned long addr)
9216efafc52ff9 Thierry Reding 2014-10-01 685 {
9216efafc52ff9 Thierry Reding 2014-10-01 686 return inl(addr);
9216efafc52ff9 Thierry Reding 2014-10-01 687 }
9216efafc52ff9 Thierry Reding 2014-10-01 688 #endif
9216efafc52ff9 Thierry Reding 2014-10-01 689
9216efafc52ff9 Thierry Reding 2014-10-01 690 #ifndef outb_p
9216efafc52ff9 Thierry Reding 2014-10-01 691 #define outb_p outb_p
9216efafc52ff9 Thierry Reding 2014-10-01 692 static inline void outb_p(u8 value, unsigned long addr)
9216efafc52ff9 Thierry Reding 2014-10-01 693 {
9216efafc52ff9 Thierry Reding 2014-10-01 694 outb(value, addr);
9216efafc52ff9 Thierry Reding 2014-10-01 695 }
9216efafc52ff9 Thierry Reding 2014-10-01 696 #endif
9216efafc52ff9 Thierry Reding 2014-10-01 697
9216efafc52ff9 Thierry Reding 2014-10-01 698 #ifndef outw_p
9216efafc52ff9 Thierry Reding 2014-10-01 699 #define outw_p outw_p
9216efafc52ff9 Thierry Reding 2014-10-01 700 static inline void outw_p(u16 value, unsigned long addr)
9216efafc52ff9 Thierry Reding 2014-10-01 701 {
9216efafc52ff9 Thierry Reding 2014-10-01 702 outw(value, addr);
9216efafc52ff9 Thierry Reding 2014-10-01 703 }
9216efafc52ff9 Thierry Reding 2014-10-01 704 #endif
9216efafc52ff9 Thierry Reding 2014-10-01 705
9216efafc52ff9 Thierry Reding 2014-10-01 706 #ifndef outl_p
9216efafc52ff9 Thierry Reding 2014-10-01 707 #define outl_p outl_p
9216efafc52ff9 Thierry Reding 2014-10-01 708 static inline void outl_p(u32 value, unsigned long addr)
9216efafc52ff9 Thierry Reding 2014-10-01 709 {
9216efafc52ff9 Thierry Reding 2014-10-01 710 outl(value, addr);
9216efafc52ff9 Thierry Reding 2014-10-01 711 }
9216efafc52ff9 Thierry Reding 2014-10-01 712 #endif
9216efafc52ff9 Thierry Reding 2014-10-01 713
9ab3a7a0d2b417 Thierry Reding 2014-07-04 714 /*
9ab3a7a0d2b417 Thierry Reding 2014-07-04 715 * {in,out}s{b,w,l}{,_p}() are variants of the above that repeatedly access a
9ab3a7a0d2b417 Thierry Reding 2014-07-04 716 * single I/O port multiple times.
9ab3a7a0d2b417 Thierry Reding 2014-07-04 717 */
9ab3a7a0d2b417 Thierry Reding 2014-07-04 718
9ab3a7a0d2b417 Thierry Reding 2014-07-04 719 #ifndef insb
9ab3a7a0d2b417 Thierry Reding 2014-07-04 720 #define insb insb
6f043e75744596 Niklas Schnelle 2024-10-24 721 #ifdef CONFIG_HAS_IOPORT
9ab3a7a0d2b417 Thierry Reding 2014-07-04 722 static inline void insb(unsigned long addr, void *buffer, unsigned int count)
9ab3a7a0d2b417 Thierry Reding 2014-07-04 723 {
9ab3a7a0d2b417 Thierry Reding 2014-07-04 724 readsb(PCI_IOBASE + addr, buffer, count);
9ab3a7a0d2b417 Thierry Reding 2014-07-04 725 }
6f043e75744596 Niklas Schnelle 2024-10-24 726 #else
6f043e75744596 Niklas Schnelle 2024-10-24 727 void insb(unsigned long addr, void *buffer, unsigned int count)
6f043e75744596 Niklas Schnelle 2024-10-24 728 __compiletime_error("insb() requires HAS_IOPORT");
6f043e75744596 Niklas Schnelle 2024-10-24 729 #endif
9ab3a7a0d2b417 Thierry Reding 2014-07-04 730 #endif
9ab3a7a0d2b417 Thierry Reding 2014-07-04 731
9ab3a7a0d2b417 Thierry Reding 2014-07-04 732 #ifndef insw
9ab3a7a0d2b417 Thierry Reding 2014-07-04 @733 #define insw insw
6f043e75744596 Niklas Schnelle 2024-10-24 734 #ifdef CONFIG_HAS_IOPORT
9ab3a7a0d2b417 Thierry Reding 2014-07-04 735 static inline void insw(unsigned long addr, void *buffer, unsigned int count)
9ab3a7a0d2b417 Thierry Reding 2014-07-04 736 {
9ab3a7a0d2b417 Thierry Reding 2014-07-04 737 readsw(PCI_IOBASE + addr, buffer, count);
9ab3a7a0d2b417 Thierry Reding 2014-07-04 738 }
6f043e75744596 Niklas Schnelle 2024-10-24 739 #else
6f043e75744596 Niklas Schnelle 2024-10-24 740 void insw(unsigned long addr, void *buffer, unsigned int count)
6f043e75744596 Niklas Schnelle 2024-10-24 741 __compiletime_error("insw() requires HAS_IOPORT");
6f043e75744596 Niklas Schnelle 2024-10-24 742 #endif
9ab3a7a0d2b417 Thierry Reding 2014-07-04 743 #endif
9ab3a7a0d2b417 Thierry Reding 2014-07-04 744
:::::: The code at line 542 was first introduced by commit
:::::: f009c89df79abea5f5244b8135a205f7d4352f86 io: Provide _inX() and _outX()
:::::: TO: John Garry <john.garry@huawei.com>
:::::: CC: Wei Xu <xuwei5@hisilicon.com>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2025-11-10 23:00 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-06-05 23:02 include/asm-generic/io.h:542:14: error: call to '_inb' declared with attribute error: inb()) requires CONFIG_HAS_IOPORT kernel test robot
2025-06-06 7:46 ` Arnd Bergmann
2025-11-10 23:00 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
all inboxes | Powered by JetHome®