diff options
author | kfraser@localhost.localdomain <kfraser@localhost.localdomain> | 2007-03-16 16:19:35 +0000 |
---|---|---|
committer | kfraser@localhost.localdomain <kfraser@localhost.localdomain> | 2007-03-16 16:19:35 +0000 |
commit | 67cfa18d933ffe4886941a3b7ac0459174fc1246 (patch) | |
tree | 849a9762e049fcdddbce09addf0da322de6d79b9 /xen/arch/x86/hvm/vpic.c | |
parent | fbf7473b3a74f449736ec58e9dce5dda2ef8bc9d (diff) | |
download | xen-67cfa18d933ffe4886941a3b7ac0459174fc1246.tar.gz xen-67cfa18d933ffe4886941a3b7ac0459174fc1246.tar.bz2 xen-67cfa18d933ffe4886941a3b7ac0459174fc1246.zip |
hvm vpic: Fix IRQ priority calculation in 8259 device model.
The priority shift should be a right-rotation, not a left-rotation.
From: Trolle Selander <trolle.selander@gmail.com>
Signed-off-by: Keir Fraser <keir@xensource.com>
Diffstat (limited to 'xen/arch/x86/hvm/vpic.c')
-rw-r--r-- | xen/arch/x86/hvm/vpic.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/xen/arch/x86/hvm/vpic.c b/xen/arch/x86/hvm/vpic.c index 3a5b2a16a8..5dfe1e4a6b 100644 --- a/xen/arch/x86/hvm/vpic.c +++ b/xen/arch/x86/hvm/vpic.c @@ -54,8 +54,8 @@ static int vpic_get_priority(struct hvm_hw_vpic *vpic, uint8_t mask) if ( mask == 0 ) return VPIC_PRIO_NONE; - /* prio = ffs(mask ROL vpic->priority_add); */ - asm ( "rol %%cl,%b1 ; bsf %1,%0" + /* prio = ffs(mask ROR vpic->priority_add); */ + asm ( "ror %%cl,%b1 ; bsf %1,%0" : "=r" (prio) : "r" ((uint32_t)mask), "c" (vpic->priority_add) ); return prio; } |