[PATCH 2.6.14] mm: 8xx MM fix for
Benjamin Herrenschmidt
benh at kernel.crashing.org
Mon Oct 31 08:16:04 EST 2005
On Sun, 2005-10-30 at 23:03 +0300, Pantelis Antoniou wrote:
> Latest MMU changes caused 8xx to stop working. Flushing tlb of the faulting
> address fixes the problem.
Ugh ?
What is the problem precisely ? This is just a dodgy workaround for an
unexplained problem. Normally, the kenrel _WILL_ cause a tlb flush after
manipulating a PTE.
Ben.
> ---
> commit 978e2f36b1ae53e37ba27b3ab8f1c5ddbb8c8a10
> tree 7dd0e403c240162b1925db0834d694f4b4a0e95e
> parent ca02ea5aebcda886d1552c6af73ca96c02bf9fed
> author Pantelis Antoniou <panto at pantathon> Sun, 30 Oct 2005 21:53:48 +0200
> committer Pantelis Antoniou <panto at pantathon> Sun, 30 Oct 2005 21:53:48 +0200
>
> arch/ppc/mm/fault.c | 13 +++++++++++++
> 1 files changed, 13 insertions(+), 0 deletions(-)
>
> diff --git a/arch/ppc/mm/fault.c b/arch/ppc/mm/fault.c
> --- a/arch/ppc/mm/fault.c
> +++ b/arch/ppc/mm/fault.c
> @@ -240,6 +240,19 @@ good_area:
> goto bad_area;
> if (!(vma->vm_flags & (VM_READ | VM_EXEC)))
> goto bad_area;
> +
> +#ifdef CONFIG_8xx
> + {
> + /* 8xx is retarded; news at 11 */
> + pte_t *ptep = NULL;
> +
> + if (get_pteptr(mm, address, &ptep) && pte_present(*ptep))
> + _tlbie(address);
> +
> + if (ptep != NULL)
> + pte_unmap(ptep);
> + }
> +#endif
> }
>
> /*
More information about the Linuxppc-embedded
mailing list