ioremap() checks if a target range is in RAM and fails the request
if true.  There are multiple issues in the iormap RAM check interfaces.

 1. region_is_ram() always fails with -1.
 2. The check calls two functions, region_is_ram() and
    walk_system_ram_range(), which are redundant as both walk the
    same iomem_resource table.
 3. walk_system_ram_range() requires RAM ranges be page-aligned in
    the iomem_resource table to work properly.  This restriction
    has allowed multiple ioremaps to RAM which are page-unaligned.

This patchset solves issue 1 and 2.  It does not address issue 3,
but continues to allow the existing ioremaps to work until it is
addressed.

---
resend:
 - Rebased to 4.2-rc2 (no change needed). Modified change logs.

---
Toshi Kani (3):
  1/3 mm, x86: Fix warning in ioremap RAM check
  2/3 mm, x86: Remove region_is_ram() call from ioremap
  3/3 mm: Fix bugs in region_is_ram()

---
 arch/x86/mm/ioremap.c | 23 ++++++-----------------
 kernel/resource.c     |  6 +++---
 2 files changed, 9 insertions(+), 20 deletions(-)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to