[PATCH #4/9] 8xx-2.6 | MM tweaks
Pantelis Antoniou
panto at intracom.gr
Fri May 28 16:48:06 EST 2004
Tom Rini wrote:
>On Wed, May 26, 2004 at 03:05:45PM +0300, Pantelis Antoniou wrote:
>
>
>>Hi
>>
>>The following patch consists of minor tweaks in order to get
>>the mm to work.
>>
>
>I was wondering. The fault.c change boils down to:
>===== arch/ppc/mm/fault.c 1.26 vs edited =====
>--- 1.26/arch/ppc/mm/fault.c 2004-05-25 04:50:34 -07:00
>+++ edited/arch/ppc/mm/fault.c 2004-05-27 09:48:17 -07:00
>@@ -350,11 +350,14 @@
> pgd_t *dir;
> pmd_t *pmd;
> pte_t *pte;
>+ struct mm_struct *mm;
>
> if (address < TASK_SIZE)
>- return NULL;
>+ mm = current->mm;
>+ else
>+ mm = &init_mm;
>
>- dir = pgd_offset(&init_mm, address);
>+ dir = pgd_offset(mm, address & PAGE_MASK);
> if (dir) {
> pmd = pmd_offset(dir, address & PAGE_MASK);
> if (pmd && pmd_present(*pmd)) {
>
>Can you explain this a bit more? Looking back at the history in
>BitKeeper, this change came from Paul, in the changeset with the
>comments of:
>PPC update for the recent changes to the pgd/pmd/pte functions.
>This implements ptes-in-highmem for PPC, removes the quicklist
>and zero-page stuff. PTEs in highmem on SMP turned out to need
>some significant changes to avoid deadlocks on the hash_table_lock
>(now renamed to mmu_hash_lock). The PMDs now contain the physical
>address of the PTE page rather than the virtual address.
>Anything that takes the mmu_hash_lock now operates with the DMMU
>off to avoid MMU hash-table misses.
>
>And for this file in particular:
>Do pte_unmap after get_pteptr; use pte_offset_kernel instead of
>pte_offset in a couple of places.
>
>Which you exactly reverted. Were the changes from Paul incorrect here?
>Or is perhaps there something more needed on the 8xx side of things?
>
>
Let me tell you, I didn't know any of this stuff :).
My algorithm for the changes was simple.
1. Assume that linuxppc_2.4 is more recent that linuxppc-2.5 on 8xx.
2. Forward port any significant changes to 2.5.
3. Test.
If this didn't work, then I would try to fix anything more
complicated.
Thankfully it wasn't neccesary.
Regards
Pantelis
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
More information about the Linuxppc-embedded
mailing list