]> git.baikalelectronics.ru Git - kernel.git/commit
memremap: fix highmem support
authorDan Williams <dan.j.williams@intel.com>
Mon, 26 Oct 2015 20:55:56 +0000 (16:55 -0400)
committerDan Williams <dan.j.williams@intel.com>
Mon, 26 Oct 2015 20:55:56 +0000 (16:55 -0400)
commit152bccc08f5c09cf8e0d06c5a86ac1373c50ecb8
tree89e58960362a1a4c629569bfb66e2ab8852a6bf5
parentd4b7198c826c2623452ec881d49138c5c732e01c
memremap: fix highmem support

Currently memremap checks if the range is "System RAM" and returns the
kernel linear address.  This is broken for highmem platforms where a
range may be "System RAM", but is not part of the kernel linear mapping.
Fallback to ioremap_cache() in these cases, to let the arch code attempt
to handle it.

Note that ARM ioremap will WARN when attempting to remap ram, and in
that case the caller needs to be fixed.  For this reason, existing
ioremap_cache() usages for ARM are already trained to avoid attempts to
remap ram.

The impact of this bug is low for now since the pmem driver is the only
user of memremap(), but this is important to fix before more conversions
to memremap arrive in 4.4.

Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Reported-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
kernel/memremap.c