[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH PULL 25/31] pvrdma: release device resources in case
From: |
Marcel Apfelbaum |
Subject: |
[Qemu-devel] [PATCH PULL 25/31] pvrdma: release device resources in case of an error |
Date: |
Sat, 22 Dec 2018 11:50:30 +0200 |
From: Prasad J Pandit <address@hidden>
If during pvrdma device initialisation an error occurs,
pvrdma_realize() does not release memory resources, leading
to memory leakage.
Reported-by: Li Qiang <address@hidden>
Signed-off-by: Prasad J Pandit <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Yuval Shaia <address@hidden>
Signed-off-by: Marcel Apfelbaum <address@hidden>
---
hw/rdma/vmw/pvrdma_main.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/hw/rdma/vmw/pvrdma_main.c b/hw/rdma/vmw/pvrdma_main.c
index 23dc9926e3..64de16fb52 100644
--- a/hw/rdma/vmw/pvrdma_main.c
+++ b/hw/rdma/vmw/pvrdma_main.c
@@ -573,7 +573,7 @@ static void pvrdma_shutdown_notifier(Notifier *n, void
*opaque)
static void pvrdma_realize(PCIDevice *pdev, Error **errp)
{
- int rc;
+ int rc = 0;
PVRDMADev *dev = PVRDMA_DEV(pdev);
Object *memdev_root;
bool ram_shared = false;
@@ -649,6 +649,7 @@ static void pvrdma_realize(PCIDevice *pdev, Error **errp)
out:
if (rc) {
+ pvrdma_fini(pdev);
error_append_hint(errp, "Device fail to load\n");
}
}
--
2.17.1
- [Qemu-devel] [PATCH PULL 17/31] hw/pvrdma: Fill all CQE fields, (continued)
- [Qemu-devel] [PATCH PULL 17/31] hw/pvrdma: Fill all CQE fields, Marcel Apfelbaum, 2018/12/22
- [Qemu-devel] [PATCH PULL 18/31] hw/pvrdma: Fill error code in command's response, Marcel Apfelbaum, 2018/12/22
- [Qemu-devel] [PATCH PULL 19/31] hw/rdma: Remove unneeded code that handles more that one port, Marcel Apfelbaum, 2018/12/22
- [Qemu-devel] [PATCH PULL 21/31] hw/pvrdma: Clean device's resource when system is shutdown, Marcel Apfelbaum, 2018/12/22
- [Qemu-devel] [PATCH PULL 20/31] vl: Introduce shutdown_notifiers, Marcel Apfelbaum, 2018/12/22
- [Qemu-devel] [PATCH PULL 22/31] hw/rdma: Do not use bitmap_zero_extend to free bitmap, Marcel Apfelbaum, 2018/12/22
- [Qemu-devel] [PATCH PULL 27/31] pvrdma: add uar_read routine, Marcel Apfelbaum, 2018/12/22
- [Qemu-devel] [PATCH PULL 26/31] rdma: check num_sge does not exceed MAX_SGE, Marcel Apfelbaum, 2018/12/22
- [Qemu-devel] [PATCH PULL 31/31] pvrdma: check return value from pvrdma_idx_ring_has_ routines, Marcel Apfelbaum, 2018/12/22
- [Qemu-devel] [PATCH PULL 23/31] hw/rdma: Do not call rdma_backend_del_gid on an empty gid, Marcel Apfelbaum, 2018/12/22
- [Qemu-devel] [PATCH PULL 25/31] pvrdma: release device resources in case of an error,
Marcel Apfelbaum <=
- [Qemu-devel] [PATCH PULL 29/31] pvrdma: release ring object in case of an error, Marcel Apfelbaum, 2018/12/22
- [Qemu-devel] [PATCH PULL 30/31] rdma: remove unused VENDOR_ERR_NO_SGE macro, Marcel Apfelbaum, 2018/12/22
- [Qemu-devel] [PATCH PULL 28/31] pvrdma: check number of pages when creating rings, Marcel Apfelbaum, 2018/12/22
- [Qemu-devel] [PATCH PULL 24/31] docs: Update pvrdma device documentation, Marcel Apfelbaum, 2018/12/22
- Re: [Qemu-devel] [PATCH PULL 00/31] RDMA queue, Peter Maydell, 2018/12/22