lkml.org 
[lkml]   [2009]   [Mar]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[patch 10/43] ALSA: opl3sa2 - Fix NULL dereference when suspending snd_opl3sa2
    2.6.28-stable review patch.  If anyone has any objections, please let us know.

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

    From: Krzysztof Helt <krzysztof.h1@wp.pl>

    commit dde332b660cf0bc2baaba678b52768a0fb6e6da2 upstream.

    Fix the OOPS during a opl3sa2 card suspend
    and resume if the driver is loaded but the card
    is not found.

    Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

    ---
    sound/isa/opl3sa2.c | 18 ++++++++++++------
    1 file changed, 12 insertions(+), 6 deletions(-)

    --- a/sound/isa/opl3sa2.c
    +++ b/sound/isa/opl3sa2.c
    @@ -550,21 +550,27 @@ static int __devinit snd_opl3sa2_mixer(s
    #ifdef CONFIG_PM
    static int snd_opl3sa2_suspend(struct snd_card *card, pm_message_t state)
    {
    - struct snd_opl3sa2 *chip = card->private_data;
    + if (card) {
    + struct snd_opl3sa2 *chip = card->private_data;

    - snd_power_change_state(card, SNDRV_CTL_POWER_D3hot);
    - chip->wss->suspend(chip->wss);
    - /* power down */
    - snd_opl3sa2_write(chip, OPL3SA2_PM_CTRL, OPL3SA2_PM_D3);
    + snd_power_change_state(card, SNDRV_CTL_POWER_D3hot);
    + chip->wss->suspend(chip->wss);
    + /* power down */
    + snd_opl3sa2_write(chip, OPL3SA2_PM_CTRL, OPL3SA2_PM_D3);
    + }

    return 0;
    }

    static int snd_opl3sa2_resume(struct snd_card *card)
    {
    - struct snd_opl3sa2 *chip = card->private_data;
    + struct snd_opl3sa2 *chip;
    int i;

    + if (!card)
    + return 0;
    +
    + chip = card->private_data;
    /* power up */
    snd_opl3sa2_write(chip, OPL3SA2_PM_CTRL, OPL3SA2_PM_D0);




    \
     
     \ /
      Last update: 2009-03-21 00:55    [W:0.023 / U:88.408 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site