From: Arnd Bergmann <arnd@kernel.org>
To: Bjorn Helgaas <helgaas@kernel.org>
Cc: Rich Felker <dalias@libc.org>,
"open list:IA64 \(Itanium\) PLATFORM"
<linux-ia64@vger.kernel.org>,
"open list:SUPERH" <linux-sh@vger.kernel.org>,
Catalin Marinas <catalin.marinas@arm.com>,
Dave Hansen <dave.hansen@linux.intel.com>,
"open list:MIPS" <linux-mips@vger.kernel.org>,
"James E.J. Bottomley" <James.Bottomley@hansenpartnership.com>,
"open list:SPARC + UltraSPARC \(sparc/sparc64\)"
<sparclinux@vger.kernel.org>,
"open list:RISC-V ARCHITECTURE" <linux-riscv@lists.infradead.org>,
Will Deacon <will@kernel.org>,
linux-arch <linux-arch@vger.kernel.org>,
Yoshinori Sato <ysato@users.sourceforge.jp>,
Helge Deller <deller@gmx.de>,
"maintainer:X86 ARCHITECTURE \(32-BIT AND 64-BIT\)"
<x86@kernel.org>, Russell King <linux@armlinux.org.uk>,
Ingo Molnar <mingo@redhat.com>,
Geert Uytterhoeven <geert@linux-m68k.org>,
linux-pci <linux-pci@vger.kernel.org>,
Matt Turner <mattst88@gmail.com>,
Albert Ou <aou@eecs.berkeley.edu>, Arnd Bergmann <arnd@arndb.de>,
Niklas Schnelle <schnelle@linux.ibm.com>,
"open list:M68K ARCHITECTURE" <linux-m68k@lists.linux-m68k.org>,
Ivan Kokshaysky <ink@jurassic.park.msu.ru>,
Paul Walmsley <paul.walmsley@sifive.com>,
Thomas Gleixner <tglx@linutronix.de>,
"moderated list:ARM PORT" <linux-arm-kernel@lists.infradead.org>,
Richard Henderson <rth@twiddle.net>,
Michal Simek <monstr@monstr.eu>,
Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
"open list:PARISC ARCHITECTURE" <linux-parisc@vger.kernel.org>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Palmer Dabbelt <palmer@dabbelt.com>,
"open list:ALPHA PORT" <linux-alpha@vger.kernel.org>,
Borislav Petkov <bp@alien8.de>,
"open list:LINUX FOR POWERPC \(32-BIT AND 64-BIT\)"
<linuxppc-dev@lists.ozlabs.org>,
"David S. Miller" <davem@davemloft.net>
Subject: Re: [RFC v2 01/39] Kconfig: introduce HAS_IOPORT option and select it as necessary
Date: Wed, 4 May 2022 23:31:28 +0200 [thread overview]
Message-ID: <CAK8P3a0sJgMSpZB_Butx2gO0hapYZy-Dm_QH-hG5rOaq_ZgsXg@mail.gmail.com> (raw)
In-Reply-To: <20220504210840.GA469916@bhelgaas>
On Wed, May 4, 2022 at 11:08 PM Bjorn Helgaas <helgaas@kernel.org> wrote:
>
> On Fri, Apr 29, 2022 at 03:49:59PM +0200, Niklas Schnelle wrote:
> > We introduce a new HAS_IOPORT Kconfig option to indicate support for
> > I/O Port access. In a future patch HAS_IOPORT=n will disable compilation
> > of the I/O accessor functions inb()/outb() and friends on architectures
> > which can not meaningfully support legacy I/O spaces such as s390 or
> > where such support is optional.
>
> So you plan to drop inb()/outb() on architectures where I/O port space
> is optional? So even platforms that have I/O port space may not be
> able to use it?
>
> This feels like a lot of work where the main benefit is to keep
> Kconfig from offering drivers that aren't of interest on s390.
>
> Granted, there may be issues where inb()/outb() does the wrong thing
> such as dereferencing null pointers when I/O port space isn't
> implemented. I think that's a defect in inb()/outb() and could be
> fixed there.
The current implementation in asm-generic/io.h implements inb()/outb()
using readb()/writeb() with a fixed architecture specific offset.
There are three possible things that can happen here:
a) there is a host bridge driver that maps its I/O ports to this window,
and everything works
b) the address range is reserved and accessible but no host bridge
driver has mapped its registers there, so an access causes a
page fault
c) the architecture does not define an offset, and accessing low I/O
ports ends up as a NULL pointer dereference
The main goal is to avoid c), which is what happens on s390, but
can also happen elsewhere. Catching b) would be nice as well,
but is much harder to do from generic code as you'd need an
architecture specific inline asm statement to insert a ex_table
fixup, or a runtime conditional on each access.
Arnd
next prev parent reply other threads:[~2022-05-04 21:32 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20220429135108.2781579-1-schnelle@linux.ibm.com>
2022-04-29 13:49 ` [RFC v2 01/39] Kconfig: introduce HAS_IOPORT option and select it as necessary Niklas Schnelle
2022-05-01 22:40 ` Maciej W. Rozycki
2022-05-04 21:08 ` Bjorn Helgaas
2022-05-04 21:31 ` Arnd Bergmann [this message]
2022-05-05 8:10 ` Niklas Schnelle
2022-05-05 16:10 ` Bjorn Helgaas
2022-05-05 17:39 ` Arnd Bergmann
2022-05-05 19:53 ` Bjorn Helgaas
2022-05-06 9:12 ` Finn Thain
2022-05-06 11:18 ` Niklas Schnelle
2022-05-07 0:01 ` Finn Thain
2022-05-07 13:14 ` Arnd Bergmann
2022-05-07 23:59 ` Finn Thain
2022-05-08 0:15 ` Finn Thain
2022-05-06 9:38 ` Niklas Schnelle
2022-05-06 11:07 ` John Garry
2022-05-06 10:20 ` Maciej W. Rozycki
2022-05-06 11:33 ` Arnd Bergmann
2022-05-06 12:27 ` Maciej W. Rozycki
2022-05-06 12:53 ` David Laight
2022-05-06 13:08 ` Geert Uytterhoeven
2022-05-06 13:40 ` Maciej W. Rozycki
2022-05-06 14:03 ` David Laight
2022-05-06 15:02 ` Geert Uytterhoeven
2022-05-06 13:15 ` Maciej W. Rozycki
2022-05-06 13:28 ` David Laight
2022-05-06 14:44 ` Maciej W. Rozycki
2022-05-06 14:56 ` Geert Uytterhoeven
2022-05-06 15:03 ` Maciej W. Rozycki
2022-05-06 12:53 ` Arnd Bergmann
2022-05-06 13:15 ` Niklas Schnelle
2022-05-06 13:16 ` Maciej W. Rozycki
2022-05-06 12:55 ` Niklas Schnelle
2022-05-06 12:42 ` Niklas Schnelle
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CAK8P3a0sJgMSpZB_Butx2gO0hapYZy-Dm_QH-hG5rOaq_ZgsXg@mail.gmail.com \
--to=arnd@kernel.org \
--cc=James.Bottomley@hansenpartnership.com \
--cc=aou@eecs.berkeley.edu \
--cc=arnd@arndb.de \
--cc=bp@alien8.de \
--cc=catalin.marinas@arm.com \
--cc=dalias@libc.org \
--cc=dave.hansen@linux.intel.com \
--cc=davem@davemloft.net \
--cc=deller@gmx.de \
--cc=geert@linux-m68k.org \
--cc=gregkh@linuxfoundation.org \
--cc=helgaas@kernel.org \
--cc=ink@jurassic.park.msu.ru \
--cc=linux-alpha@vger.kernel.org \
--cc=linux-arch@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-ia64@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-m68k@lists.linux-m68k.org \
--cc=linux-mips@vger.kernel.org \
--cc=linux-parisc@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=linux-riscv@lists.infradead.org \
--cc=linux-sh@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=mattst88@gmail.com \
--cc=mingo@redhat.com \
--cc=monstr@monstr.eu \
--cc=palmer@dabbelt.com \
--cc=paul.walmsley@sifive.com \
--cc=rth@twiddle.net \
--cc=schnelle@linux.ibm.com \
--cc=sparclinux@vger.kernel.org \
--cc=tglx@linutronix.de \
--cc=tsbogend@alpha.franken.de \
--cc=will@kernel.org \
--cc=x86@kernel.org \
--cc=ysato@users.sourceforge.jp \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).