lkml.org 
[lkml]   [2013]   [Sep]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[ 02/14] ALSA: opti9xx: Fix conflicting driver object name
    Date
    3.4-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Takashi Iwai <tiwai@suse.de>

    commit fb615499f0ad28ed74201c1cdfddf9e64e205424 upstream.

    The recent commit to delay the release of kobject triggered NULL
    dereferences of opti9xx drivers. The cause is that all
    snd-opti92x-ad1848, snd-opti92x-cs4231 and snd-opti93x drivers
    register the PnP card driver with the very same name, and also
    snd-opti92x-ad1848 and -cs4231 drivers register the ISA driver with
    the same name, too. When these drivers are built in, quick
    "register-release-and-re-register" actions occur, and this results in
    Oops because of the same name is assigned to the kobject.

    The fix is simply to assign individual names. As a bonus, by using
    KBUILD_MODNAME, the patch reduces more lines than it adds.

    The fix is based on the suggestion by Russell King.

    Reported-and-tested-by: Fengguang Wu <fengguang.wu@intel.com>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    sound/isa/opti9xx/opti92x-ad1848.c | 8 ++------
    1 file changed, 2 insertions(+), 6 deletions(-)

    --- a/sound/isa/opti9xx/opti92x-ad1848.c
    +++ b/sound/isa/opti9xx/opti92x-ad1848.c
    @@ -173,11 +173,7 @@ MODULE_DEVICE_TABLE(pnp_card, snd_opti9x

    #endif /* CONFIG_PNP */

    -#ifdef OPTi93X
    -#define DEV_NAME "opti93x"
    -#else
    -#define DEV_NAME "opti92x"
    -#endif
    +#define DEV_NAME KBUILD_MODNAME

    static char * snd_opti9xx_names[] = {
    "unknown",
    @@ -1126,7 +1122,7 @@ static void __devexit snd_opti9xx_pnp_re

    static struct pnp_card_driver opti9xx_pnpc_driver = {
    .flags = PNP_DRIVER_RES_DISABLE,
    - .name = "opti9xx",
    + .name = DEV_NAME,
    .id_table = snd_opti9xx_pnpids,
    .probe = snd_opti9xx_pnp_probe,
    .remove = __devexit_p(snd_opti9xx_pnp_remove),



    \
     
     \ /
      Last update: 2013-09-05 22:41    [W:4.317 / U:0.004 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site