• Arnd Bergmann's avatar
    media: don't drop front-end reference count for ->detach · 14e3cdbb
    Arnd Bergmann authored
    A bugfix introduce a link failure in configurations without CONFIG_MODULES:
    
    In file included from drivers/media/usb/dvb-usb/pctv452e.c:20:0:
    drivers/media/usb/dvb-usb/pctv452e.c: In function 'pctv452e_frontend_attach':
    drivers/media/dvb-frontends/stb0899_drv.h:151:36: error: weak declaration of 'stb0899_attach' being applied to a already existing, static definition
    
    The problem is that the !IS_REACHABLE() declaration of stb0899_attach()
    is a 'static inline' definition that clashes with the weak definition.
    
    I further observed that the bugfix was only done for one of the five users
    of stb0899_attach(), the other four still have the problem.  This reverts
    the bugfix and instead addresses the problem by not dropping the reference
    count when calling '->detach()', instead we call this function directly
    in dvb_frontend_put() before dropping the kref on the front-end.
    
    I first submitted this in early 2018, and after some discussion it
    was apparently discarded.  While there is a long-term plan in place,
    that plan is obviously not nearing completion yet, and the current
    kernel is still broken unless this patch is applied.
    
    Link: https://patchwork.kernel.org/patch/10140175/
    Link: https://patchwork.linuxtv.org/patch/54831/
    
    Cc: Max Kellermann <max.kellermann@gmail.com>
    Cc: Wolfgang Rohdewald <wolfgang@rohdewald.de>
    Cc: stable@vger.kernel.org
    Fixes: f686c143 ("[media] stb0899: move code to "detach" callback")
    Fixes: 6cdeaed3 ("media: dvb_usb_pctv452e: module refcount changes were unbalanced")
    Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
    Signed-off-by: default avatarSean Young <sean@mess.org>
    Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+samsung@kernel.org>
    14e3cdbb
pctv452e.c 24.8 KB