projects
/
firefly-linux-kernel-4.4.55.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'x86-fpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
[firefly-linux-kernel-4.4.55.git]
/
virt
/
kvm
/
ioapic.c
diff --git
a/virt/kvm/ioapic.c
b/virt/kvm/ioapic.c
index 03a5eb22da2bfa27f5404bee3e5fff626facc42e..7c79c1d76d0c13e72463fcddc00cf845ad63ca87 100644
(file)
--- a/
virt/kvm/ioapic.c
+++ b/
virt/kvm/ioapic.c
@@
-197,7
+197,7
@@
int kvm_ioapic_set_irq(struct kvm_ioapic *ioapic, int irq, int level)
union kvm_ioapic_redirect_entry entry;
int ret = 1;
union kvm_ioapic_redirect_entry entry;
int ret = 1;
-
mutex
_lock(&ioapic->lock);
+
spin
_lock(&ioapic->lock);
if (irq >= 0 && irq < IOAPIC_NUM_PINS) {
entry = ioapic->redirtbl[irq];
level ^= entry.fields.polarity;
if (irq >= 0 && irq < IOAPIC_NUM_PINS) {
entry = ioapic->redirtbl[irq];
level ^= entry.fields.polarity;
@@
-214,7
+214,7
@@
int kvm_ioapic_set_irq(struct kvm_ioapic *ioapic, int irq, int level)
}
trace_kvm_ioapic_set_irq(entry.bits, irq, ret == 0);
}
}
trace_kvm_ioapic_set_irq(entry.bits, irq, ret == 0);
}
-
mutex
_unlock(&ioapic->lock);
+
spin
_unlock(&ioapic->lock);
return ret;
}
return ret;
}
@@
-238,9
+238,9
@@
static void __kvm_ioapic_update_eoi(struct kvm_ioapic *ioapic, int vector,
* is dropped it will be put into irr and will be delivered
* after ack notifier returns.
*/
* is dropped it will be put into irr and will be delivered
* after ack notifier returns.
*/
-
mutex
_unlock(&ioapic->lock);
+
spin
_unlock(&ioapic->lock);
kvm_notify_acked_irq(ioapic->kvm, KVM_IRQCHIP_IOAPIC, i);
kvm_notify_acked_irq(ioapic->kvm, KVM_IRQCHIP_IOAPIC, i);
-
mutex
_lock(&ioapic->lock);
+
spin
_lock(&ioapic->lock);
if (trigger_mode != IOAPIC_LEVEL_TRIG)
continue;
if (trigger_mode != IOAPIC_LEVEL_TRIG)
continue;
@@
-259,9
+259,9
@@
void kvm_ioapic_update_eoi(struct kvm *kvm, int vector, int trigger_mode)
smp_rmb();
if (!test_bit(vector, ioapic->handled_vectors))
return;
smp_rmb();
if (!test_bit(vector, ioapic->handled_vectors))
return;
-
mutex
_lock(&ioapic->lock);
+
spin
_lock(&ioapic->lock);
__kvm_ioapic_update_eoi(ioapic, vector, trigger_mode);
__kvm_ioapic_update_eoi(ioapic, vector, trigger_mode);
-
mutex
_unlock(&ioapic->lock);
+
spin
_unlock(&ioapic->lock);
}
static inline struct kvm_ioapic *to_ioapic(struct kvm_io_device *dev)
}
static inline struct kvm_ioapic *to_ioapic(struct kvm_io_device *dev)
@@
-287,7
+287,7
@@
static int ioapic_mmio_read(struct kvm_io_device *this, gpa_t addr, int len,
ASSERT(!(addr & 0xf)); /* check alignment */
addr &= 0xff;
ASSERT(!(addr & 0xf)); /* check alignment */
addr &= 0xff;
-
mutex
_lock(&ioapic->lock);
+
spin
_lock(&ioapic->lock);
switch (addr) {
case IOAPIC_REG_SELECT:
result = ioapic->ioregsel;
switch (addr) {
case IOAPIC_REG_SELECT:
result = ioapic->ioregsel;
@@
-301,7
+301,7
@@
static int ioapic_mmio_read(struct kvm_io_device *this, gpa_t addr, int len,
result = 0;
break;
}
result = 0;
break;
}
-
mutex
_unlock(&ioapic->lock);
+
spin
_unlock(&ioapic->lock);
switch (len) {
case 8:
switch (len) {
case 8:
@@
-338,7
+338,7
@@
static int ioapic_mmio_write(struct kvm_io_device *this, gpa_t addr, int len,
}
addr &= 0xff;
}
addr &= 0xff;
-
mutex
_lock(&ioapic->lock);
+
spin
_lock(&ioapic->lock);
switch (addr) {
case IOAPIC_REG_SELECT:
ioapic->ioregsel = data;
switch (addr) {
case IOAPIC_REG_SELECT:
ioapic->ioregsel = data;
@@
-356,7
+356,7
@@
static int ioapic_mmio_write(struct kvm_io_device *this, gpa_t addr, int len,
default:
break;
}
default:
break;
}
-
mutex
_unlock(&ioapic->lock);
+
spin
_unlock(&ioapic->lock);
return 0;
}
return 0;
}
@@
-386,7
+386,7
@@
int kvm_ioapic_init(struct kvm *kvm)
ioapic = kzalloc(sizeof(struct kvm_ioapic), GFP_KERNEL);
if (!ioapic)
return -ENOMEM;
ioapic = kzalloc(sizeof(struct kvm_ioapic), GFP_KERNEL);
if (!ioapic)
return -ENOMEM;
-
mutex
_init(&ioapic->lock);
+
spin_lock
_init(&ioapic->lock);
kvm->arch.vioapic = ioapic;
kvm_ioapic_reset(ioapic);
kvm_iodevice_init(&ioapic->dev, &ioapic_mmio_ops);
kvm->arch.vioapic = ioapic;
kvm_ioapic_reset(ioapic);
kvm_iodevice_init(&ioapic->dev, &ioapic_mmio_ops);
@@
-419,9
+419,9
@@
int kvm_get_ioapic(struct kvm *kvm, struct kvm_ioapic_state *state)
if (!ioapic)
return -EINVAL;
if (!ioapic)
return -EINVAL;
-
mutex
_lock(&ioapic->lock);
+
spin
_lock(&ioapic->lock);
memcpy(state, ioapic, sizeof(struct kvm_ioapic_state));
memcpy(state, ioapic, sizeof(struct kvm_ioapic_state));
-
mutex
_unlock(&ioapic->lock);
+
spin
_unlock(&ioapic->lock);
return 0;
}
return 0;
}
@@
-431,9
+431,9
@@
int kvm_set_ioapic(struct kvm *kvm, struct kvm_ioapic_state *state)
if (!ioapic)
return -EINVAL;
if (!ioapic)
return -EINVAL;
-
mutex
_lock(&ioapic->lock);
+
spin
_lock(&ioapic->lock);
memcpy(ioapic, state, sizeof(struct kvm_ioapic_state));
update_handled_vectors(ioapic);
memcpy(ioapic, state, sizeof(struct kvm_ioapic_state));
update_handled_vectors(ioapic);
-
mutex
_unlock(&ioapic->lock);
+
spin
_unlock(&ioapic->lock);
return 0;
}
return 0;
}