aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kvm/i8254.c
diff options
context:
space:
mode:
authorMichael S. Tsirkin <mst@redhat.com>2009-06-29 15:24:26 -0400
committerAvi Kivity <avi@redhat.com>2009-09-10 01:33:05 -0400
commit6c474694530f377507f9aca438c17206e051e6e7 (patch)
tree11590f6cca777716e7dfbc16c2d98fc7d64c11b0 /arch/x86/kvm/i8254.c
parent108b56690f35e083c5559116d6656f59a557a815 (diff)
KVM: convert bus to slots_lock
Use slots_lock to protect device list on the bus. slots_lock is already taken for read everywhere, so we only need to take it for write when registering devices. This is in preparation to removing in_range and kvm->lock around it. Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'arch/x86/kvm/i8254.c')
-rw-r--r--arch/x86/kvm/i8254.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/arch/x86/kvm/i8254.c b/arch/x86/kvm/i8254.c
index bcd00c76d69..4082cdd468e 100644
--- a/arch/x86/kvm/i8254.c
+++ b/arch/x86/kvm/i8254.c
@@ -583,6 +583,7 @@ static const struct kvm_io_device_ops speaker_dev_ops = {
583 .in_range = speaker_in_range, 583 .in_range = speaker_in_range,
584}; 584};
585 585
586/* Caller must have writers lock on slots_lock */
586struct kvm_pit *kvm_create_pit(struct kvm *kvm, u32 flags) 587struct kvm_pit *kvm_create_pit(struct kvm *kvm, u32 flags)
587{ 588{
588 struct kvm_pit *pit; 589 struct kvm_pit *pit;
@@ -621,11 +622,11 @@ struct kvm_pit *kvm_create_pit(struct kvm *kvm, u32 flags)
621 kvm_register_irq_mask_notifier(kvm, 0, &pit->mask_notifier); 622 kvm_register_irq_mask_notifier(kvm, 0, &pit->mask_notifier);
622 623
623 kvm_iodevice_init(&pit->dev, &pit_dev_ops); 624 kvm_iodevice_init(&pit->dev, &pit_dev_ops);
624 kvm_io_bus_register_dev(&kvm->pio_bus, &pit->dev); 625 __kvm_io_bus_register_dev(&kvm->pio_bus, &pit->dev);
625 626
626 if (flags & KVM_PIT_SPEAKER_DUMMY) { 627 if (flags & KVM_PIT_SPEAKER_DUMMY) {
627 kvm_iodevice_init(&pit->speaker_dev, &speaker_dev_ops); 628 kvm_iodevice_init(&pit->speaker_dev, &speaker_dev_ops);
628 kvm_io_bus_register_dev(&kvm->pio_bus, &pit->speaker_dev); 629 __kvm_io_bus_register_dev(&kvm->pio_bus, &pit->speaker_dev);
629 } 630 }
630 631
631 return pit; 632 return pit;