> >> @@ -1200,6 +1235,13 @@ static int mvebu_gpio_probe(struct platform_device *pdev) > >> > >> devm_gpiochip_add_data(&pdev->dev, &mvchip->chip, mvchip); > >> > >> + /* Some MVEBU SoCs have simple PWM support for GPIO lines */ > >> + if (IS_ENABLED(CONFIG_PWM)) { > >> + err = mvebu_pwm_probe(pdev, mvchip, id); > >> + if (err) > >> + return err; > >> + } > >> + > > > > The existing error handling looks odd here. Why is there no goto > > err_domain when probing the PWMs fails? I wonder if this a bug from me > > from a long time again? > > What would you release under the err_domain label? As far as I can see > all resources are allocated using devres, and released automatically on > failure exit. The IRQ domain is still registers. So once the memory is automatically freed, don't we have a potential use after free? Andrew