Message ID | 1337018097-27308-1-git-send-email-vitalya@ti.com |
---|---|
State | Superseded |
Headers | show |
On Mon, May 14, 2012 at 01:54:57PM -0400, Vitaly Andrianov wrote: > A zero value for prot_sect in the memory types table implies that > section mappings should never be created for the memory type in question. > This is checked for in alloc_init_section(). > > With LPAE, we set a bit to mask access flag faults for kernel mappings. > This breaks the aforementioned (!prot_sect) check in alloc_init_section(). > > This patch fixes this bug by first checking for a non-zero > prot_sect before setting the PMD_SECT_AF flag. > > Signed-off-by: Vitaly Andrianov <vitalya@ti.com> > > Acked-by: Catalin Marinas <catalin.marinas@arm.com> Please put this in the patch system. No blank line is needed between s-off-by and acked-by.
Hello, On 5/15/2012 2:22 PM, Russell King - ARM Linux wrote: > On Mon, May 14, 2012 at 01:54:57PM -0400, Vitaly Andrianov wrote: >> A zero value for prot_sect in the memory types table implies that >> section mappings should never be created for the memory type in question. >> This is checked for in alloc_init_section(). >> >> With LPAE, we set a bit to mask access flag faults for kernel mappings. >> This breaks the aforementioned (!prot_sect) check in alloc_init_section(). >> >> This patch fixes this bug by first checking for a non-zero >> prot_sect before setting the PMD_SECT_AF flag. >> >> Signed-off-by: Vitaly Andrianov<vitalya@ti.com> >> >> Acked-by: Catalin Marinas<catalin.marinas@arm.com> > > Please put this in the patch system. No blank line is needed between > s-off-by and acked-by. This patch fixes the issue introduced by adding CMA to ARM architecture which I've pushed for testing to linux-next. I've added it to my for-next-cma branch: http://git.linaro.org/gitweb?p=people/mszyprowski/linux-dma-mapping.git;a=shortlog;h=refs/heads/for-next-cma Best regards
diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c index b9fbec2..1e16b20 100644 --- a/arch/arm/mm/mmu.c +++ b/arch/arm/mm/mmu.c @@ -494,7 +494,8 @@ static void __init build_mem_type_table(void) */ for (i = 0; i < ARRAY_SIZE(mem_types); i++) { mem_types[i].prot_pte |= PTE_EXT_AF; - mem_types[i].prot_sect |= PMD_SECT_AF; + if (mem_types[i].prot_sect) + mem_types[i].prot_sect |= PMD_SECT_AF; } kern_pgprot |= PTE_EXT_AF; vecs_pgprot |= PTE_EXT_AF;