On Wed, 28 Nov 2018, Bjorn Helgaas wrote: > On Wed, Nov 28, 2018 at 10:45 AM Dou Liyang <douliyangs@xxxxxxxxx> wrote: > > if (affd) > > - masks = irq_create_affinity_masks(nvec, affd); > > - > > + affi_desc = irq_create_affinity_desc(nvec, affd); > > > > /* MSI Entry Initialization */ > > - entry = alloc_msi_entry(&dev->dev, nvec, masks); > > + entry = alloc_msi_entry(&dev->dev, nvec, affi_desc); > > Can you split this into two or more patches? Most of these changes > are trivial and not very interesting, and the fact that they're all in > one patch makes it hard to find and review the interesting bits. For > example, > > 1) Rename all the local variables while keeping the type the same > (or just leave the name the same; I think "affinity" would be a fine > name, and I would be OK if we ended up with "struct irq_affinity_desc > *masks" or "struct irq_affinity_desc *affinity"). This patch would > obviously have no functional impact and would remove a lot of the > trivial changes. > > 2) Add "struct irq_affinity_desc" containing only "struct cpumask > masks" and irq_create_affinity_desc() (or leave the name as > irq_create_affinity_masks() and adjust the signature). This would > also have no functional impact and would be a fairly trivial patch. > > 3) Add "flags" to struct irq_affinity_desc and the related code. > This is the real meat of your patch, and with the above out of the > way, it will be much smaller and it'll be obvious what the important > changes are. You beat me to it. I was going to ask the same thing. Albeit I'll go over the conceptual stuff right now as I roughly know what it tries to achieve. Thanks, tglx