Re: [PATCH] fix update_mmu_cache in fremap.c

From: Hugh Dickins
Date: Fri May 26 2006 - 18:43:10 EST


On Fri, 26 May 2006, David Miller wrote:
> From: Hugh Dickins <hugh@xxxxxxxxxxx>
> Date: Fri, 26 May 2006 19:28:14 +0100 (BST)
>
> > There are two calls to update_mmu_cache in fremap.c, both defective.
> > The one in install_page needs to be accompanied by lazy_mmu_prot_update
> > (some other cleanup time, move that into ia64 update_mmu_cache itself); and
> > the one in install_file_pte should be removed since the pte is not present.
> >
> > Signed-off-by: Hugh Dickins <hugh@xxxxxxxxxxx>
>
> Where did that rule come from? We should call update_mmu_cache() even
> if the PTE was not present before, look at the fault path in
> mm/memory.c, it does this too.
>
> This is where we install hash table entries for newly installed
> mappings on sparc64 and powerpc, so this update_mmu_cache() call
> is important even for not-previously-present mappings.

Sure it's important for not-previously-present mappings, when you're
installing a present pte. But the "file pte" being installed by
install_file_pte is not a real pte - it's a non-present entry (like
a swap entry), noting what file offset should be mapped there when
there's a fault (in a non-linear vma where that's not obvious).

Hugh
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/