Messages in this thread | | | Date | Wed, 27 Oct 2010 10:46:42 -0400 | From | "Emilio G. Cota" <> | Subject | Re: [PATCH 09/30] staging/vme: fill in struct device's .release, even if it's a NOOP |
| |
On Wed, Oct 27, 2010 at 11:54:55 +0100, Martyn Welch wrote: > On 26/10/10 02:10, Emilio G. Cota wrote: > > From: Emilio G. Cota <cota@braap.org> > > > > Without it we get 32 warnings, one per device being released, when > > removing a bridge module. > > > > After applying this patch, bridge modules can at last be removed > > without any apparent hiccup. > > > > [Note: tested only on the tsi148, it's the only bridge I've got] > > > > I guess this is an artifact of the current lack of refcounting?
No, that's orthogonal to this. This has to do with the way the devices are allocated.
> This is definitely an issue, however I don't think masking it by adding > an empty function is the correct way to go.
We're not masking anything. The release method is there to free the struct it protects when its refcount goes to zero; however, in this case the struct wasn't allocated dynamically--the 32 devices are stored in struct vme_bridge in an array--and therefore there's nothing to do in .release, since struct vme_bridge is freed elsewhere.
While it's true that empty .release methods are usually frowned upon (as stated in Documentation/kobject.txt), due to the way things are done here it actually makes sense to have an empty .release.
Hope this helps
Emilio
| |