Extract a subroutine for KVM_DEV_ARM_VGIC_SAVE_PENDING_TABLES.
No functional change.
Signed-off-by: Steve Sistare <steven.sistare@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