freebsd-skq/usr.sbin/bhyve
jhb e8a9ef1b0e 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 Fix style(9) space vs tab. 2018-06-14 01:34:53 +00:00
atkbdc.c Add SPDX tags to bhyve(8). 2018-06-13 03:22:08 +00:00
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 When this code was introduced at r300829 the author forgot to add 2018-06-13 04:00:21 +00:00
bhyvegc.h Add SPDX tags to bhyve(8). 2018-06-13 03:22:08 +00:00
bhyverun.c bhyve(8): Minor cosmetic niceties in instemul failure 2020-04-15 02:34:44 +00:00
bhyverun.h Make bhyve SMBIOS table topology aware 2019-04-25 22:53:55 +00:00
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 Increase the VirtIO segment count to support modern Windows guests. 2019-05-02 22:46:37 +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 Add SPDX tags to bhyve(8). 2018-06-13 03:22:08 +00:00
console.h Fix style(9) space vs tab. 2018-06-14 01:34:53 +00:00
consport.c bhyve: add wrapper for debug printf statements 2020-01-08 22:55:22 +00:00
dbgport.c Use capsicum_helpers(3) that allow us to simplify the code and its functions 2019-01-16 00:39:23 +00:00
dbgport.h various: general adoption of SPDX licensing ID tags. 2017-11-27 15:37:16 +00:00
debug.h bhyve: add wrapper for debug printf statements 2020-01-08 22:55:22 +00:00
fwctl.c Always treat firmware request and response sizes as unsigned. 2018-12-04 18:28:25 +00:00
fwctl.h Add SPDX tags to bhyve(8). 2018-06-13 03:22:08 +00:00
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 Fix style(9) space vs tab. 2018-06-14 01:34:53 +00:00
inout.h various: general adoption of SPDX licensing ID tags. 2017-11-27 15:37:16 +00:00
ioapic.c various: general adoption of SPDX licensing ID tags. 2017-11-27 15:37:16 +00:00
ioapic.h various: general adoption of SPDX licensing ID tags. 2017-11-27 15:37:16 +00:00
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 Add support for writing to guest memory in the debug server. 2019-05-24 00:34:13 +00:00
mem.h Add support for writing to guest memory in the debug server. 2019-05-24 00:34:13 +00:00
mevent_test.c Improve bhyve exit(3) error code. 2018-07-11 03:23:09 +00:00
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 various: general adoption of SPDX licensing ID tags. 2017-11-27 15:37:16 +00:00
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 various: general adoption of SPDX licensing ID tags. 2017-11-27 15:37:16 +00:00
pci_irq.c Add SPDX tags to bhyve(8). 2018-06-13 03:22:08 +00:00
pci_irq.h Add SPDX tags to bhyve(8). 2018-06-13 03:22:08 +00:00
pci_lpc.c bhyve(8): Add bootrom allocation abstraction 2020-04-15 01:58:51 +00:00
pci_lpc.h Add -s "help" and -l "help" to print a list of supported PCI and LPC devices. 2018-08-22 20:23:08 +00:00
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 Add SPDX tags to bhyve(8). 2018-06-13 03:22:08 +00:00
pm.c bhyve(8): Add VM Generation Counter ACPI device 2020-04-15 02:00:17 +00:00
post.c various: general adoption of SPDX licensing ID tags. 2017-11-27 15:37:16 +00:00
ps2kbd.c bhyve: add wrapper for debug printf statements 2020-01-08 22:55:22 +00:00
ps2kbd.h Add SPDX tags to bhyve(8). 2018-06-13 03:22:08 +00:00
ps2mouse.c bhyve: add wrapper for debug printf statements 2020-01-08 22:55:22 +00:00
ps2mouse.h Add SPDX tags to bhyve(8). 2018-06-13 03:22:08 +00:00
rfb.c Bhyve: log message when rfb client connects 2020-03-18 03:17:15 +00:00
rfb.h Add SPDX tags to bhyve(8). 2018-06-13 03:22:08 +00:00
rtc.c Fix style(9) space vs tab. 2018-06-14 01:34:53 +00:00
rtc.h various: general adoption of SPDX licensing ID tags. 2017-11-27 15:37:16 +00:00
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 various: general adoption of SPDX licensing ID tags. 2017-11-27 15:37:16 +00:00
sockstream.c Fix style(9) space vs tab. 2018-06-14 01:34:53 +00:00
sockstream.h Add SPDX tags to bhyve(8). 2018-06-13 03:22:08 +00:00
spinup_ap.c various: general adoption of SPDX licensing ID tags. 2017-11-27 15:37:16 +00:00
spinup_ap.h various: general adoption of SPDX licensing ID tags. 2017-11-27 15:37:16 +00:00
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 various: general adoption of SPDX licensing ID tags. 2017-11-27 15:37:16 +00:00
usb_emul.c Add SPDX tags to bhyve(8). 2018-06-13 03:22:08 +00:00
usb_emul.h Add SPDX tags to bhyve(8). 2018-06-13 03:22:08 +00:00
usb_mouse.c bhyve: add wrapper for debug printf statements 2020-01-08 22:55:22 +00:00
vga.c Add SPDX tags to bhyve(8). 2018-06-13 03:22:08 +00:00
vga.h Fix style(9) space vs tab. 2018-06-14 01:34:53 +00:00
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 various: general adoption of SPDX licensing ID tags. 2017-11-27 15:37:16 +00:00