Re: drivers/base/core.c: about device_find_child() function

Federico Vaga
2013-04-15T08:55:14Z

Thank you very much Greg

> > I did not study serial_core, I was looking only for device_find_child().
> > Probably I'm missing something. Anyway, here what does not convice me:
> >
> > (line number on next-20130412)
> > serial_core.c:2003
> >
> > tty_dev = device_find_child(uport->dev, &match, serial_match_port);
> > if (!uport->suspended && device_may_wakeup(tty_dev)) {
> >
> > if (uport->irq_wake) {
> >
> > disable_irq_wake(uport->irq);
> > uport->irq_wake = 0;
> >
> > }
> >
> > + put_device(tty_dev);
> >
> > mutex_unlock(&port->mutex);
> > return 0;
> >
> > }
> >
> > + put_device(tty_dev);
> >
> > uport->suspended = 0;
> >
> > serial_core:1936
> >
> > tty_dev = device_find_child(uport->dev, &match, serial_match_port);
> > if (device_may_wakeup(tty_dev)) {
> >
> > if (!enable_irq_wake(uport->irq))
> >
> > uport->irq_wake = 1;
> >
> > put_device(tty_dev);
> > mutex_unlock(&port->mutex);
> > return 0;
> >
> > }
> >
> > + put_device(tty_dev);
>
> That looks like a good patch, care to properly send it, (after you test
> it first of course), so that we can apply it?

Yes, I can do it and test it. I hope to find the time for a test in these
days.