Extract a subroutine for KVM_DEV_ARM_VGIC_SAVE_PENDING_TABLES.
No functional change.

Signed-off-by: Steve Sistare <steven.sist...@oracle.com>
---
 hw/intc/arm_gicv3_kvm.c | 24 +++++++++++++++---------
 1 file changed, 15 insertions(+), 9 deletions(-)

diff --git a/hw/intc/arm_gicv3_kvm.c b/hw/intc/arm_gicv3_kvm.c
index 3be3bf6c28..43cba6e3f1 100644
--- a/hw/intc/arm_gicv3_kvm.c
+++ b/hw/intc/arm_gicv3_kvm.c
@@ -749,6 +749,20 @@ static const ARMCPRegInfo gicv3_cpuif_reginfo[] = {
     },
 };
 
+static int kvm_arm_save_pending_tables(GICv3State *s)
+{
+    Error *err = NULL;
+    int ret;
+
+    ret = kvm_device_access(s->dev_fd, KVM_DEV_ARM_VGIC_GRP_CTRL,
+                            KVM_DEV_ARM_VGIC_SAVE_PENDING_TABLES,
+                            NULL, true, &err);
+    if (err) {
+        error_report_err(err);
+    }
+    return ret;
+}
+
 /**
  * vm_change_state_handler - VM change state callback aiming at flushing
  * RDIST pending tables into guest RAM
@@ -758,20 +772,12 @@ static const ARMCPRegInfo gicv3_cpuif_reginfo[] = {
 static void vm_change_state_handler(void *opaque, bool running,
                                     RunState state)
 {
-    GICv3State *s = (GICv3State *)opaque;
-    Error *err = NULL;
     int ret;
 
     if (running) {
         return;
     }
-
-    ret = kvm_device_access(s->dev_fd, KVM_DEV_ARM_VGIC_GRP_CTRL,
-                           KVM_DEV_ARM_VGIC_SAVE_PENDING_TABLES,
-                           NULL, true, &err);
-    if (err) {
-        error_report_err(err);
-    }
+    ret = kvm_arm_save_pending_tables(opaque);
     if (ret < 0 && ret != -EFAULT) {
         abort();
     }
-- 
2.39.3


Reply via email to