Alex Williamson <[email protected]> writes:
> In the event that a pci-assign device is added to a chipset that
> hasn't yet implemented the INTx routing interface, exit gracefully
> instead of killing the VM. I'm sure we'll implement this for q35,
> but there's no reason for such a harsh response.
>
> Signed-off-by: Alex Williamson <[email protected]>
> ---
>
> hw/kvm/pci-assign.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/hw/kvm/pci-assign.c b/hw/kvm/pci-assign.c
> index 05b93d9..7ce0f37 100644
> --- a/hw/kvm/pci-assign.c
> +++ b/hw/kvm/pci-assign.c
> @@ -887,6 +887,12 @@ static int assign_intx(AssignedDevice *dev)
>
> intx_route = pci_device_route_intx_to_irq(&dev->dev, dev->intpin);
> assert(intx_route.mode != PCI_INTX_INVERTED);
> + if (intx_route.mode == PCI_INTX_NOROUTE) {
> + error_report("pci-assign: chipset provides no INTx routing "
> + "information, but device supports INTx interrupt
> mode.\n");
> + pci_device_set_intx_routing_notifier(&dev->dev, NULL);
> + return -ENOTSUP;
> + }
Please don't use error_report() in new code. Propagate an Error object
using error_setg() and friends.
Regards,
Anthony Liguori
>
> if (dev->intx_route.mode == intx_route.mode &&
> dev->intx_route.irq == intx_route.irq) {