On 6 October 2020 22:01:18 BST, Thomas Gleixner <tglx@xxxxxxxxxxxxx> wrote: >On Mon, Oct 05 2020 at 16:28, David Woodhouse wrote: >> >> #else /* CONFIG_SMP */ >> >> +#define irq_default_affinity (NULL) > >... > >> static int alloc_descs(unsigned int start, unsigned int cnt, int >node, >> const struct irq_affinity_desc *affinity, >> + const struct cpumask *default_affinity, >> struct module *owner) >> { >> struct irq_desc *desc; >> int i; >> >> /* Validate affinity mask(s) */ >> + if (!default_affinity || cpumask_empty(default_affinity)) >> + return -EINVAL; > >How is that supposed to work on UP? Hm, good point. >Aside of that I really hate to have yet another argument just >because. Yeah, I was trying to avoid having to allocate a whole array of irq_affinity_desc just to fill them all in with the same default. But perhaps I need to treat the "affinity_max" like we do cpu_online_mask, and allow affinity to be set even to offline/unreachable CPUs at this point. Then we can be more relaxed about the default affinities. -- Sent from my Android device with K-9 Mail. Please excuse my brevity.