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/