lkml.org 
[lkml]   [2008]   [Apr]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [v4l-dvb-maintainer] [patch, -git] drivers/media build fix for modular builds
On Wed, 30 Apr 2008, Andrew Morton wrote:
> Does this make it feel better?
>
> --- a/drivers/media/video/tuner-core.c~a
> +++ a/drivers/media/video/tuner-core.c
> @@ -40,11 +40,11 @@
> typeof(&FUNCTION) __a = symbol_request(FUNCTION); \
> if (__a) { \
> __r = (int) __a(ARGS); \
> + symbol_put(FUNCTION); \
> } else { \
> printk(KERN_ERR "TUNER: Unable to find " \
> "symbol "#FUNCTION"()\n"); \
> } \
> - symbol_put(FUNCTION); \
> __r; \
> })

Should the symbol_put be done at all? When I wrote the code this is based
on, it would check if FUNCTION failed or not. If it failed, the symbol was
put. But if it worked, then one was returned a handle into FUNCTION's
module, and so the symbol was not put. If it was, the module's refcount
would be zero but the caller would have a handle into the module.

So if FUNCTION does anything that creates references to the module, and it
doesn't inc it's own refcount, then the symbol_put shouldn't be done.


\
 
 \ /
  Last update: 2008-04-30 23:55    [W:0.099 / U:0.124 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site