Am Dienstag, 13. März 2007 10:14 schrieb Jim Radford:

> > So where does the memory get freed -- the structure pointed at
> > by the serial->port[i] thingie ?  It's not a leak, is it?
> 
> It gets free'd through device_unregister
> 
>     for (i = 0; i < num_ports; ++i) {
>        ...
>        port->dev.release = &port_release;
>        ...
>        retval = device_register(&port->dev);
> 
> which means that until all the drivers get converted to use
> ->port_probe() and ->port_remove() (which gets called by
> device_unregister) and stop using the ->port[] array in ->shutdown()
> we need to have ->shutdown() called before device_unregister.
> 
> > > > > Look at changeset d9a7ecacac5f8274d2afce09aadcf37bdb42b93a in Linus's
> > > > > tree from Jim Radford:
> 
> > > > > http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d9a7ecacac5f8274d2afce09aadcf37bdb42b93a
> 
> So, this patch should be reverted for now.

While we are at it, is there a reason we call return_serial() late in the
sequence? Making sure the device is not reopened should be the
first measure. Are we protected by hanging up the tty?

Secondly, what is this code supposed to do:

        for (i = 0; i < serial->num_ports; ++i)
                serial->port[i]->open_count = 0;

If we get to destroy_serial(), how can ports still be open?

        Regards
                Oliver

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to