PCI: hv: Handle vmbus_sendpacket() failure in hv_compose_msi_msg()
authorDexuan Cui <decui@microsoft.com>
Tue, 23 Aug 2016 04:48:11 +0000 (04:48 +0000)
committerBjorn Helgaas <bhelgaas@google.com>
Tue, 6 Sep 2016 17:21:57 +0000 (12:21 -0500)
Handle vmbus_sendpacket() failure in hv_compose_msi_msg().

I happened to find this when reading the code.  I didn't get a real issue
however.

Signed-off-by: Dexuan Cui <decui@microsoft.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: KY Srinivasan <kys@microsoft.com>
CC: Jake Oshins <jakeo@microsoft.com>
CC: Haiyang Zhang <haiyangz@microsoft.com>
CC: Vitaly Kuznetsov <vkuznets@redhat.com>
drivers/pci/host/pci-hyperv.c

index 3034d48edbe168ae5fdc4ac9b62310ba00258fd7..e9307afa003d7046750274bbe0afb78dbbd8b5df 100644 (file)
@@ -895,8 +895,10 @@ static void hv_compose_msi_msg(struct irq_data *data, struct msi_msg *msg)
                               sizeof(*int_pkt), (unsigned long)&ctxt.pkt,
                               VM_PKT_DATA_INBAND,
                               VMBUS_DATA_PACKET_FLAG_COMPLETION_REQUESTED);
-       if (!ret)
-               wait_for_completion(&comp.comp_pkt.host_event);
+       if (ret)
+               goto free_int_desc;
+
+       wait_for_completion(&comp.comp_pkt.host_event);
 
        if (comp.comp_pkt.completion_status < 0) {
                dev_err(&hbus->hdev->device,