[PATCH] ARM: LPAE: Fix mapping in alloc_init_section for unaligned addresses

R Sricharan r.sricharan at ti.com
Mon Feb 11 07:56:22 EST 2013


Hi,

> With LPAE enabled, alloc_init_section() does not map the entire
> address space for unaligned addresses.
>
> The issue also reproduced with CMA + LPAE. CMA tries to map 16MB
> with page granularity mappings during boot. alloc_init_pte()
> is called and out of 16MB, only 2MB gets mapped and rest remains
> unaccessible.
>
> Because of this OMAP5 boot is broken with CMA + LPAE enabled.
> Fix the issue by ensuring that the entire addresses are
> mapped.
>
> Signed-off-by: R Sricharan <r.sricharan at ti.com>
> Cc: Catalin Marinas <catalin.marinas at arm.com>
> Cc: Christoffer Dall <chris at cloudcar.com>
> Cc: Russell King <linux at arm.linux.org.uk>
> Cc: Santosh Shilimkar <santosh.shilimkar at ti.com>
> ---
>   [V2] Moved the loop to alloc_init_pte as per Russell's
>       feedback and changed the subject accordingly.
>       Using PMD_XXX instead of SECTION_XXX to avoid
>       different loop increments with/without LPAE.
>
>   [v3] Removed the dummy variable phys and updated
>        the commit log for CMA case.
>
>   [v4] Resending with updated change log and
>        updating the tags.
>
>   [v5] Renamed alloc_init_section to alloc_init_pmd
>        and moved the loop back there. Also introduced
>        map_init_section as per Catalin's comments.
>
>   [v6] Corrected tags and updated the comments for code.
>
  Please discard this. Missed "V6" in subject.
  Sent one more with proper subject.

Regards,
  Sricharan




More information about the linux-arm-kernel mailing list