On Wed, 11 May 2022 13:06:09 +0200 Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx> wrote: > The call chain > generic_handle_irq(irq_find_mapping(domain, x)); > > could be replaced with > generic_handle_domain_irq(domain, x); > > which looks up the struct irq_desc for the interrupt and handles it with > handle_irq_desc(). > This is a slight optimisation given that the driver invokes only one > function and the struct irq_desc is used directly instead being looked > up via irq_to_desc(). > > Use generic_handle_domain_irq(). > > Signed-off-by: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx> +CC Fabrice, Fun following through the different checks in the two functions, but looks fine to me. Applied to the togreg branch of iio.git and pushed out as testing for 0-day to see if it can find any problems. Thanks, Jonathan > --- > drivers/iio/adc/stm32-adc-core.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/iio/adc/stm32-adc-core.c b/drivers/iio/adc/stm32-adc-core.c > index 1426562321575..c8fc97e52fef4 100644 > --- a/drivers/iio/adc/stm32-adc-core.c > +++ b/drivers/iio/adc/stm32-adc-core.c > @@ -356,7 +356,7 @@ static void stm32_adc_irq_handler(struct irq_desc *desc) > if ((status & priv->cfg->regs->eoc_msk[i] && > stm32_adc_eoc_enabled(priv, i)) || > (status & priv->cfg->regs->ovr_msk[i])) > - generic_handle_irq(irq_find_mapping(priv->domain, i)); > + generic_handle_domain_irq(priv->domain, i); > } > > chained_irq_exit(chip, desc);