From b0052a71be079cdffaca10e45c7414d26ec5b526 Mon Sep 17 00:00:00 2001 From: Stefan Kalkowski Date: Mon, 13 Jan 2025 13:30:01 +0100 Subject: [PATCH] hw: remove unused object pool of pager ojects Fix genodelabs/genode#5417 --- repos/base-hw/src/core/pager.cc | 12 ------------ repos/base-hw/src/core/pager.h | 13 ++++++------- 2 files changed, 6 insertions(+), 19 deletions(-) diff --git a/repos/base-hw/src/core/pager.cc b/repos/base-hw/src/core/pager.cc index dcb0f9c4fe..98855756a8 100644 --- a/repos/base-hw/src/core/pager.cc +++ b/repos/base-hw/src/core/pager.cc @@ -75,11 +75,7 @@ void Pager_object::wake_up() void Pager_object::start_paging(Kernel_object &receiver, Platform_thread &pager_thread) { - using Object = Kernel_object; - using Entry = Object_pool::Entry; - create(*receiver, (unsigned long)this); - Entry::cap(Object::_cap); _pager_thread = &pager_thread; } @@ -101,7 +97,6 @@ Pager_object::Pager_object(Cpu_session_capability cpu_session_cap, Affinity::Location location, Session_label const &, Cpu_session::Name const &) : - Object_pool::Entry(Kernel_object::_cap), _badge(badge), _location(location), _cpu_session_cap(cpu_session_cap), _thread_cap(thread_cap) { } @@ -198,12 +193,6 @@ Pager_entrypoint::Thread::Thread(Affinity::Location cpu) void Pager_entrypoint::dissolve(Pager_object &o) { Kernel::kill_signal_context(Capability_space::capid(o.cap())); - - unsigned const cpu = o.location().xpos(); - if (cpu >= _cpus) - error("Invalid location of pager object ", cpu); - else - _threads[cpu].remove(&o); } @@ -215,7 +204,6 @@ Pager_capability Pager_entrypoint::manage(Pager_object &o) } else { o.start_paging(_threads[cpu]._kobj, *_threads[cpu].native_thread().platform_thread); - _threads[cpu].insert(&o); } return reinterpret_cap_cast(o.cap()); diff --git a/repos/base-hw/src/core/pager.h b/repos/base-hw/src/core/pager.h index b110ff4fea..3932bb22fe 100644 --- a/repos/base-hw/src/core/pager.h +++ b/repos/base-hw/src/core/pager.h @@ -17,7 +17,6 @@ /* Genode includes */ #include #include -#include #include #include @@ -100,11 +99,9 @@ class Core::Ipc_pager }; -class Core::Pager_object : private Object_pool::Entry, - private Kernel_object +class Core::Pager_object : private Kernel_object { friend class Pager_entrypoint; - friend class Object_pool; private: @@ -138,6 +135,8 @@ class Core::Pager_object : private Object_pool::Entry, Affinity::Location, Session_label const&, Cpu_session::Name const&); + virtual ~Pager_object() {} + /** * User identification of pager object */ @@ -215,7 +214,8 @@ class Core::Pager_object : private Object_pool::Entry, Cpu_session_capability cpu_session_cap() const { return _cpu_session_cap; } Thread_capability thread_cap() const { return _thread_cap; } - using Object_pool::Entry::cap; + Untyped_capability cap() { + return Kernel_object::_cap; } }; @@ -225,8 +225,7 @@ class Core::Pager_entrypoint friend class Platform; - class Thread : public Object_pool, - public Genode::Thread, + class Thread : public Genode::Thread, private Ipc_pager { private: