freebsd-dev/sys/i386
Conrad Meyer 4ae224c663 Revert r240317 to prevent leaking pmap entries
Subsequent to r240317, kmem_free() was replaced with kva_free() (r254025).
kva_free() releases the KVA allocation for the mapped region, but no longer
clears the pmap (pagetable) entries.

An affected pmap_unmapdev operation would leave the still-pmap'd VA space
free for allocation by other KVA consumers.  However, this bug easily
avoided notice for ~7 years because most devices (1) never call
pmap_unmapdev and (2) on amd64, mostly fit within the DMAP and do not need
KVA allocations.  Other affected arch are less popular: i386, MIPS, and
PowerPC.  Arm64, arm32, and riscv are not affected.

Reported by:	Don Morris <dgmorris AT earthlink.net>
Submitted by:	Don Morris (amd64 part)
Reviewed by:	kib, markj, Don (!amd64 parts)
MFC after:	I don't intend to, but you might want to
Sponsored by:	Dell Isilon
Differential Revision:	https://reviews.freebsd.org/D25689
2020-07-16 23:29:26 +00:00
..
acpica Merge ACPICA 20190329. 2019-03-29 20:21:28 +00:00
bios Use NULL for SYSINIT's last arg, which is a pointer type 2018-05-18 17:58:09 +00:00
cloudabi32 Use uintptr_t instead of register_t * for the stack base. 2019-12-03 23:17:54 +00:00
conf Switch from SCTP to SCTP_SUPPORT in GENERIC configs. 2020-07-16 15:09:04 +00:00
i386 Revert r240317 to prevent leaking pmap entries 2020-07-16 23:29:26 +00:00
include amd64: allow parallel shootdown IPIs 2020-07-14 20:37:50 +00:00
linux linuxolator: implement memfd_create syscall 2020-06-29 03:09:14 +00:00
pci Detect invalid PCI devices more correctly in PCI interrupt router drivers. 2019-08-06 23:15:04 +00:00
Makefile Remove iBCS2, part2: general kernel 2018-12-19 21:57:58 +00:00