On Thu, 2011-03-10 at 11:23 -0600, Meador Inge wrote: > AFAIK, we can't rely on 'set_affinity' always being called. I don't > think it is called at all when !defined(CONFIG_SMP) and if it was, > then that would be an error: > > /* include/linux/irq.h */ > > #else /* CONFIG_SMP */ > > static inline int irq_set_affinity(unsigned int irq, > const struct cpumask *m) > { > return -EINVAL; > }
You are right. We do need to set a sane default then. > > partially initialized in set_type, I'd say just modify set_type to > > initialize the source as well, and problem solved, no ? > > The priority has to be initialized as well. They could both be done > in > 'mpic_set_irq_type', but that seems like a weird place since it has > nothing to do with actually setting the type. > > Since we already have 'mpic_irq_set_priority' and 'mpic_set_vector', > perhaps a better option is to add 'mpic_set_destination' and put the > following in 'mpic_host_map' (using the cpuid helper function > suggested > above): > > /* Lazy source init when MPIC_NO_RESET */ > if (!mpic_is_ipi(mpic, hw) && (mpic->flags & MPIC_NO_RESET)) { > mpic_set_vector(virq, hw); > mpic_set_destination(virq, mpic_cpuid(mpic)); > mpic_irq_set_priority(virq, 8); > } > > It is more overhead, but it reads well. Thoughts? No objection. Cheers, Ben. _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev