[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v4 20/23] hw/pvrdma: Clean device's resource when sy
From: |
Yuval Shaia |
Subject: |
[Qemu-devel] [PATCH v4 20/23] hw/pvrdma: Clean device's resource when system is shutdown |
Date: |
Sun, 18 Nov 2018 14:28:40 +0200 |
In order to clean some external resources such as GIDs, QPs etc,
register to receive notification when VM is shutdown.
Signed-off-by: Yuval Shaia <address@hidden>
Reviewed-by: Marcel Apfelbaum <address@hidden>
---
hw/rdma/vmw/pvrdma.h | 2 ++
hw/rdma/vmw/pvrdma_main.c | 12 ++++++++++++
2 files changed, 14 insertions(+)
diff --git a/hw/rdma/vmw/pvrdma.h b/hw/rdma/vmw/pvrdma.h
index 10a3c4fb7c..ffae36986e 100644
--- a/hw/rdma/vmw/pvrdma.h
+++ b/hw/rdma/vmw/pvrdma.h
@@ -17,6 +17,7 @@
#define PVRDMA_PVRDMA_H
#include "qemu/units.h"
+#include "qemu/notify.h"
#include "hw/pci/pci.h"
#include "hw/pci/msix.h"
#include "chardev/char-fe.h"
@@ -87,6 +88,7 @@ typedef struct PVRDMADev {
RdmaDeviceResources rdma_dev_res;
CharBackend mad_chr;
VMXNET3State *func0;
+ Notifier shutdown_notifier;
} PVRDMADev;
#define PVRDMA_DEV(dev) OBJECT_CHECK(PVRDMADev, (dev), PVRDMA_HW_NAME)
diff --git a/hw/rdma/vmw/pvrdma_main.c b/hw/rdma/vmw/pvrdma_main.c
index 150404dfa6..474cbfd78d 100644
--- a/hw/rdma/vmw/pvrdma_main.c
+++ b/hw/rdma/vmw/pvrdma_main.c
@@ -24,6 +24,7 @@
#include "hw/qdev-properties.h"
#include "cpu.h"
#include "trace.h"
+#include "sysemu/sysemu.h"
#include "../rdma_rm.h"
#include "../rdma_backend.h"
@@ -559,6 +560,14 @@ static int pvrdma_check_ram_shared(Object *obj, void
*opaque)
return 0;
}
+static void pvrdma_shutdown_notifier(Notifier *n, void *opaque)
+{
+ PVRDMADev *dev = container_of(n, PVRDMADev, shutdown_notifier);
+ PCIDevice *pci_dev = PCI_DEVICE(dev);
+
+ pvrdma_fini(pci_dev);
+}
+
static void pvrdma_realize(PCIDevice *pdev, Error **errp)
{
int rc;
@@ -632,6 +641,9 @@ static void pvrdma_realize(PCIDevice *pdev, Error **errp)
goto out;
}
+ dev->shutdown_notifier.notify = pvrdma_shutdown_notifier;
+ qemu_register_shutdown_notifier(&dev->shutdown_notifier);
+
out:
if (rc) {
error_append_hint(errp, "Device fail to load\n");
--
2.17.2
- [Qemu-devel] [PATCH v4 09/23] hw/pvrdma: Set the correct opcode for send completion, (continued)
- [Qemu-devel] [PATCH v4 09/23] hw/pvrdma: Set the correct opcode for send completion, Yuval Shaia, 2018/11/18
- [Qemu-devel] [PATCH v4 10/23] json: Define new QMP message for pvrdma, Yuval Shaia, 2018/11/18
- [Qemu-devel] [PATCH v4 11/23] hw/pvrdma: Add support to allow guest to configure GID table, Yuval Shaia, 2018/11/18
- [Qemu-devel] [PATCH v4 12/23] vmxnet3: Move some definitions to header file, Yuval Shaia, 2018/11/18
- [Qemu-devel] [PATCH v4 13/23] hw/pvrdma: Make sure PCI function 0 is vmxnet3, Yuval Shaia, 2018/11/18
- [Qemu-devel] [PATCH v4 14/23] hw/rdma: Initialize node_guid from vmxnet3 mac address, Yuval Shaia, 2018/11/18
- [Qemu-devel] [PATCH v4 15/23] hw/pvrdma: Make device state depend on Ethernet function state, Yuval Shaia, 2018/11/18
- [Qemu-devel] [PATCH v4 16/23] hw/pvrdma: Fill all CQE fields, Yuval Shaia, 2018/11/18
- [Qemu-devel] [PATCH v4 17/23] hw/pvrdma: Fill error code in command's response, Yuval Shaia, 2018/11/18
- [Qemu-devel] [PATCH v4 18/23] hw/rdma: Remove unneeded code that handles more that one port, Yuval Shaia, 2018/11/18
- [Qemu-devel] [PATCH v4 20/23] hw/pvrdma: Clean device's resource when system is shutdown,
Yuval Shaia <=
- [Qemu-devel] [PATCH v4 19/23] vl: Introduce shutdown_notifiers, Yuval Shaia, 2018/11/18
- [Qemu-devel] [PATCH v4 22/23] hw/rdma: Do not call rdma_backend_del_gid on an empty gid, Yuval Shaia, 2018/11/18
- [Qemu-devel] [PATCH v4 21/23] hw/rdma: Do not use bitmap_zero_extend to free bitmap, Yuval Shaia, 2018/11/18
- [Qemu-devel] [PATCH v4 23/23] docs: Update pvrdma device documentation, Yuval Shaia, 2018/11/18