Re: [PATCH] kvm: device-assignment: Fix kvm_get_irq_route_gsi() return check

Yang, Sheng
2009-05-13T03:36:09Z

On Wednesday 13 May 2009 06:14:01 Alex Williamson wrote:
> Cast to a signed int to test for < 0.
>
> Signed-off-by: Alex Williamson <alex.williamson@hp.com>
> ---
>
> This supersedes "[PATCH] kvm: device-assignment: Catch GSI overflow"
>
> hw/device-assignment.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/hw/device-assignment.c b/hw/device-assignment.c
> index a6cc9b9..5bdae24 100644
> --- a/hw/device-assignment.c
> +++ b/hw/device-assignment.c
> @@ -798,7 +798,7 @@ static void assigned_dev_update_msi(PCIDevice *pci_dev,
> unsigned int ctrl_pos) pci_dev->cap.start + PCI_MSI_DATA_32);
> assigned_dev->entry->type = KVM_IRQ_ROUTING_MSI;
> assigned_dev->entry->gsi = kvm_get_irq_route_gsi(kvm_context);
> - if (assigned_dev->entry->gsi < 0) {
> + if ((int)(assigned_dev->entry->gsi) < 0) {
> perror("assigned_dev_update_msi: kvm_get_irq_route_gsi");
> return;
> }

Use a return value(r) seems better.

And I realized there is memory leak here. Entry seems haven't been freed for
error... So does MSI-X...

--
regards
Yang, Sheng