Port-arm archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: vmem(9) and arm32/pmap.c changes (Re: CVS commit: src)



On Saturday 28 January 2012 03:29:00 Izumi Tsutsui wrote:
> > Module Name:        src
> > Committed By:       para
> > Date:               Fri Jan 27 19:48:42 UTC 2012
> > 
> > Modified Files:
> > Log Message:
> > extending vmem(9) to be able to allocated resources for it's own needs.
> > simplifying uvm_map handling (no special kernel entries anymore no
> > relocking) make malloc(9) a thin wrapper around kmem(9)
> > (with private interface for interrupt safety reasons)
> > 
> > releng@ acknowledged
> > 
> > 
> > 
> > Module Name:        src
> > Committed By:       matt
> > Date:               Sat Jan 28 00:11:47 UTC 2012
> > 
> > Modified Files:
> >     src/sys/arch/arm/arm32: pmap.c
> > 
> > Log Message:
> > Don't use simple locks.
> 
> Now my zaurus stops booting:

I think the attached should fix it and is correct. That is, only managed 
mappings will have uvm_page_locked_p

Nick
Index: sys/arch/arm/arm32/pmap.c
===================================================================
RCS file: /cvsroot/src/sys/arch/arm/arm32/pmap.c,v
retrieving revision 1.226
diff -u -p -u -r1.226 pmap.c
--- sys/arch/arm/arm32/pmap.c   28 Jan 2012 00:11:46 -0000      1.226
+++ sys/arch/arm/arm32/pmap.c   28 Jan 2012 09:02:13 -0000
@@ -3439,10 +3438,10 @@ pmap_kremove(vaddr_t va, vsize_t len)
                        opte = *ptep;
                        opg = PHYS_TO_VM_PAGE(l2pte_pa(opte));
                        if (opg) {
-                               KASSERT(uvm_page_locked_p(opg));
                                struct vm_page_md *omd = VM_PAGE_TO_MD(opg);
 
                                if (omd->pvh_attrs & PVF_KMPAGE) {
+                                       KASSERT(uvm_page_locked_p(opg));
                                        KASSERT(omd->urw_mappings == 0);
                                        KASSERT(omd->uro_mappings == 0);
                                        KASSERT(omd->krw_mappings == 0);


Home | Main Index | Thread Index | Old Index