Update the effective affinity mask when an interrupt was successfully
targeted to a CPU.

Signed-off-by: Thomas Gleixner <[email protected]>
---
 drivers/xen/events/events_base.c |    6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

--- a/drivers/xen/events/events_base.c
+++ b/drivers/xen/events/events_base.c
@@ -1343,8 +1343,12 @@ static int set_affinity_irq(struct irq_d
                            bool force)
 {
        unsigned tcpu = cpumask_first_and(dest, cpu_online_mask);
+       int ret = rebind_irq_to_cpu(data->irq, tcpu);
 
-       return rebind_irq_to_cpu(data->irq, tcpu);
+       if (!ret)
+               irq_data_update_effective_affinity(data, cpumask_of(tcpu));
+
+       return ret;
 }
 
 static void enable_dynirq(struct irq_data *data)


Reply via email to