Page MenuHomeFreeBSD

linux: Unmap the VDSO page when unloading
ClosedPublic

Authored by markj on Feb 15 2021, 11:45 PM.
Tags
None
Referenced Files
F106129690: D28696.id83980.diff
Wed, Dec 25, 9:40 PM
Unknown Object (File)
Fri, Dec 13, 6:13 PM
Unknown Object (File)
Wed, Dec 4, 7:02 AM
Unknown Object (File)
Nov 23 2024, 10:39 AM
Unknown Object (File)
Nov 20 2024, 12:48 PM
Unknown Object (File)
Nov 20 2024, 12:41 PM
Unknown Object (File)
Nov 13 2024, 10:41 PM
Unknown Object (File)
Nov 13 2024, 8:08 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
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

markj added reviewers: trasz, kib.
This revision is now accepted and ready to land.Feb 16 2021, 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.