virtio: Move interrupt setup into separate function
authorsf <sf@openbsd.org>
Mon, 2 Sep 2024 08:26:26 +0000 (08:26 +0000)
committersf <sf@openbsd.org>
Mon, 2 Sep 2024 08:26:26 +0000 (08:26 +0000)
commit0e6436ede63d0b2b0d20985927c7f42ddcbaea8f
tree82c091099c5f3aa7513695c396e4f3646d352099
parenta9c160188cc8049e69a03d2a078123dd2c663835
virtio: Move interrupt setup into separate function

Put the MSIX vector into struct virtqueue and create a transport
specific function that feeds the vectors to the device. This will allow
child devices to influence which vectors are used for which virtqueues.
This will be used by multi-queue vio(4) to route corresponding rx/tx
queue interrupts to the same cpu.

The setup_intrs() function also sets the config interrupt MSIX vector
which fixes a bug that virtio_pci_set_msix_config_vector() would not
be called after a device reset.

OK bluhm@
sys/dev/fdt/virtio_mmio.c
sys/dev/pci/virtio_pci.c
sys/dev/pv/virtio.c
sys/dev/pv/virtiovar.h