On Tue, 19 Jun 2018, Marc Zyngier wrote: > diff --git a/drivers/irqchip/irq-ls-scfg-msi.c > b/drivers/irqchip/irq-ls-scfg-msi.c > index 2811cc53e425..c671b3212010 100644 > --- a/drivers/irqchip/irq-ls-scfg-msi.c > +++ b/drivers/irqchip/irq-ls-scfg-msi.c > @@ -93,8 +93,12 @@ static void ls_scfg_msi_compose_msg(struct irq_data *data, > struct msi_msg *msg) > msg->address_lo = lower_32_bits(msi_data->msiir_addr); > msg->data = data->hwirq; > > - if (msi_affinity_flag) > - msg->data |= cpumask_first(data->common->affinity); > + if (msi_affinity_flag) { > + const struct cpumask *mask; > + > + mask = irq_data_get_effective_affinity_mask(data); > + msg->data |= cpumask_first(mask); > + } > > iommu_dma_map_msi_msg(data->irq, msg); > } > @@ -121,7 +125,6 @@ static int ls_scfg_msi_set_affinity(struct irq_data > *irq_data, > return -EINVAL; > } > > - cpumask_copy(irq_data->common->affinity, cpumask_of(cpu)); > irq_data_update_effective_affinity(irq_data, cpumask_of(cpu)); > > return IRQ_SET_MASK_OK;
Looks good!