Hi Linus, On Tue, Nov 17, 2020 at 10:37 PM Linus Walleij <linus.walleij@xxxxxxxxxx> wrote: > This assigns the .irq_set_affinity to the parent callback. > I assume the sifive GPIO can be used in systems with > SMP. > > I used the pattern making the hirerarchy tolerant for missing > parent as in Marc's earlier patches. > > Cc: Yash Shah <yash.shah@xxxxxxxxxx> > Cc: Wesley W. Terpstra <wesley@xxxxxxxxxx> > Suggested-by: Marc Zyngier <maz@xxxxxxxxxx> > Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx> Thanks for your patch! > --- > ChangeLog RFT->v1: > - Make the affinity setting call return -EINVAL if there > is no parent. Would it make sense to incorporate this check into irq_chip_set_affinity_parent(), so drivers can just point .irq_set_affinity to the latter, without having to provide (duplicate) the same wrapper over and over? > - Real patch because now we believe in this > --- > drivers/gpio/gpio-sifive.c | 11 +++++++++++ > 1 file changed, 11 insertions(+) > > diff --git a/drivers/gpio/gpio-sifive.c b/drivers/gpio/gpio-sifive.c > index c54dd08f2cbf..485820e4488c 100644 > --- a/drivers/gpio/gpio-sifive.c > +++ b/drivers/gpio/gpio-sifive.c > @@ -128,6 +128,16 @@ static void sifive_gpio_irq_eoi(struct irq_data *d) > irq_chip_eoi_parent(d); > } > > +static int sifive_gpio_irq_set_affinity(struct irq_data *data, > + const struct cpumask *dest, > + bool force) > +{ > + if (data->parent_data) > + return irq_chip_set_affinity_parent(data, dest, force); > + > + return -EINVAL; > +} > + > static struct irq_chip sifive_gpio_irqchip = { > .name = "sifive-gpio", > .irq_set_type = sifive_gpio_irq_set_type, > @@ -136,6 +146,7 @@ static struct irq_chip sifive_gpio_irqchip = { > .irq_enable = sifive_gpio_irq_enable, > .irq_disable = sifive_gpio_irq_disable, > .irq_eoi = sifive_gpio_irq_eoi, > + .irq_set_affinity = sifive_gpio_irq_set_affinity, > }; Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds