On Wed, May 20, 2015 at 05:40:39PM +0800, Jiang Liu wrote: > diff --git a/arch/arm/kernel/irq.c b/arch/arm/kernel/irq.c > index 350f188c92d2..baf8edebe26f 100644 > --- a/arch/arm/kernel/irq.c > +++ b/arch/arm/kernel/irq.c > @@ -140,7 +140,7 @@ int __init arch_probe_nr_irqs(void) > static bool migrate_one_irq(struct irq_desc *desc) > { > struct irq_data *d = irq_desc_get_irq_data(desc); > - const struct cpumask *affinity = d->affinity; > + const struct cpumask *affinity = irq_data_get_affinity_mask(d); > struct irq_chip *c; > bool ret = false; > > @@ -160,7 +160,7 @@ static bool migrate_one_irq(struct irq_desc *desc) > if (!c->irq_set_affinity) > pr_debug("IRQ%u: unable to set affinity\n", d->irq); > else if (c->irq_set_affinity(d, affinity, false) == IRQ_SET_MASK_OK && ret) > - cpumask_copy(d->affinity, affinity); > + cpumask_copy(irq_data_get_affinity_mask(d), affinity); > > return ret; > } > diff --git a/include/linux/irq.h b/include/linux/irq.h > index 43581e166298..2eb82257aaee 100644 > --- a/include/linux/irq.h > +++ b/include/linux/irq.h > @@ -650,6 +650,18 @@ static inline int irq_data_get_node(struct irq_data *d) > return irq_common_data_get_node(d->common); > } > > +static inline struct cpumask *irq_get_affinity_mask(int irq) > +{ > + struct irq_data *d = irq_get_irq_data(irq); > + > + return d ? d->affinity : NULL; > +} > + > +static inline struct cpumask *irq_data_get_affinity_mask(struct irq_data *d) > +{ > + return d->affinity; > +} > + > unsigned int arch_dynirq_lower_bound(unsigned int from); > > int __irq_alloc_descs(int irq, unsigned int from, unsigned int cnt, int node, For the above only, Acked-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx> Thanks. -- FTTC broadband for 0.8mile line: currently at 10.5Mbps down 400kbps up according to speedtest.net.