mirror of
https://github.com/genodelabs/genode.git
synced 2025-04-08 03:45:24 +00:00
hw: fix page table handling of core (ref #1387)
There might be more then one nested slab allocation.
This commit is contained in:
parent
4ca1284e0e
commit
34f169293f
@ -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();
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user