Thread (121 messages) 121 messages, 20 authors, 2015-02-19

[Linaro-acpi] [PATCH v8 02/21] acpi: fix acpi_os_ioremap for arm64

From: Al Stone <hidden>
Date: 2015-02-05 16:42:27
Also in: linux-acpi, lkml

On 02/05/2015 06:54 AM, Mark Salter wrote:
On Thu, 2015-02-05 at 10:41 +0000, Catalin Marinas wrote:
quoted
On Wed, Feb 04, 2015 at 06:58:14PM +0000, Mark Salter wrote:
quoted
On Wed, 2015-02-04 at 17:57 +0000, Catalin Marinas wrote:
quoted
On Wed, Feb 04, 2015 at 04:08:27PM +0000, Mark Salter wrote:
quoted
acpi_os_remap() is used to map ACPI tables. These tables may be in ram
which are already included in the kernel's linear RAM mapping. So we
need ioremap_cache to avoid two mappings to the same physical page
having different caching attributes.
What's the call path to acpi_os_ioremap() on such tables already in the
linear mapping? I can see an acpi_map() function which already takes
care of the RAM mapping case but there are other cases where
acpi_os_ioremap() is called directly. For example,
acpi_os_read_memory(), can it be called on both RAM and I/O?
acpi_map() is the one I've seen.
By default, if should_use_kmap() is not patched for arm64, it translates
to page_is_ram(); acpi_map() would simply use a kmap() which returns the
current kernel linear mapping on arm64.
The problem with kmap() is that it only maps a single page. I've seen
tables over 4k which is why I patched acpi_map() not to use kmap() on
arm64.
Right.  Mark replied to this before I could; using kmap() enforced a 4k
(one page) limit that we kept breaking with some ACPI tables being larger
than that (DSDTs and SSDTs, fwiw).  This would lead to some very odd behaviors
when most but not all of a device definition was within the page; using the
table checksums was one way of detecting the issues.
quoted
quoted
I'm not sure about others.
Question for the ARM ACPI guys: what happens if you implement
acpi_os_ioremap() on arm64 as just ioremap()? Do you get any WARN_ON()
(__ioremap_caller() checks whether the memory is RAM)?


_______________________________________________
Linaro-acpi mailing list
Linaro-acpi at lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-acpi

-- 
ciao,
al
-----------------------------------
Al Stone
Software Engineer
Linaro Enterprise Group
al.stone at linaro.org
-----------------------------------
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help