freebsd-skq/usr.sbin/bhyve
Ryan Moeller 60dc6bee1f bhyve: Update TX descriptor base address and host mapping on change
bhyve sometimes segfaults when using an e1000 NIC with a Windows guest.

We are only updating our tdba and cached host mapping when the low address
register is written and when tx is set enabled, but not when the high address
or length registers are written. It is observed that Windows 10 is occasionally
enabling tx first then writing the registers in the order low, high, len. This
leaves us with a bogus base address and mapping, which causes a segfault later
when we try to copy from a descriptor that has unpredictable garbage in a
pointer.

Updating the address and mapping when any of those registers change seems to fix
that particular issue.

Reviewed by:	mav, grehan (bhyve)
MFC after:	1 week
Sponsored by:	iXsystems, Inc.
Differential Revision:	https://reviews.freebsd.org/D26798
2020-10-16 20:27:20 +00:00
..
acpi.c bhyve(8): Add VM Generation Counter ACPI device 2020-04-15 02:00:17 +00:00
acpi.h bhyve(8): Add VM Generation Counter ACPI device 2020-04-15 02:00:17 +00:00
ahci.h
atkbdc.c Initial support for bhyve save and restore. 2020-05-05 00:02:04 +00:00
atkbdc.h Initial support for bhyve save and restore. 2020-05-05 00:02:04 +00:00
audio.c
audio.h
bhyve.8 Add virtio-9p (aka VirtFS) filesystem sharing to bhyve. 2020-10-03 19:05:13 +00:00
bhyvegc.c
bhyvegc.h
bhyverun.c bhyve: allow for automatic destruction on power-off 2020-06-25 12:35:20 +00:00
bhyverun.h Initial support for bhyve save and restore. 2020-05-05 00:02:04 +00:00
block_if.c Initial support for bhyve save and restore. 2020-05-05 00:02:04 +00:00
block_if.h Initial support for bhyve save and restore. 2020-05-05 00:02:04 +00:00
bootrom.c bhyve(8): Add bootrom allocation abstraction 2020-04-15 01:58:51 +00:00
bootrom.h bhyve(8): Add bootrom allocation abstraction 2020-04-15 01:58:51 +00:00
console.c
console.h
consport.c
dbgport.c
dbgport.h
debug.h
fwctl.c
fwctl.h
gdb.c Add bhyve support for LA57 guest mode. 2020-08-23 20:37:21 +00:00
gdb.h
hda_codec.c
hda_reg.h
hdac_reg.h
inout.c
inout.h
ioapic.c
ioapic.h
iov.c
iov.h
kernemu_dev.c vmm(4), bhyve(8): Expose kernel-emulated special devices to userspace 2020-05-15 15:54:22 +00:00
kernemu_dev.h vmm(4), bhyve(8): Expose kernel-emulated special devices to userspace 2020-05-15 15:54:22 +00:00
Makefile Add virtio-9p (aka VirtFS) filesystem sharing to bhyve. 2020-10-03 19:05:13 +00:00
Makefile.depend Initial support for bhyve save and restore. 2020-05-05 00:02:04 +00:00
Makefile.depend.options
mem.c
mem.h
mevent_test.c
mevent.c Initial support for bhyve save and restore. 2020-05-05 00:02:04 +00:00
mevent.h
mptbl.c
mptbl.h
net_backends.c bhyve: Fix processing of netgraph backend options. 2020-05-15 11:03:27 +00:00
net_backends.h bhyve: Pass the full string of options to the network backends. 2020-05-08 17:15:54 +00:00
net_utils.c
net_utils.h
pci_ahci.c bhyve: Fix build with option BHYVE_SNAPSHOT 2020-10-01 17:16:05 +00:00
pci_e82545.c bhyve: Update TX descriptor base address and host mapping on change 2020-10-16 20:27:20 +00:00
pci_emul.c Fix pci-passthru MSI issues with OpenBSD guests 2020-05-25 06:25:31 +00:00
pci_emul.h Fix pci-passthru MSI issues with OpenBSD guests 2020-05-25 06:25:31 +00:00
pci_fbuf.c Initial support for bhyve save and restore. 2020-05-05 00:02:04 +00:00
pci_hda.c
pci_hda.h
pci_hostbridge.c
pci_irq.c
pci_irq.h
pci_lpc.c Initial support for bhyve save and restore. 2020-05-05 00:02:04 +00:00
pci_lpc.h
pci_nvme.c bhyve: NVMe queue create must init head/tail 2020-08-24 01:51:21 +00:00
pci_passthru.c Fix pci-passthru MSI issues with OpenBSD guests 2020-05-25 06:25:31 +00:00
pci_uart.c
pci_virtio_9p.c Add virtio-9p (aka VirtFS) filesystem sharing to bhyve. 2020-10-03 19:05:13 +00:00
pci_virtio_block.c Initial support for bhyve save and restore. 2020-05-05 00:02:04 +00:00
pci_virtio_console.c
pci_virtio_net.c bhyve: Pass the full string of options to the network backends. 2020-05-08 17:15:54 +00:00
pci_virtio_rnd.c
pci_virtio_scsi.c
pci_xhci.c Advertise 64-bit physical-address capability. 2020-07-10 07:26:50 +00:00
pci_xhci.h
pm.c Silence ACPI RTC error/warning in Linux guests. 2020-07-06 08:36:14 +00:00
post.c
ps2kbd.c Initial support for bhyve save and restore. 2020-05-05 00:02:04 +00:00
ps2kbd.h Initial support for bhyve save and restore. 2020-05-05 00:02:04 +00:00
ps2mouse.c Initial support for bhyve save and restore. 2020-05-05 00:02:04 +00:00
ps2mouse.h Initial support for bhyve save and restore. 2020-05-05 00:02:04 +00:00
rfb.c
rfb.h
rtc.c
rtc.h
smbiostbl.c
smbiostbl.h
snapshot.c Initial support for bhyve save and restore. 2020-05-05 00:02:04 +00:00
snapshot.h Initial support for bhyve save and restore. 2020-05-05 00:02:04 +00:00
sockstream.c
sockstream.h
spinup_ap.c
spinup_ap.h
task_switch.c
uart_emul.c Initial support for bhyve save and restore. 2020-05-05 00:02:04 +00:00
uart_emul.h Initial support for bhyve save and restore. 2020-05-05 00:02:04 +00:00
usb_emul.c
usb_emul.h Initial support for bhyve save and restore. 2020-05-05 00:02:04 +00:00
usb_mouse.c Fix byte-reversal of language ID in string descriptor. 2020-09-18 05:54:59 +00:00
vga.c
vga.h
virtio.c Initial support for bhyve save and restore. 2020-05-05 00:02:04 +00:00
virtio.h Add virtio-9p (aka VirtFS) filesystem sharing to bhyve. 2020-10-03 19:05:13 +00:00
vmgenc.c bhyve(8): Correct copyright boilerplate for r359950 2020-04-15 05:55:14 +00:00
vmgenc.h bhyve(8): Correct copyright boilerplate for r359950 2020-04-15 05:55:14 +00:00
xmsr.c
xmsr.h