[L4alpha-cvscommit] CVS: L4Alpha/pal memory.mar,1.6,1.7
Status: Beta
Brought to you by:
dpotts
|
From: Daniel P. <dp...@us...> - 2002-01-18 09:22:16
|
Update of /cvsroot/l4alpha/L4Alpha/pal In directory usw-pr-cvs1:/tmp/cvs-serv18320 Modified Files: memory.mar Log Message: Fixed memory leak in mem_map_page when an explicit mapping is performed on a page already mapped. Index: memory.mar =================================================================== RCS file: /cvsroot/l4alpha/L4Alpha/pal/memory.mar,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** memory.mar 2001/12/10 00:21:35 1.6 --- memory.mar 2002/01/18 09:22:10 1.7 *************** *** 499,506 **** XENDIF ! ; interrupts to be enabled when ready atomic changes. ! disable_int ! PVC_JSR mdb_add_mapping bsr=1 ! bsr ra, mdb_add_mapping IFZ v0 pop p_ra --- 499,509 ---- XENDIF ! clr v0 ! IFZ t10 ! ; interrupts to be enabled when ready atomic changes. ! disable_int ! PVC_JSR mdb_add_mapping bsr=1 ! bsr ra, mdb_add_mapping ! ENDIF IFZ v0 pop p_ra *************** *** 660,663 **** --- 663,667 ---- ; ; t9 - target page table entry ptr + ; t10 - ipte_translation_valid (1 == already present) ; ; SIDE EFFECTS *************** *** 711,718 **** ; we should get the pointer and update the (new) permissions ! GET_16CONS AT, ^x3ff ! bic t3, AT, t2 ! br zero, ipte_insert_empty ; overwrite old entry ; We don't bother flushing entry here, it can be done in TLB fault handler. --- 715,729 ---- ; we should get the pointer and update the (new) permissions ! ; GET_16CONS AT, ^x3ff ! ; bic t3, AT, t2 + ; mov t8, t9 + ; bis t2, #13, t2 ; set guard` length + ; or t2, a4, t2 + ; stq_p t2, 0(t9) ; kpush new low part + ; stq_p a1, 8(t9) ; Store new high part + clr a1 + bis zero, #1, t10 + ; We don't bother flushing entry here, it can be done in TLB fault handler. *************** *** 854,857 **** --- 865,869 ---- stq_p a1, 8(t9) ; Store new high part clr a1 + clr t10 PVC_JSR mem_insert_pte bsr=1 dest=1 ret zero, (ra) |