bitkeeper revision 1.7.1.1 (3decad1ePVKQauMNZAn2SK7OMrAlDg)

memory.c:
  Page-table update fix. Update even non-pagetable pages.
This commit is contained in:
kaf24@plym.cl.cam.ac.uk committed 2002-12-03 13:09:50 +00:00
1 parent 73db0f0b5e
commit c5d7f06901
1 file changed
+16
+16
View File
@@ -580,6 +580,9 @@ int do_process_page_updates(page_update_request_t *updates, int count)
err = put_l2_table(cur.val >> PAGE_SHIFT);
}
break;
default:
MEM_LOG("Invalid page update command %08lx", cur.ptr);
break;
}
}
else if ( (cur.ptr & (sizeof(l1_pgentry_t)-1)) || (pfn >= max_page) )
@@ -603,6 +606,19 @@ int do_process_page_updates(page_update_request_t *updates, int count)
err = mod_l2_entry((l2_pgentry_t *)__va(cur.ptr),
mk_l2_pgentry(cur.val));
break;
default:
/*
* This might occur if a page-table update is
* requested before we've inferred the type
* of the containing page. It shouldn't happen
* if page tables are built strictly top-down, so
* we have a MEM_LOG warning message.
*/
MEM_LOG("Unnecessary update to non-pt page %08lx",
cur.ptr);
*(unsigned long *)__va(cur.ptr) = cur.val;
err = 0;
break;
}
}
}
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.