From: Arnd Bergmann <arnd@arndb.de>
To: Russell King - ARM Linux <linux@armlinux.org.uk>
Cc: Nishanth Menon <nm@ti.com>, Dave Gerlach <d-gerlach@ti.com>,
Tony Lindgren <tony@atomide.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
linux-kernel@vger.kernel.org, Russ Dill <russ.dill@ti.com>,
Alexandre Belloni <alexandre.belloni@free-electrons.com>,
linux-omap@vger.kernel.org, Shawn Guo <shawnguo@kernel.org>,
linux-arm-kernel@lists.infradead.org
Subject: Re: [RFC PATCH 1/3] asm-generic: io: Add exec versions of ioremap
Date: Wed, 18 May 2016 22:25:03 +0200 [thread overview]
Message-ID: <3861017.ZJOlWYvEFT@wuerfel> (raw)
In-Reply-To: <20160518175102.GX5783@n2100.arm.linux.org.uk>
On Wednesday 18 May 2016 18:51:02 Russell King - ARM Linux wrote:
> On Wed, May 18, 2016 at 09:12:20AM -0500, Dave Gerlach wrote:
> > Ok thank you for the pointer. I agree, the memremap API looks like a better
> > fit for this. I think it likely makes the most sense to still add these
> > ioremap_exec and ioremap_exec_nocache and then call them through the
> > memremap API based on new flags. This will fit into the current use model
> > for memremap as it currently uses all of the other ioremap calls internally,
> > and doing it how I just described will let this code evolve along with
> > memremap.
>
> I would _really_ prefer not to do that. Why? Because IO memory does
> not have the required properties to be executable. IO memory is normally
> memory which has side effects - and by side effects, I mean reading it
> can provoke hardware to perform some action. You don't want to be
> executing from such memory.
>
> So, in my mind, ioremap_exec makes absolutely no sense, and having it
> gives people a new interface to abuse - and abuse they will.
Agreed, calling it ioremap when it is really memremap makes no sense.
I also see another problem in the asm-generic portion:
+#ifndef ARCH_HAS_IOREMAP_EXEC
+#define ioremap_exec ioremap
+#define ioremap_exec_nocache ioremap_nocache
+#endif
The ARM version of ioremap_exec() that gets added in this patch is cached
(like memremap()), but then the asm-generic version is not? This is
even more confusing, it should at least do roughly the same thing across
architectures.
There should also be some documentation about what the expected behavior is, e.g.:
- is memremap_exec() by default cached or not? (I assume it would
be like memremap())
- If we have an interface that does explicit uncached executable mapping,
what about architectures on which this is not possible? Should they
fall back to cached or non-executable, or cause a link error?
Arnd
next prev parent reply other threads:[~2016-05-18 20:25 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-09 21:41 [RFC PATCH 0/3] Add ioremap_exec and extend drivers/misc/sram.c Dave Gerlach
2016-05-09 21:41 ` [RFC PATCH 1/3] asm-generic: io: Add exec versions of ioremap Dave Gerlach
2016-05-12 16:37 ` Russell King - ARM Linux
2016-05-18 14:12 ` Dave Gerlach
2016-05-18 17:51 ` Russell King - ARM Linux
2016-05-18 20:25 ` Arnd Bergmann [this message]
2016-05-18 20:57 ` Russell King - ARM Linux
2016-05-25 15:45 ` Dave Gerlach
2016-05-09 21:41 ` [RFC PATCH 2/3] lib: devres: Add exec and exec_nocache versions of devm_ioremap Dave Gerlach
2016-05-09 21:41 ` [RFC PATCH 3/3] misc: SRAM: Add option to map SRAM to allow code execution Dave Gerlach
2016-05-12 16:30 ` [RFC PATCH 0/3] Add ioremap_exec and extend drivers/misc/sram.c Tony Lindgren
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=3861017.ZJOlWYvEFT@wuerfel \
--to=arnd@arndb.de \
--cc=alexandre.belloni@free-electrons.com \
--cc=d-gerlach@ti.com \
--cc=gregkh@linuxfoundation.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-omap@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=nm@ti.com \
--cc=russ.dill@ti.com \
--cc=shawnguo@kernel.org \
--cc=tony@atomide.com \
/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