@@ -4634,13 +4634,15 @@ static void kvm_vm_ioctl_get_pit2(struct kvm *kvm, struct kvm_pit_state2 *ps)
memset(&ps->reserved, 0, sizeof(ps->reserved));
}
-static int kvm_vm_ioctl_set_pit2(struct kvm *kvm, struct kvm_pit_state2 *ps)
+static void kvm_vm_ioctl_set_pit2(struct kvm *kvm, struct kvm_pit_state2 *ps)
{
int start = 0;
int i;
u32 prev_legacy, cur_legacy;
struct kvm_pit *pit = kvm->arch.vpit;
+ BUILD_BUG_ON(sizeof(ps->channels) != sizeof(pit->pit_state.channels));
+
mutex_lock(&pit->pit_state.lock);
prev_legacy = pit->pit_state.flags & KVM_PIT_FLAGS_HPET_LEGACY;
cur_legacy = ps->flags & KVM_PIT_FLAGS_HPET_LEGACY;
@@ -4653,7 +4655,6 @@ static int kvm_vm_ioctl_set_pit2(struct kvm *kvm, struct kvm_pit_state2 *ps)
kvm_pit_load_count(pit, i, pit->pit_state.channels[i].count,
start && i == 0);
mutex_unlock(&pit->pit_state.lock);
- return 0;
}
static int kvm_vm_ioctl_reinject(struct kvm *kvm,
@@ -5019,7 +5020,8 @@ long kvm_arch_vm_ioctl(struct file *filp,
r = -ENXIO;
if (!kvm->arch.vpit)
goto out;
- r = kvm_vm_ioctl_set_pit2(kvm, &u.ps2);
+ kvm_vm_ioctl_set_pit2(kvm, &u.ps2);
+ r = 0;
break;
}
case KVM_REINJECT_CONTROL: {