genode/base
Alexander Boettcher f02958b25f base: fix faults in rm_session de-constructor path
First make the clients inaccessible and dissolve them from the entrypoint. If
this isn't the first step the clients may be obtained again between
the unlock and lock steps in the destructor.

Additionally the clients may be removed in between the unlock and call
sequence, which renders such client pointers dangling and causes spurious page
faults. Keep instead a lock as long as possible and when it is required to
release a lock, then the pointer to the objects must be revalidated.

Replace the dissolve function with a remove_client implementation as suggested
by #13, which avoids that the cpu_session may call dissolve with a dangling
pointer of a already removed rm_client object. Instead the pager must be
released explicitly.

Related to issue #549
Related to issue #394
Related to issue #13
2013-02-11 12:01:25 +01:00
..
etc Imported Genode release 11.11 2011-12-22 16:19:25 +01:00
include Let memcmp correspond to the C standard (fix #628) 2013-01-24 11:02:49 +01:00
lib Move 'Child' API implementation to library 2012-10-09 13:45:33 +02:00
mk base-hw & imx31: userland timer driver 2013-01-08 11:36:52 +01:00
run base: enable rm_fault test case for nova 2013-01-16 16:06:36 +01:00
src base: fix faults in rm_session de-constructor path 2013-02-11 12:01:25 +01:00
README Imported Genode release 11.11 2011-12-22 16:19:25 +01:00

This is generic part of the Genode implementation. It consists of two parts:

:_Core_: is the ultimate root of the Genode application tree
  and provides abstractions for the lowest-level hardware resources
  such as RAM, ROM, CPU, and generic device access. All generic parts of Core
  can be found here - for system-specific implementations refer to the
  appropriate 'base-<system>' directory.

:_Base libraries and protocols_: that are used by each Genode component
  to interact with other components. This is the glue that holds everything
  together.