]> xenbits.xensource.com Git - qemu-xen.git/commit
msix: Assert that specified vector is in range
authorAkihiko Odaki <akihiko.odaki@gmail.com>
Mon, 29 Aug 2022 08:35:24 +0000 (17:35 +0900)
committerMichael S. Tsirkin <mst@redhat.com>
Mon, 7 Nov 2022 19:08:17 +0000 (14:08 -0500)
commit15377f6e79cc6aa08dbafe82607e0bda13ca44b5
tree689870d114b96e0fd61fd47b73ee92e5c1d6a7df
parent3b3112501d65a36782b6cd1dafee8a3e8e56fd6a
msix: Assert that specified vector is in range

There were several different ways to deal with the situation where the
vector specified for a msix function is out of bound:
- early return a function and keep progresssing
- propagate the error to the caller
- mark msix unusable
- assert it is in bound
- just ignore

An out-of-bound vector should not be specified if the device
implementation is correct so let msix functions always assert that the
specified vector is in range.

An exceptional case is virtio-pci, which allows the guest to configure
vectors. For virtio-pci, it is more appropriate to introduce its own
checks because it is sometimes too late to check the vector range in
msix functions.

Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Message-Id: <20220829083524.143640-1-akihiko.odaki@daynix.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Yuval Shaia <yuval.shaia.ml@gmail.com>
Signed-off-by: Akihiko Odaki &lt;<a href="mailto:akihiko.odaki@daynix.com" target="_blank">akihiko.odaki@daynix.com</a>&gt;<br>
hw/net/e1000e.c
hw/net/rocker/rocker.c
hw/net/vmxnet3.c
hw/nvme/ctrl.c
hw/pci/msix.c
hw/rdma/vmw/pvrdma_main.c
hw/remote/vfio-user-obj.c
hw/virtio/virtio-pci.c
include/hw/pci/msix.h