hw: fix page table handling of core (ref #1387)

There might be more then one nested slab allocation.
This commit is contained in:
Stefan Kalkowski 2014-09-29 11:34:32 +02:00 committed by Christian Helmuth
parent 4ca1284e0e
commit 34f169293f
1 changed files with 2 additions and 1 deletions

View File

@ -214,7 +214,7 @@ bool Genode::map_local(addr_t from_phys, addr_t to_virt, size_t num_pages,
Translation_table *tt = Kernel::core_pd()->translation_table();
try {
for (unsigned i = 0; i < 2; i++) {
for (;;) {
try {
Lock::Guard guard(*Kernel::core_pd()->platform_pd()->lock());
@ -223,6 +223,7 @@ bool Genode::map_local(addr_t from_phys, addr_t to_virt, size_t num_pages,
Kernel::core_pd()->platform_pd()->page_slab());
return true;
} catch(Page_slab::Out_of_slabs) {
PDBG("Page_slab::Out_of_slabs");
Kernel::core_pd()->platform_pd()->page_slab()->alloc_slab_block();
}
}