[etherlab-dev] [Patch] User-mode deactivate bug

Gavin Lambert gavinl at compacsort.com
Tue May 27 02:17:45 CEST 2014


When using the user-mode library, I found that calling
ecrt_master_deactivate does not properly release the domain memory mapping.
In particular, the following sequence:

 - ecrt_request_master
 - (domain set up)
 - ecrt_master_activate
 - ecrt_master_deactivate
 - (domain set up)
 - ecrt_master_activate
 - ecrt_master_deactivate
 - ecrt_master_release

Does *not* result in actually releasing the master kernel module -- the
master thread remains running and the master module cannot be unloaded until
the application process terminates.

It's especially noticeable when the first domain is non-empty and the second
is empty -- during ecrt_master_release the call to munmap will fail with
EINVAL because master->process_data is non-NULL but
master->process_data_size is 0.

The attached patch resolves this by moving the munmap to
ecrt_master_deactivate instead of ecrt_master_release.

Gavin Lambert

-------------- next part --------------
A non-text attachment was scrubbed...
Name: lib-deactivate.patch
Type: application/octet-stream
Size: 743 bytes
Desc: not available
URL: <http://lists.etherlab.org/pipermail/etherlab-dev/attachments/20140527/8f25b12e/attachment-0003.obj>

More information about the Etherlab-dev mailing list