Currently on Arm the desc->affinity mask of an irq is never updated,
which makes it hard to know the actual affinity of an interrupt.

Fix this by updating the field in irq_set_affinity.

Signed-off-by: Mykyta Poturai <[email protected]>

v3->v4:
* patch introduced
---
 xen/arch/arm/irq.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/xen/arch/arm/irq.c b/xen/arch/arm/irq.c
index 73e58a5108..28b40331f7 100644
--- a/xen/arch/arm/irq.c
+++ b/xen/arch/arm/irq.c
@@ -219,7 +219,10 @@ static inline struct domain *irq_get_domain(struct 
irq_desc *desc)
 void irq_set_affinity(struct irq_desc *desc, const cpumask_t *mask)
 {
     if ( desc != NULL )
+    {
+        cpumask_copy(desc->affinity, mask);
         desc->handler->set_affinity(desc, mask);
+    }
 }
 
 int request_irq(unsigned int irq, unsigned int irqflags,
-- 
2.51.2

Reply via email to