summaryrefslogtreecommitdiff
path: root/sound/soc/fsl/fsl_sai_ac97.c
diff options
context:
space:
mode:
authorMark Rutland <mark.rutland@arm.com>2015-05-11 11:31:30 +0100
committerStefan Agner <stefan.agner@toradex.com>2015-05-11 13:31:59 +0200
commit072d5b846bcb2f55ba14afc66ceb4258bc725268 (patch)
tree1566eeb9df392092bad8b6e7a41728b2567dcce3 /sound/soc/fsl/fsl_sai_ac97.c
parentfd2c7bbe3b6a93ee59b29df2b345cedb4fea0b6b (diff)
ARM: mm: handle non-pmd-aligned end of RAM
At boot time we round the memblock limit down to section size in an attempt to ensure that we will have mapped this RAM with section mappings prior to allocating from it. When mapping RAM we iterate over PMD-sized chunks, creating these section mappings. Section mappings are only created when the end of a chunk is aligned to section size. Unfortunately, with classic page tables (where PMD_SIZE is 2 * SECTION_SIZE) this means that if a chunk is between 1M and 2M in size the first 1M will not be mapped despite having been accounted for in the memblock limit. This has been observed to result in page tables being allocated from unmapped memory, causing boot-time hangs. This patch modifies the memblock limit rounding to always round down to PMD_SIZE instead of SECTION_SIZE. For classic MMU this means that we will round the memblock limit down to a 2M boundary, matching the limits on section mappings, and preventing allocations from unmapped memory. For LPAE there should be no change as PMD_SIZE == SECTION_SIZE. Signed-off-by: Mark Rutland <mark.rutland@arm.com> Reported-by: Stefan Agner <stefan@agner.ch> Cc: Catalin Marinas <catalin.marinas@arm.com> Cc: Hans de Goede <hdegoede@redhat.com> Cc: Laura Abbott <labbott@redhat.com> Cc: Russell King <rmk+kernel@arm.linux.org.uk> Cc: Steve Capper <steve.capper@linaro.org>
Diffstat (limited to 'sound/soc/fsl/fsl_sai_ac97.c')
0 files changed, 0 insertions, 0 deletions