Date: Sun, 7 Mar 2004 16:39:12 -0800 (PST) From: Juli Mallett <jmallett@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 48386 for review Message-ID: <200403080039.i280dCMD043702@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=48386 Change 48386 by jmallett@jmallett_oingo on 2004/03/07 16:39:06 Catching up with boneheaded resolves. Affected files ... .. //depot/projects/mips/sys/mips/mips/pmap.c#30 edit Differences ... ==== //depot/projects/mips/sys/mips/mips/pmap.c#30 (text+ko) ==== @@ -298,45 +298,6 @@ LIST_INSERT_HEAD(&allpmaps, kernel_pmap, pm_list); } -/* - * Perform a small allocation for UMA, used early in the boot process - * and possibly at other times. - */ -void * -uma_small_alloc(uma_zone_t zone, int bytes, u_int8_t *flags, int wait) -{ - static vm_pindex_t color; - vm_page_t m; - int pflags; - void *va; - - *flags = UMA_SLAB_PRIV; - - if ((wait & (M_NOWAIT|M_USE_RESERVE)) == M_NOWAIT) - pflags = VM_ALLOC_INTERRUPT; - else - pflags = VM_ALLOC_SYSTEM; - - if (wait & M_ZERO) - pflags |= VM_ALLOC_ZERO; - - for (;;) { - m = vm_page_alloc(NULL, color++, pflags | VM_ALLOC_NOOBJ); - if (m == NULL) { - if (wait & M_NOWAIT) - return (NULL); - else - VM_WAIT; - } else - break; - } - - va = (void *)MIPS_PHYS_TO_KSEG0(m->phys_addr); - if ((wait & M_ZERO) && (m->flags & PG_ZERO) == 0) - bzero(va, PAGE_SIZE); - return (va); -} - void * uma_small_alloc(uma_zone_t zone, int bytes, u_int8_t *flags, int wait) { @@ -1202,37 +1163,8 @@ if (wired) pmap->pm_stats.wired_count++; -validate: - /* - * Now validate mapping with desired protection/wiring. - */ - newpte = pmap_phys_to_pte(pa) | pte_prot(pmap, prot) | PG_V | managed; - - if (managed) { - /* - * Set up referenced/modified emulation for the new - * mapping. Any old referenced/modified emulation - * results for the old mapping will have been recorded - * either in pmap_remove_pte() or above in the code - * which handles protection and/or wiring changes. - */ - newpte |= (PG_FOR | PG_FOW | PG_FOE); - } - - if (wired) - newpte |= PG_W; - - /* - * if the mapping or permission bits are different, we need - * to update the pte. - */ - if (origpte != newpte) { - *pte = newpte; - if (origpte) - pmap_invalidate_page(pmap, va); - if (prot & VM_PROT_EXECUTE) - alpha_pal_imb(); - } + wired = wired ? PG_W : 0; + tlb_enter(pmap, va, pa, PG_V | wired); } /*
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200403080039.i280dCMD043702>