@@ -80,12 +80,20 @@ static int qemu_balloon_info(BalloonInfo *info)
return 1;
}
+static bool check_kvm_sync_mmu(Error **errp)
+{
+ if (kvm_enabled() && !kvm_has_sync_mmu()) {
+ error_set(errp, QERR_KVM_MISSING_CAP, "synchronous MMU", "balloon");
+ return false;
+ }
+ return true;
+}
+
BalloonInfo *qmp_query_balloon(Error **errp)
{
BalloonInfo *info;
- if (kvm_enabled() && !kvm_has_sync_mmu()) {
- error_set(errp, QERR_KVM_MISSING_CAP, "synchronous MMU", "balloon");
+ if (!check_kvm_sync_mmu(errp)) {
return NULL;
}
@@ -102,8 +110,7 @@ BalloonInfo *qmp_query_balloon(Error **errp)
void qmp_balloon(int64_t value, Error **errp)
{
- if (kvm_enabled() && !kvm_has_sync_mmu()) {
- error_set(errp, QERR_KVM_MISSING_CAP, "synchronous MMU", "balloon");
+ if (!check_kvm_sync_mmu(errp)) {
return;
}
qmp_query_balloon() and qmp_balloon() perform the same check, move it to check_kvm_sync_mmu(). Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> --- balloon.c | 15 +++++++++++---- 1 files changed, 11 insertions(+), 4 deletions(-)