lkml.org 
[lkml]   [2008]   [Apr]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRe: [v4l-dvb-maintainer] [patch, -git] drivers/media build fix fo r modular builds
    Date
    Trent Piepho wrote:
    > 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.
    >
    >
    Trent,

    The symbol_put is correct in this case. This macro above is called
    "tuner_symbol_probe" , used only within tuner-core.c

    This macro is used to call the probe function of a tuner sub-module
    (tea5761, tea5767, tda8290). Regardless of whether the probe succeeds
    or fails, we do the symbol_put. If the probe succeeds, tuner-core will
    proceed to dvb_attach(that_tuner_attach, params), which does the actual
    module use count increase.

    Regards,

    Mike


    \
     
     \ /
      Last update: 2008-05-01 00:43    [W:0.127 / U:0.028 seconds]
    ©2003-2014 Jasper Spaans. hosted at Digital Ocean