qemu-kvm: Couple in-kernel PIT enabling to in-kernel irqchip
PATCH 1/1 qemu-kvm: Couple in-kernel PIT enabling to in-kernel irqchip
Upstream will not support disabling the in-kernel PIT separately. In preparation of merging qemu-kvm, couple our KVM PIT to in-kernel irqchip support as well. Leave the related command line option in place, just issuing a warning that it has no function anymore.
Signed-off-by Jan Kiszka <[email protected]>
--- hw/i8254.c | 6 +++--- hw/pcspk.c | 4 ++-- kvm-all.c | 2 -- qemu-kvm-x86.c | 10 +++++----- qemu-kvm.h | 1 - vl.c | 5 ++--- 6 files changed, 12 insertions(+), 16 deletions(-)
hw/i8254.c +3 -3
@@ -475,7 +475,7 @@ void hpet_pit_disable(void) {PITChannelState *s = &pit_state.channels[0 ]; -if (kvm_enabled () &&kvm_pit_in_kernel ()) { +if (kvm_enabled () &&kvm_irqchip_in_kernel ()) {if (kvm_has_pit_state2 ()) {kvm_hpet_disable_kpit (); }else {
@@ -499,7 +499,7 @@ void hpet_pit_enable(void)PITState *pit = &pit_state;PITChannelState *s = &pit->channels[0 ]; -if (kvm_enabled () &&kvm_pit_in_kernel ()) { +if (kvm_enabled () &&kvm_irqchip_in_kernel ()) {if (kvm_has_pit_state2 ()) {kvm_hpet_enable_kpit (); }else {
@@ -529,7 +529,7 @@ static int pit_initfn(ISADevice *dev)PITChannelState *s;#ifdef CONFIG_KVM_PIT -if (kvm_enabled () &&kvm_pit_in_kernel ()) +if (kvm_enabled () &&kvm_irqchip_in_kernel ())kvm_pit_init (pit);else {#endif
hw/pcspk.c +2 -2
@@ -57,7 +57,7 @@ static void kvm_get_pit_ch2(ISADevice *dev, struct PITState *pit = DO_UPCAST(struct PITState, dev, dev);struct kvm_pit_state pit_state; -if (kvm_enabled () &&kvm_pit_in_kernel ()) { +if (kvm_enabled () &&kvm_irqchip_in_kernel ()) {kvm_get_pit (kvm_state, &pit_state); pit->channels[2 ].mode = pit_state.channels[2 ].mode; pit->channels[2 ].count = pit_state.channels[2 ].count;
@@ -74,7 +74,7 @@ static void kvm_set_pit_ch2(ISADevice *dev, { struct PITState *pit = DO_UPCAST(struct PITState, dev, dev); -if (kvm_enabled () &&kvm_pit_in_kernel ()) { +if (kvm_enabled () &&kvm_irqchip_in_kernel ()) { inkernel_state->channels[2 ].mode = pit->channels[2 ].mode; inkernel_state->channels[2 ].count = pit->channels[2 ].count; inkernel_state->channels[2].count_load_time =
kvm-all.c +0 -2
@@ -973,8 +973,6 @@ int kvm_init(void) s->pit_state2 =kvm_check_extension (s,KVM_CAP_PIT_STATE2 );#endif - s->pit_in_kernel = kvm_pit; - ret =kvm_arch_init (s);if (ret <0 ) { goto err;
qemu-kvm-x86.c +5 -5
@@ -27,7 +27,7 @@ static int kvm_create_pit(KVMState *s) {int r; -if (kvm_pit) { +if (kvm_irqchip) { r =kvm_vm_ioctl (s,KVM_CREATE_PIT );if (r <0 ) {fprintf (stderr,"Create kernel PIC irqchip failed\n" );
@@ -97,7 +97,7 @@ int kvm_set_lapic(CPUState *env, struct kvm_lapic_state *s)int kvm_get_pit (KVMState *s,struct kvm_pit_state *pit_state) { -if (!kvm_pit_in_kernel ()) { +if (!kvm_irqchip_in_kernel ()) {return 0 ; }return kvm_vm_ioctl (s,KVM_GET_PIT , pit_state);
@@ -105,7 +105,7 @@ int kvm_get_pit(KVMState *s, struct kvm_pit_state *pit_state)int kvm_set_pit (KVMState *s,struct kvm_pit_state *pit_state) { -if (!kvm_pit_in_kernel ()) { +if (!kvm_irqchip_in_kernel ()) {return 0 ; }return kvm_vm_ioctl (s,KVM_SET_PIT , pit_state);
@@ -113,7 +113,7 @@ int kvm_set_pit(KVMState *s, struct kvm_pit_state *pit_state)int kvm_get_pit2 (KVMState *s,struct kvm_pit_state2 *ps2) { -if (!kvm_pit_in_kernel ()) { +if (!kvm_irqchip_in_kernel ()) {return 0 ; }return kvm_vm_ioctl (s,KVM_GET_PIT2 , ps2);
@@ -121,7 +121,7 @@ int kvm_get_pit2(KVMState *s, struct kvm_pit_state2 *ps2)int kvm_set_pit2 (KVMState *s,struct kvm_pit_state2 *ps2) { -if (!kvm_pit_in_kernel ()) { +if (!kvm_irqchip_in_kernel ()) {return 0 ; }return kvm_vm_ioctl (s,KVM_SET_PIT2 , ps2);
qemu-kvm.h +0 -1
@@ -257,7 +257,6 @@ int kvm_arch_set_ioport_access(unsigned long start, unsigned long size, bool enable);extern int kvm_irqchip; -extern int kvm_pit;extern int kvm_pit_reinject;extern unsigned int kvm_shadow_memory;
vl.c +2 -3
@@ -2167,7 +2167,6 @@ static void free_and_trace(gpointer mem)#ifdef CONFIG_KVM_OPTIONS int kvm_irqchip =1 ; -int kvm_pit =1 ;int kvm_pit_reinject =1 ;#endif
@@ -2883,11 +2882,11 @@ int main(int argc, char **argv, char **envp)#ifdef CONFIG_KVM_OPTIONS case QEMU_OPTION_no_kvm_irqchip: { kvm_irqchip =0 ; - kvm_pit =0 ;break ; }case QEMU_OPTION_no_kvm_pit: { - kvm_pit =0 ; +fprintf (stderr,"Warning: KVM PIT can no longer be disabled " +"separately.\n" );break ; }case QEMU_OPTION_no_kvm_pit_reinjection: {
Signature · 1 line
1.7.3.4