Thread (9 messages) flat view 9 messages, 4 authors, 2017-05-05

[PATCH] arm64: Add translation functions for /dev/mem read/write

From: Ard Biesheuvel <hidden>
Date: 2017-05-05 16:25:14
Also in: lkml

On 5 May 2017, at 15:55, Will Deacon [off-list ref] wrote:
quoted
On Thu, May 04, 2017 at 07:40:50AM +0100, Ard Biesheuvel wrote:
quoted
On 3 May 2017 at 22:47, Goel, Sameer [off-list ref] wrote:

quoted
On 5/3/2017 2:18 PM, Leif Lindholm wrote:
quoted
On Wed, May 03, 2017 at 11:07:45AM -0600, Goel, Sameer wrote:
quoted
On 5/3/2017 5:26 AM, Will Deacon wrote:
[adding some /dev/mem fans to cc]
quoted
On Tue, May 02, 2017 at 02:28:05PM -0600, Sameer Goel wrote:
Port architecture specific xlate and unxlate functions for /dev/mem
read/write. This sets up the mapping for a valid physical address if a
kernel direct mapping is not already present.

This is a generic issue as a user space app should not be allowed to crash
the kernel.
quoted
This issue was observed when systemd tried to access performance
pointer record from the FPDT table.
Why is it doing that? Is there not a way to get this via /sys?
There is no ACPI FPDT implementation in the kernel, so the userspace
systemd code is getting the FPDT table contents from /sys
and parsing the entries. The performance pointer record is a
reserved address populated by UEFI and the userspace code tries to
access it using /dev/mem. The physical address is valid, so cannot
push back on the user space code.
OK, so then we need to add support for parsing this table in the
kernel and exposing the referred-to regions in a controllable fashion.
Maybe something that belongs under /sys/firmware/efi (adding Matt), or
maybe something that deserves its own driver.

The only two use-cases for /dev/mem on arm64 are:
- Implementing interfaces in the kernel takes up-front effort.
- Being able to accidentally panic the kernel from userland.
We will see this issue with any access using /dev/mem to a MEMBLOCK_NOMAP marked
memblock. The kernel crash issue has to be fixed irrespective of ACPI FPDT support.
I reported the same issue a couple of weeks ago [0]. So while we all
agree that such accesses shouldn't oops the kernel, I think we may
disagree on whether such accesses should be allowed in the first
place, especially when using read/write on /dev/mem (as opposed to
mmap())
Did you plan to respin those patches to address Alex's comments? I agree
that it would be good to close the oops, regardless of the rest of the
discussion here.
Agreed. I will look into this after my vacation (back on May 15th)
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help