Messages in this thread | | | Date | Tue, 10 Jun 2008 09:42:41 -0700 | From | Greg KH <> | Subject | Re: on static kobjects and double frees... |
| |
On Tue, Jun 10, 2008 at 09:38:00AM -0700, Arthur Jones wrote: > Hi Greg, ... > > On Tue, Jun 10, 2008 at 09:23:41AM -0700, Greg KH wrote: > > On Tue, Jun 10, 2008 at 08:58:50AM -0700, Arthur Jones wrote: > > > Hi Greg, The edac pci sysfs generic layer uses a static > > > kobject as a placeholder parent where edac pci drivers > > > are inserted. > > > > Hm, stop right there. > > > > kobjects are not supposed to be static, bad things happen if you do that > > (including the kernel itself will warn you about them, unless you gave > > it an empty release function, and if so, then see > > Documentation/kobject.txt and prepare to be mocked...) > > OK, I wondered about this, but I didn't see anything > in Documentation/kobject.txt that said that kobjects > can not be static. But now that I've fixed the double > free bug, I'm seeing the warning you mentioned above...
Hm, there is the following text in that file: Because kobjects are dynamic, they must not be declared statically or on the stack, but instead, always allocated dynamically. Future versions of the kernel will contain a run-time check for kobjects that are created statically and will warn the developer of this improper usage.
> I don't know how the current code came to be, so I > can't speak to your issues below. But, with these > pointers, I think I can get things cleaned up properly.
Great, if you want me to review it, I'd be glad to do so.
thanks,
greg k-h
| |