Fiasco.OC: Map ROM-modules in advance (fix #157).

There seems to be a bug in Fiasco.OC, that is hard to reproduce. The scenario
discussed in issue #157 triggers it relatively often. When sigma0 handles
pagefaults of core on demand at runtime, at some point its reply ipc-message
gets stucked in the kernel. This commit touches all ROM-modules when the
platform is initialized in advance (like it was done for RAM etc. already
before).
This commit is contained in:
Stefan Kalkowski 2012-03-20 16:52:58 +01:00 committed by Norman Feske
parent 890a3ee868
commit 1520d9c1d9
1 changed files with 3 additions and 0 deletions

View File

@ -417,6 +417,9 @@ void Platform::_setup_rom()
Rom_module *new_rom = new(core_mem_alloc()) Rom_module(rom);
_rom_fs.insert(new_rom);
/* map module */
touch_ro((const void*)new_rom->addr(), new_rom->size());
if (verbose)
printf(" mod[%d] [%p,%p) %s\n", i,
(void *)new_rom->addr(), ((char *)new_rom->addr()) + new_rom->size(),