|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [XEN PATCH] x86/apic: Fix signing in left bitshift
There exists a bitshift in the IOAPIC code where a signed integer is
shifted to the left by at most 31 bits. This is undefined behaviour,
and can cause faults in xtf tests such as pv64-pv-iopl~hypercall.
This patch fixes this by changing the integer from signed to unsigned.
Signed-off-by: Matthew Barnes <matthew.barnes@xxxxxxxxx>
---
xen/arch/x86/io_apic.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/xen/arch/x86/io_apic.c b/xen/arch/x86/io_apic.c
index b48a64246548..ae88b1b898fe 100644
--- a/xen/arch/x86/io_apic.c
+++ b/xen/arch/x86/io_apic.c
@@ -1756,7 +1756,7 @@ static void cf_check end_level_ioapic_irq_new(struct
irq_desc *desc, u8 vector)
!io_apic_level_ack_pending(desc->irq) )
move_native_irq(desc);
- if (!(v & (1 << (i & 0x1f)))) {
+ if (!(v & (1U << (i & 0x1f)))) {
spin_lock(&ioapic_lock);
__mask_IO_APIC_irq(desc->irq);
__edge_IO_APIC_irq(desc->irq);
--
2.34.1
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |