Re: [PATCH] PCI: dwc: Chain the set IRQ affinity request back to the parent

From: kernel test robot
Date: Mon Mar 03 2025 - 05:14:46 EST


Hi Daniel,

kernel test robot noticed the following build errors:

[auto build test ERROR on pci/next]
[also build test ERROR on pci/for-linus mani-mhi/mhi-next linus/master v6.14-rc5 next-20250228]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url: https://github.com/intel-lab-lkp/linux/commits/Daniel-Tsai/PCI-dwc-Chain-the-set-IRQ-affinity-request-back-to-the-parent/20250303-150704
base: https://git.kernel.org/pub/scm/linux/kernel/git/pci/pci.git next
patch link: https://lore.kernel.org/r/20250303070501.2740392-1-danielsftsai%40google.com
patch subject: [PATCH] PCI: dwc: Chain the set IRQ affinity request back to the parent
config: sparc64-randconfig-002-20250303 (https://download.01.org/0day-ci/archive/20250303/202503031759.oiGkE9fl-lkp@xxxxxxxxx/config)
compiler: sparc64-linux-gcc (GCC) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250303/202503031759.oiGkE9fl-lkp@xxxxxxxxx/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202503031759.oiGkE9fl-lkp@xxxxxxxxx/

All errors (new ones prefixed by >>):

drivers/pci/controller/dwc/pcie-designware-host.c: In function 'dw_pci_msi_set_affinity':
>> drivers/pci/controller/dwc/pcie-designware-host.c:223:58: error: 'struct irq_common_data' has no member named 'affinity'
223 | cpumask_copy(desc_parent->irq_common_data.affinity, mask);
| ^


vim +223 drivers/pci/controller/dwc/pcie-designware-host.c

178
179 static int dw_pci_msi_set_affinity(struct irq_data *d,
180 const struct cpumask *mask, bool force)
181 {
182 struct dw_pcie_rp *pp = irq_data_get_irq_chip_data(d);
183 struct dw_pcie *pci = to_dw_pcie_from_pp(pp);
184 int ret;
185 int virq_parent;
186 unsigned long hwirq = d->hwirq;
187 unsigned long flags, ctrl;
188 struct irq_desc *desc_parent;
189 const struct cpumask *effective_mask;
190 cpumask_var_t mask_result;
191
192 ctrl = hwirq / MAX_MSI_IRQS_PER_CTRL;
193 if (!alloc_cpumask_var(&mask_result, GFP_ATOMIC))
194 return -ENOMEM;
195
196 /*
197 * Loop through all possible MSI vector to check if the
198 * requested one is compatible with all of them
199 */
200 raw_spin_lock_irqsave(&pp->lock, flags);
201 cpumask_copy(mask_result, mask);
202 ret = dw_pci_check_mask_compatibility(pp, ctrl, hwirq, mask_result);
203 if (ret) {
204 dev_dbg(pci->dev, "Incompatible mask, request %*pbl, irq num %u\n",
205 cpumask_pr_args(mask), d->irq);
206 goto unlock;
207 }
208
209 dev_dbg(pci->dev, "Final mask, request %*pbl, irq num %u\n",
210 cpumask_pr_args(mask_result), d->irq);
211
212 virq_parent = pp->msi_irq[ctrl];
213 desc_parent = irq_to_desc(virq_parent);
214 ret = desc_parent->irq_data.chip->irq_set_affinity(&desc_parent->irq_data,
215 mask_result, force);
216
217 if (ret < 0)
218 goto unlock;
219
220 switch (ret) {
221 case IRQ_SET_MASK_OK:
222 case IRQ_SET_MASK_OK_DONE:
> 223 cpumask_copy(desc_parent->irq_common_data.affinity, mask);
224 fallthrough;
225 case IRQ_SET_MASK_OK_NOCOPY:
226 break;
227 }
228
229 effective_mask = irq_data_get_effective_affinity_mask(&desc_parent->irq_data);
230 dw_pci_update_effective_affinity(pp, ctrl, effective_mask, hwirq);
231
232 unlock:
233 free_cpumask_var(mask_result);
234 raw_spin_unlock_irqrestore(&pp->lock, flags);
235 return ret < 0 ? ret : IRQ_SET_MASK_OK_NOCOPY;
236 }
237

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki