> On Mon, Mar 12, 2007 at 09:55:14PM -0400, Mark Lord wrote:
>
>> 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=d9a7ecacac...
>
> So, this patch should be reverted for now.