freebsd kernel with SKQ
Go to file
jtl 8222f5cb7c Make UMA and malloc(9) return non-executable memory in most cases.
Most kernel memory that is allocated after boot does not need to be
executable.  There are a few exceptions.  For example, kernel modules
do need executable memory, but they don't use UMA or malloc(9).  The
BPF JIT compiler also needs executable memory and did use malloc(9)
until r317072.

(Note that a side effect of r316767 was that the "small allocation"
path in UMA on amd64 already returned non-executable memory.  This
meant that some calls to malloc(9) or the UMA zone(9) allocator could
return executable memory, while others could return non-executable
memory.  This change makes the behavior consistent.)

This change makes malloc(9) return non-executable memory unless the new
M_EXEC flag is specified.  After this change, the UMA zone(9) allocator
will always return non-executable memory, and a KASSERT will catch
attempts to use the M_EXEC flag to allocate executable memory using
uma_zalloc() or its variants.

Allocations that do need executable memory have various choices.  They
may use the M_EXEC flag to malloc(9), or they may use a different VM
interfact to obtain executable pages.

Now that malloc(9) again allows executable allocations, this change also
reverts most of r317072.

PR:		228927
Reviewed by:	alc, kib, markj, jhb (previous version)
Sponsored by:	Netflix
Differential Revision:	https://reviews.freebsd.org/D15691
2018-06-13 17:04:41 +00:00
bin ps(1): fix some nits 2018-06-13 00:45:35 +00:00
cddl Process CUs with a language attribute of DW_LANG_Mips_Assembler. 2018-06-11 16:33:36 +00:00
contrib Add DW_LANG_* definitions from DWARF 4 and 5. 2018-06-09 14:50:38 +00:00
crypto Merge upstream patch to unbreak tunnel forwarding. 2018-05-16 14:04:39 +00:00
etc User service foo rather than /etc/rc.d/foo. 2018-06-11 22:48:34 +00:00
gnu Use a script wrapper for <compress>grep 2018-04-25 13:23:58 +00:00
include Add time2posix and posix2time to time.h 2018-05-25 13:40:05 +00:00
kerberos5 various: general adoption of SPDX licensing ID tags. 2017-11-27 15:37:16 +00:00
lib atoi.3: bump .Dd 2018-06-13 09:07:24 +00:00
libexec Make rtld use libc_nossp_pic.a. Remove SSP shims. 2018-05-09 10:30:56 +00:00
release Enable USB OTG serial terminal on ARM SD card images. This configures 2018-06-12 16:45:52 +00:00
rescue Avoid referencing private lib names directly. 2017-11-10 07:53:02 +00:00
sbin dumpon(8): improve the examples a bit 2018-06-13 09:28:47 +00:00
secure Upgrade to OpenSSH 7.7p1. 2018-05-11 13:22:43 +00:00
share Make UMA and malloc(9) return non-executable memory in most cases. 2018-06-13 17:04:41 +00:00
stand lualoader: Match Forth module-loading behavior w.r.t flags 2018-06-12 18:42:41 +00:00
sys Make UMA and malloc(9) return non-executable memory in most cases. 2018-06-13 17:04:41 +00:00
targets Add kernel and userspace code to dump the firmware state of supported 2018-03-08 15:21:56 +00:00
tests audit(4): Fix file descriptor leaks in ATF tests 2018-06-13 17:01:57 +00:00
tools WITHOUT_NLS cleanup of more empty dirs. 2018-06-12 19:26:25 +00:00
usr.bin top(1): remove unneeded logic 2018-06-13 11:12:52 +00:00
usr.sbin While I was investigating CID 1194192 related with a resource leak on mrp memory 2018-06-13 11:49:34 +00:00
.arcconfig
.arclint arc lint: ignore /tests/ in chmod 2017-12-19 03:38:06 +00:00
.gitattributes .git*: add gitattributes and gitignore 2017-12-25 21:07:54 +00:00
.gitignore .git*: add gitattributes and gitignore 2017-12-25 21:07:54 +00:00
COPYRIGHT Remove 'All Rights Reserved' from the collection copyright and templates. 2018-05-09 02:02:49 +00:00
LOCKS LOCKS: update current locks 2018-06-09 03:08:04 +00:00
MAINTAINERS Pass on bhyve kernel module maintenance to 2018-06-10 04:25:19 +00:00
Makefile Restore arm, riscv, sparc64, and mips to UNIVERSE after r334128 2018-05-24 14:01:22 +00:00
Makefile.inc1 Bump __FreeBSD_version after r334881 and force libdwarf to be rebuilt. 2018-06-09 20:01:03 +00:00
Makefile.libcompat libpmc/pmu: enable for i386 as well 2018-05-31 22:26:55 +00:00
Makefile.sys.inc AUTO_OBJ: For all top-level targets enforce using an OBJDIR. 2017-12-05 21:29:47 +00:00
ObsoleteFiles.inc Revert r334929 2018-06-10 19:15:38 +00:00
README README: Reduce the textdump; describe the project 2018-05-23 04:09:01 +00:00
README.md README: Reduce the textdump; describe the project 2018-05-23 04:09:01 +00:00
UPDATING Explain why a __FreeBSD_version bump was done for r334930. 2018-06-12 22:52:27 +00:00

FreeBSD Source:

This is the top level of the FreeBSD source directory. This file was last revised on: FreeBSD

FreeBSD is an operating system used to power modern servers, desktops, and embedded platforms. A large community has continually developed it for more than thirty years. Its advanced networking, security, and storage features have made FreeBSD the platform of choice for many of the busiest web sites and most pervasive embedded networking and storage devices.

For copyright information, please see the file COPYRIGHT in this directory. Additional copyright information also exists for some sources in this tree - please see the specific source directories for more information.

The Makefile in this directory supports a number of targets for building components (or all) of the FreeBSD source tree. See build(7), config(8), https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/makeworld.html, and https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig.html for more information, including setting make(1) variables.

Source Roadmap:

bin		System/user commands.

cddl		Various commands and libraries under the Common Development
		and Distribution License.

contrib		Packages contributed by 3rd parties.

crypto		Cryptography stuff (see crypto/README).

etc		Template files for /etc.

gnu		Various commands and libraries under the GNU Public License.
		Please see gnu/COPYING* for more information.

include		System include files.

kerberos5	Kerberos5 (Heimdal) package.

lib		System libraries.

libexec		System daemons.

release		Release building Makefile & associated tools.

rescue		Build system for statically linked /rescue utilities.

sbin		System commands.

secure		Cryptographic libraries and commands.

share		Shared resources.

stand		Boot loader sources.

sys		Kernel sources.

sys/<arch>/conf Kernel configuration file

tests		Regression tests which can be run by Kyua.  See tests/README
		for additional information.

tools		Utilities for regression testing and miscellaneous tasks.

usr.bin		User commands.

usr.sbin	System administration commands.

For information on synchronizing your source tree with one or more of the FreeBSD Project's development branches, please see:

https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/current-stable.html