freebsd-dev/sys
John Baldwin a3f2a9c57e Clear the upper 32-bits of registers in x86_emulate_cpuid().
Per the Intel manuals, CPUID is supposed to unconditionally zero the
upper 32 bits of the involved (rax/rbx/rcx/rdx) registers.
Previously, the emulation would cast pointers to the 64-bit register
values down to `uint32_t`, which while properly manipulating the lower
bits, would leave any garbage in the upper bits uncleared.  While no
existing guest OSes seem to stumble over this in practice, the bhyve
emulation should match x86 expectations.

This was discovered through alignment warnings emitted by gcc9, while
testing it against SmartOS/bhyve.

SmartOS bug:	https://smartos.org/bugview/OS-8168
Submitted by:	Patrick Mooney
Reviewed by:	rgrimes
Differential Revision:	https://reviews.freebsd.org/D24727
2020-10-01 16:45:11 +00:00
..
amd64 Clear the upper 32-bits of registers in x86_emulate_cpuid(). 2020-10-01 16:45:11 +00:00
arm Get rid of sa->narg. It serves no purpose; use sa->callp->sy_narg instead. 2020-09-27 18:47:06 +00:00
arm64 Add cd device to arm64 GENERIC 2020-10-01 13:29:29 +00:00
bsm bsm: add AUE_CLOSERANGE 2020-04-24 01:27:25 +00:00
cam Revert most of r360179. 2020-09-25 21:19:56 +00:00
cddl loader: zfs should support bootonce an nextboot 2020-09-21 09:01:10 +00:00
compat Regen after r366145. 2020-09-25 10:05:38 +00:00
conf Rename kernel option ACPI_DMAR to IOMMU. 2020-09-29 20:29:07 +00:00
contrib Continued ipfilter #ifdef cleanup. The r343701 log entry contains a 2020-09-30 08:26:25 +00:00
crypto Don't return errors from the cryptodev_process() method. 2020-09-08 22:41:35 +00:00
ddb ddb: clean up empty lines in .c and .h files 2020-09-01 22:14:30 +00:00
dev Fix the inverted condition in mtx_asserts. 2020-10-01 09:50:08 +00:00
dts Remove licenses 2020-06-04 17:20:58 +00:00
fs Modify the NFSv4.2 VOP_COPY_FILE_RANGE() client call to return after one 2020-10-01 00:47:35 +00:00
gdb gdb(4): Don't escape GDB special characters at application layer 2020-09-30 14:55:54 +00:00
geom geom_part: make it possible recovering broken GPT after some LBAs cut off 2020-09-17 04:39:39 +00:00
gnu Import DTS files for arm, arm64, riscv from Linux 5.8 2020-08-04 19:44:43 +00:00
i386 Rename kernel option ACPI_DMAR to IOMMU. 2020-09-29 20:29:07 +00:00
isa
kern cache: properly report ENOTDIR on foo/bar lookups where foo is a file 2020-10-01 08:46:21 +00:00
kgssapi State kgssapi dependency on xdr. 2020-09-17 22:29:38 +00:00
libkern arm64: check for CRC32 support via HWCAP 2020-09-08 15:39:19 +00:00
mips Get rid of sa->narg. It serves no purpose; use sa->callp->sy_narg instead. 2020-09-27 18:47:06 +00:00
modules Don't define _STANDALONE when building kernel modules. 2020-09-24 07:10:34 +00:00
net add SIOCGIFDATA ioctl 2020-09-28 16:54:39 +00:00
net80211 Provide MS() and SM() macros for 80211 and wireless drivers. 2020-09-24 10:57:39 +00:00
netgraph ng_l2tp: Fix callout synchronization in the rexmit timeout handler 2020-09-25 18:55:50 +00:00
netinet Improve the input validation and processing of cookies. 2020-09-29 09:36:06 +00:00
netinet6 Rework part of routing code to reduce difference to D26449. 2020-09-21 20:02:26 +00:00
netipsec net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
netpfil net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
netsmb net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
nfs nfs: clean up empty lines in .c and .h files 2020-09-01 21:25:39 +00:00
nfsclient nfs: clean up empty lines in .c and .h files 2020-09-01 21:25:39 +00:00
nfsserver nfs: clean up empty lines in .c and .h files 2020-09-01 21:25:39 +00:00
nlm nlm: clean up empty lines in .c and .h files 2020-09-01 22:14:52 +00:00
ofed infiniband: Appease Coverty 2020-08-31 16:17:28 +00:00
opencrypto Include sys/types.h here 2020-09-15 15:21:29 +00:00
powerpc Get rid of sa->narg. It serves no purpose; use sa->callp->sy_narg instead. 2020-09-27 18:47:06 +00:00
riscv riscv: Add memmmap so we can mmap /dev/mem 2020-10-01 15:04:55 +00:00
rpc Fix a potential memory leak in the NFS over TLS handling code. 2020-09-05 00:50:52 +00:00
security mac_framework.h: fix build with DEBUG_VFS_LOCKS and !MAC 2020-09-03 20:30:52 +00:00
sys Standalone SX shims 2020-09-29 18:06:02 +00:00
teken Do a sweep and remove most WARNS=6 settings 2020-10-01 01:10:51 +00:00
tests Add small tool to invoke kernel test framework tests. 2020-09-02 09:20:40 +00:00
tools Make makesyscalls.lua initialize 'struct sysent' entries using c99 2020-09-25 09:34:00 +00:00
ufs Convert page cache read to VOP. 2020-09-15 22:06:36 +00:00
vm Flag vm_reserv and vm_phys sysctls as MPSAFE. 2020-09-23 19:36:07 +00:00
x86 Rename kernel option ACPI_DMAR to IOMMU. 2020-09-29 20:29:07 +00:00
xdr xdr: clean up empty lines in .c and .h files 2020-09-01 22:13:28 +00:00
xen xen: clean up empty lines in .c and .h files 2020-09-01 21:21:55 +00:00
Makefile