freebsd-dev/usr.sbin/bhyve
John Baldwin 7840d1c45f Update the cached MSI state when any MSI capability register is written.
bhyve uses cached copies of the MSI capability registers to generate
MSI interrupts for device models.  Previously, these cached fields
were only set when the MSI capability control register was updated.
The Linux kernel recently adopted a change to deal with races in MSI
interrupt delivery that writes to the MSI capability address and data
registers to alter the destination of MSI interrupts without writing
to the MSI capability control register.  bhyve was not updating its
cached registers for these writes and continued to send interrupts
with the old data value to the old address.  Fix this by recomputing
the cached values for every write to any MSI capability register.

Reported by:	Jason Tubnor, Ryan Moeller
Reported by:	Marc Dionne (bisected the Linux kernel commit)
Reviewed by:	grehan
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D24593
2020-04-27 22:27:35 +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
atkbdc.h
audio.c bhyve: add wrapper for debug printf statements 2020-01-08 22:55:22 +00:00
audio.h Add SPDX tags to bhyve(8) HD Audio device. 2019-06-25 06:24:56 +00:00
bhyve.8 Improve formatting of synopsis section 2020-04-22 06:32:51 +00:00
bhyvegc.c
bhyvegc.h
bhyverun.c bhyve(8): Minor cosmetic niceties in instemul failure 2020-04-15 02:34:44 +00:00
bhyverun.h
block_if.c Add VIRTIO_BLK_T_DISCARD (TRIM) support to the bhyve virtio-blk backend 2020-04-23 19:20:58 +00:00
block_if.h
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 bhyve: add wrapper for debug printf statements 2020-01-08 22:55:22 +00:00
dbgport.c
dbgport.h
debug.h bhyve: add wrapper for debug printf statements 2020-01-08 22:55:22 +00:00
fwctl.c
fwctl.h
gdb.c Support software breakpoints in the debug server on Intel CPUs. 2019-12-13 19:21:58 +00:00
gdb.h Support software breakpoints in the debug server on Intel CPUs. 2019-12-13 19:21:58 +00:00
hda_codec.c bhyve: add wrapper for debug printf statements 2020-01-08 22:55:22 +00:00
hda_reg.h Add SPDX tags to bhyve(8) HD Audio device. 2019-06-25 06:24:56 +00:00
hdac_reg.h Add SPDX tags to bhyve(8) HD Audio device. 2019-06-25 06:24:56 +00:00
inout.c
inout.h
ioapic.c
ioapic.h
iov.c bhyve: enable virtio-net mergeable rx buffers for tap(4) 2020-02-20 21:07:23 +00:00
iov.h bhyve: enable virtio-net mergeable rx buffers for tap(4) 2020-02-20 21:07:23 +00:00
Makefile bhyve(8): Add VM Generation Counter ACPI device 2020-04-15 02:00:17 +00:00
Makefile.depend Update Makefile.depend files 2019-12-11 17:37:53 +00:00
Makefile.depend.options Add Makefile.depend.options 2019-12-11 17:37:37 +00:00
mem.c
mem.h
mevent_test.c
mevent.c bhyve: rework mevent processing to fix a race condition 2019-11-12 21:07:51 +00:00
mevent.h bhyve: add backend rx backpressure to virtio-net 2019-11-03 19:02:32 +00:00
mptbl.c bhyve: add wrapper for debug printf statements 2020-01-08 22:55:22 +00:00
mptbl.h
net_backends.c bhyve: enable virtio-net mergeable rx buffers for tap(4) 2020-02-20 21:07:23 +00:00
net_backends.h Add VIRTIO_NET_F_MTU flag support for the bhyve virtio-net device. 2020-04-07 17:06:33 +00:00
net_utils.c Add VIRTIO_NET_F_MTU flag support for the bhyve virtio-net device. 2020-04-07 17:06:33 +00:00
net_utils.h Add VIRTIO_NET_F_MTU flag support for the bhyve virtio-net device. 2020-04-07 17:06:33 +00:00
pci_ahci.c bhyve: add wrapper for debug printf statements 2020-01-08 22:55:22 +00:00
pci_e82545.c bhyve: move virtio-net header processing to pci_virtio_net 2020-02-12 22:44:18 +00:00
pci_emul.c Update the cached MSI state when any MSI capability register is written. 2020-04-27 22:27:35 +00:00
pci_emul.h Keep the shadow PCIR_COMMAND synced with the real one for pass through. 2019-06-07 15:53:27 +00:00
pci_fbuf.c Bhyve: DPRINTF already includes newline, so don't add another 2020-03-18 03:15:57 +00:00
pci_hda.c bhyve: add wrapper for debug printf statements 2020-01-08 22:55:22 +00:00
pci_hda.h bhyve: add wrapper for debug printf statements 2020-01-08 22:55:22 +00:00
pci_hostbridge.c
pci_irq.c
pci_irq.h
pci_lpc.c bhyve(8): Add bootrom allocation abstraction 2020-04-15 01:58:51 +00:00
pci_lpc.h
pci_nvme.c bhyve: fix NVMe emulation update of SQHD 2020-03-27 15:28:27 +00:00
pci_passthru.c Emulate reads of the PCI command register for passthrough devices. 2019-12-11 23:41:39 +00:00
pci_uart.c bhyve: add wrapper for debug printf statements 2020-01-08 22:55:22 +00:00
pci_virtio_block.c Add VIRTIO_BLK_T_DISCARD (TRIM) support to the bhyve virtio-blk backend 2020-04-23 19:20:58 +00:00
pci_virtio_console.c bhyve: add wrapper for debug printf statements 2020-01-08 22:55:22 +00:00
pci_virtio_net.c Add VIRTIO_NET_F_MTU flag support for the bhyve virtio-net device. 2020-04-07 17:06:33 +00:00
pci_virtio_rnd.c bhyve: add wrapper for debug printf statements 2020-01-08 22:55:22 +00:00
pci_virtio_scsi.c bhyve: add wrapper for debug printf statements 2020-01-08 22:55:22 +00:00
pci_xhci.c bhyve: add wrapper for debug printf statements 2020-01-08 22:55:22 +00:00
pci_xhci.h
pm.c bhyve(8): Add VM Generation Counter ACPI device 2020-04-15 02:00:17 +00:00
post.c
ps2kbd.c bhyve: add wrapper for debug printf statements 2020-01-08 22:55:22 +00:00
ps2kbd.h
ps2mouse.c bhyve: add wrapper for debug printf statements 2020-01-08 22:55:22 +00:00
ps2mouse.h
rfb.c Bhyve: log message when rfb client connects 2020-03-18 03:17:15 +00:00
rfb.h
rtc.c
rtc.h
smbiostbl.c In the past changes have been made to smbios->minor without updating the 2020-04-07 23:17:44 +00:00
smbiostbl.h
sockstream.c
sockstream.h
spinup_ap.c
spinup_ap.h
task_switch.c bhyve: add wrapper for debug printf statements 2020-01-08 22:55:22 +00:00
uart_emul.c bhyve: add wrapper for debug printf statements 2020-01-08 22:55:22 +00:00
uart_emul.h
usb_emul.c
usb_emul.h
usb_mouse.c bhyve: add wrapper for debug printf statements 2020-01-08 22:55:22 +00:00
vga.c
vga.h
virtio.c bhyve: add wrapper for debug printf statements 2020-01-08 22:55:22 +00:00
virtio.h bhyve: add support for virtio-net mergeable rx buffers 2019-11-08 17:57:03 +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 bhyve, bhyvectl: Add Hygon Dhyana support. 2020-02-13 19:05:14 +00:00
xmsr.h