diff --git a/repos/base-nova/ports/nova.hash b/repos/base-nova/ports/nova.hash index bac49ceb25..fb2c200b86 100644 --- a/repos/base-nova/ports/nova.hash +++ b/repos/base-nova/ports/nova.hash @@ -1 +1 @@ -f6ac7ac73d93a11511d407f3130cc31f0c415ea4 +a807a373a599ea40bebfc36790cf695d5cf89812 diff --git a/repos/base-nova/ports/nova.port b/repos/base-nova/ports/nova.port index cc0e8e0ac2..f54be6711e 100644 --- a/repos/base-nova/ports/nova.port +++ b/repos/base-nova/ports/nova.port @@ -4,7 +4,7 @@ DOWNLOADS := nova.git # r10 branch URL(nova) := https://github.com/alex-ab/NOVA.git -REV(nova) := fc9ad04ecec3911302451fcbf6cd87063be66ad0 +REV(nova) := 62420ca0cc6e648946bab553045e9334a408b982 DIR(nova) := src/kernel/nova PATCHES := $(sort $(wildcard $(REP_DIR)/patches/*.patch)) diff --git a/repos/base-nova/src/core/pager.cc b/repos/base-nova/src/core/pager.cc index 2536fc0e3a..12e4ada647 100644 --- a/repos/base-nova/src/core/pager.cc +++ b/repos/base-nova/src/core/pager.cc @@ -990,13 +990,6 @@ const char * Pager_object::client_pd() const Pager_entrypoint::Pager_entrypoint(Rpc_cap_factory &) { - /* sanity check for pager threads */ - if (kernel_hip().cpu_max() > PAGER_CPUS) { - error("kernel supports more CPUs (", kernel_hip().cpu_max(), ") " - "than Genode (", (unsigned)PAGER_CPUS, ")"); - nova_die(); - } - /* detect enabled CPUs and create per CPU a pager thread */ platform_specific().for_each_location([&](Affinity::Location &location) { unsigned const pager_index = platform_specific().pager_index(location); @@ -1005,6 +998,12 @@ Pager_entrypoint::Pager_entrypoint(Rpc_cap_factory &) if (!kernel_hip().is_cpu_enabled(kernel_cpu_id)) return; + /* sanity check for pager threads */ + if (pager_index >= PAGER_CPUS) { + error("too many CPUs for pager"); + return; + } + pager_threads[pager_index].construct(location); }); }