Page MenuHomeFreeBSD

linux: Unmap the VDSO page when unloading
ClosedPublic

Authored by markj on Mon, Feb 15, 11:45 PM.

Details

Summary

linux_shared_page_init() creates an object and grabs and maps a single
page to back the VDSO. When destroying the VDSO object, we failed to
destroy the mapping and free KVA.

Test Plan

Load and unload linux.ko and linux64.ko.

Noticed when working on Jeff's vm_object patches.

Diff Detail

Repository
R10 FreeBSD src repository
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

markj added reviewers: trasz, kib.
This revision is now accepted and ready to land.Tue, Feb 16, 1:42 AM
This revision was automatically updated to reflect the committed changes.

https://ci.freebsd.org/job/FreeBSD-main-i386-build/19172/console shows:

13:07:49 --- all_subdir_linux ---
13:07:49 /usr/src/sys/i386/linux/linux_sysvec.c:941:54: error: too few arguments to function call, expected 2, have 1
13:07:49 __elfN(linux_shared_page_fini)(linux_shared_page_obj);
13:07:49 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^

https://ci.freebsd.org/job/FreeBSD-main-i386-build/19172/console shows:

13:07:49 --- all_subdir_linux ---
13:07:49 /usr/src/sys/i386/linux/linux_sysvec.c:941:54: error: too few arguments to function call, expected 2, have 1
13:07:49 __elfN(linux_shared_page_fini)(linux_shared_page_obj);
13:07:49 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^

Thanks, fixed.