|
|
|
|
|
|
|
|
|
|
xen-changelog
[Xen-changelog] [xen-unstable] [HVM] Fix an issue with APIC priority che
# HG changeset patch
# User kfraser@xxxxxxxxxxxxxxxxxxxxx
# Node ID 637b6d60e792aaebe147fc900be4d27ddeb9bf74
# Parent f5b9b8439012c49306069539aa8637d1a56a9b7d
[HVM] Fix an issue with APIC priority checks.
Signed-off-by; Yunhong Jiang <yunhong.jiang@xxxxxxxxx>
---
xen/arch/x86/hvm/vlapic.c | 8 +++++---
1 files changed, 5 insertions(+), 3 deletions(-)
diff -r f5b9b8439012 -r 637b6d60e792 xen/arch/x86/hvm/vlapic.c
--- a/xen/arch/x86/hvm/vlapic.c Wed Aug 02 10:03:04 2006 +0100
+++ b/xen/arch/x86/hvm/vlapic.c Wed Aug 02 10:04:27 2006 +0100
@@ -210,7 +210,7 @@ static int vlapic_accept_irq(struct vcpu
if ( unlikely(vlapic == NULL || !vlapic_enabled(vlapic)) )
break;
- if ( test_and_set_bit(vector, &vlapic->irr[0]) )
+ if ( test_and_set_bit(vector, &vlapic->irr[0]) && level)
{
HVM_DBG_LOG(DBG_LEVEL_VLAPIC,
"level trig mode repeatedly for vector %d\n", vector);
@@ -922,7 +922,8 @@ int cpu_get_apic_interrupt(struct vcpu *
{
int highest_irr = vlapic_find_highest_irr(vlapic);
- if ( highest_irr != -1 && highest_irr >= vlapic->processor_priority )
+ if ( highest_irr != -1 &&
+ ( (highest_irr & 0xF0) > vlapic->processor_priority ) )
{
if ( highest_irr < 0x10 )
{
@@ -952,7 +953,8 @@ int cpu_has_apic_interrupt(struct vcpu*
if (vlapic && vlapic_enabled(vlapic)) {
int highest_irr = vlapic_find_highest_irr(vlapic);
- if (highest_irr != -1 && highest_irr >= vlapic->processor_priority) {
+ if ( highest_irr != -1 &&
+ ( (highest_irr & 0xF0) > vlapic->processor_priority ) ) {
return 1;
}
}
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|
<Prev in Thread] |
Current Thread |
[Next in Thread> |
- [Xen-changelog] [xen-unstable] [HVM] Fix an issue with APIC priority checks.,
Xen patchbot-unstable <=
|
|
|
|
|