IRQ: u16 is too narrow for an event channel number
authorJan Beulich <jbeulich@suse.com>
Tue, 14 Jan 2020 11:03:47 +0000 (12:03 +0100)
committerJan Beulich <jbeulich@suse.com>
Tue, 14 Jan 2020 11:03:47 +0000 (12:03 +0100)
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 <jbeulich@suse.com>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
xen/include/xen/irq.h

index 0f91884d5736b3d70e5b045ba0ebe573fdcc82d6..59d5e45bb0b2ce62c6cfe75fde27c271bf1459cd 100644 (file)
@@ -127,9 +127,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;
 };