On 17/04/2019 13:50:25+0200, Romain Izard wrote:
> On Mon, Apr 15, 2019 at 05:08:56PM +0200, Alexandre Belloni wrote:
> > The TCBs that have children are using the proper DT bindings and don't need
> > to be handled by tclib.
> > 
> > Cc: Arnd Bergmann <[email protected]>
> > Signed-off-by: Alexandre Belloni <[email protected]>
> > ---
> >  drivers/misc/atmel_tclib.c | 3 +++
> >  1 file changed, 3 insertions(+)
> > 
> > diff --git a/drivers/misc/atmel_tclib.c b/drivers/misc/atmel_tclib.c
> > index 194f774ab3a1..c1f5aba1c6f2 100644
> > --- a/drivers/misc/atmel_tclib.c
> > +++ b/drivers/misc/atmel_tclib.c
> > @@ -111,6 +111,9 @@ static int __init tc_probe(struct platform_device *pdev)
> >     struct resource *r;
> >     unsigned int    i;
> >  
> > +   if (of_get_child_count(pdev->dev.of_node))
> > +           return 0;
> > +
> >     irq = platform_get_irq(pdev, 0);
> >     if (irq < 0)
> >             return -EINVAL;
> 
> This lead to a panic during shutdown, as tc_shutdown is called on the
> device that has not been initialized and it has not been designed for
> this.
> 

Yes, I saw that yesterday, the solution is to return -EBUSY instead of
0. That's what I had in my original series and I changed it before
submitting to avoid the error message at boot but this was not a good
idea.

-- 
Alexandre Belloni, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

Reply via email to