diff options
author | Dexuan Cui <decui@microsoft.com> | 2016-08-23 04:48:11 +0000 |
---|---|---|
committer | Bjorn Helgaas <bhelgaas@google.com> | 2016-09-06 12:21:57 -0500 |
commit | 665e2245eb46a217926d45031b83f1212a1bb344 (patch) | |
tree | 1583d7ccbdb26579ba7814c3d69893635459440e /drivers/pci | |
parent | 617ceb62eaa1a180e8af1be9903d960c3a0b2ebc (diff) | |
download | blackbird-op-linux-665e2245eb46a217926d45031b83f1212a1bb344.tar.gz blackbird-op-linux-665e2245eb46a217926d45031b83f1212a1bb344.zip |
PCI: hv: Handle vmbus_sendpacket() failure in hv_compose_msi_msg()
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>
Diffstat (limited to 'drivers/pci')
-rw-r--r-- | drivers/pci/host/pci-hyperv.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/pci/host/pci-hyperv.c b/drivers/pci/host/pci-hyperv.c index 3034d48edbe1..e9307afa003d 100644 --- a/drivers/pci/host/pci-hyperv.c +++ b/drivers/pci/host/pci-hyperv.c @@ -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, |