ia64/xen-unstable

changeset 2670:03612420798a

bitkeeper revision 1.1159.117.2 (4176a216CU3JD-3Q5NlBFwP8DCqzVg)

Additional fixes to the writable pagetable error paths.
author cl349@freefall.cl.cam.ac.uk
date Wed Oct 20 17:36:22 2004 +0000 (2004-10-20)
parents 6b58e5458fcd
children 3a1793ba6859
files xen/arch/x86/memory.c xen/common/schedule.c
line diff
     1.1 --- a/xen/arch/x86/memory.c	Wed Oct 20 16:23:51 2004 +0000
     1.2 +++ b/xen/arch/x86/memory.c	Wed Oct 20 17:36:22 2004 +0000
     1.3 @@ -1682,6 +1682,8 @@ void ptwr_flush(const int which)
     1.4               */
     1.5              memcpy(&pl1e[i], &ptwr_info[cpu].ptinfo[which].page[i],
     1.6                     (ENTRIES_PER_L1_PAGETABLE - i) * sizeof(l1_pgentry_t));
     1.7 +            unmap_domain_mem(pl1e);
     1.8 +            ptwr_info[cpu].ptinfo[which].l1va = 0;
     1.9              domain_crash();
    1.10          }
    1.11          
     2.1 --- a/xen/common/schedule.c	Wed Oct 20 16:23:51 2004 +0000
     2.2 +++ b/xen/common/schedule.c	Wed Oct 20 17:36:22 2004 +0000
     2.3 @@ -326,6 +326,9 @@ void __enter_scheduler(void)
     2.4      task_slice_t        next_slice;
     2.5      s32                 r_time;     /* time for new dom to run */
     2.6  
     2.7 +    cleanup_writable_pagetable(
     2.8 +        prev, PTWR_CLEANUP_ACTIVE | PTWR_CLEANUP_INACTIVE);
     2.9 +
    2.10      perfc_incrc(sched_run);
    2.11      
    2.12      spin_lock_irq(&schedule_data[cpu].schedule_lock);
    2.13 @@ -373,9 +376,6 @@ void __enter_scheduler(void)
    2.14      if ( unlikely(prev == next) )
    2.15          return;
    2.16      
    2.17 -    cleanup_writable_pagetable(
    2.18 -        prev, PTWR_CLEANUP_ACTIVE | PTWR_CLEANUP_INACTIVE);
    2.19 -
    2.20      perfc_incrc(sched_ctx);
    2.21  
    2.22  #if defined(WAKE_HISTO)