From: Jan Beulich Date: Thu, 5 Mar 2020 10:28:59 +0000 (+0100) Subject: IRQ: u16 is too narrow for an event channel number X-Git-Tag: archive/raspbian/4.11.4-1+rpi1^2~58^2~30 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=346eae8ed989c05280b2b94027b2980023472b58;p=xen.git IRQ: u16 is too narrow for an event channel number FIFO event channels allow ports up to 2^17, so we need to use a wider field in struct pirq. Move "masked" such that it may share the 8-byte slot with struct arch_pirq on 64-bit arches, rather than leaving a 7-byte hole in all cases. Take the opportunity and also add a comment regarding "arch" placement within the structure. Signed-off-by: Jan Beulich Acked-by: Andrew Cooper Arm: fix build after 892b9dcebdb7 "IRQ: u16 is too narrow for an event channel number" introduced a use of evetchn_port_t, but its typedef apparently surfaces indirectly here only on x86. Signed-off-by: Jan Beulich Acked-by: Andrew Cooper master commit: 892b9dcebdb7f646657e11cfdd95a385107bbefa master date: 2020-01-14 12:03:47 +0100 master commit: b4194711ffaffa5e63d986338fb8d4020fa6bad1 master date: 2020-01-14 16:06:27 +0100 --- diff --git a/xen/include/xen/irq.h b/xen/include/xen/irq.h index 586b78393a..ce27524281 100644 --- a/xen/include/xen/irq.h +++ b/xen/include/xen/irq.h @@ -8,6 +8,7 @@ #include #include #include +#include struct irqaction { void (*handler)(int, void *, struct cpu_user_regs *); @@ -127,9 +128,10 @@ struct vcpu; struct pirq { int pirq; - u16 evtchn; - bool_t masked; + evtchn_port_t evtchn; struct rcu_head rcu_head; + bool masked; + /* Architectures may require this field to be last. */ struct arch_pirq arch; };