Commit-ID:  ef1c2cc88531a967fa97d1ac1f3f8a64ee6910b4
Gitweb:     http://git.kernel.org/tip/ef1c2cc88531a967fa97d1ac1f3f8a64ee6910b4
Author:     Thomas Gleixner <[email protected]>
AuthorDate: Tue, 20 Jun 2017 01:37:45 +0200
Committer:  Thomas Gleixner <[email protected]>
CommitDate: Thu, 22 Jun 2017 18:21:23 +0200

xen/events: Add support for effective affinity mask

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

Signed-off-by: Thomas Gleixner <[email protected]>
Cc: Jens Axboe <[email protected]>
Cc: Marc Zyngier <[email protected]>
Cc: Michael Ellerman <[email protected]>
Cc: Keith Busch <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Christoph Hellwig <[email protected]>
Link: http://lkml.kernel.org/r/[email protected]

---
 drivers/xen/events/events_base.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/xen/events/events_base.c b/drivers/xen/events/events_base.c
index b52852f..2e567d8 100644
--- 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_data *data, const 
struct cpumask *dest,
                            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