diff options
| author | Ding Xiang <dingxiang@cmss.chinamobile.com> | 2019-07-23 15:44:41 +0800 | 
|---|---|---|
| committer | Takashi Iwai <tiwai@suse.de> | 2019-07-23 14:16:11 +0200 | 
| commit | 607975b30db41aad6edc846ed567191aa6b7d893 (patch) | |
| tree | 6fab25bfa34c143d4dfa0bae26235b7cb674aae1 | |
| parent | 3b8179944cb0dd53e5223996966746cdc8a60657 (diff) | |
| download | linux-607975b30db41aad6edc846ed567191aa6b7d893.tar.bz2 | |
ALSA: ac97: Fix double free of ac97_codec_device
put_device will call ac97_codec_release to free
ac97_codec_device and other resources, so remove the kfree
and other redundant code.
Fixes: 74426fbff66e ("ALSA: ac97: add an ac97 bus")
Signed-off-by: Ding Xiang <dingxiang@cmss.chinamobile.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
| -rw-r--r-- | sound/ac97/bus.c | 13 | 
1 files changed, 4 insertions, 9 deletions
| diff --git a/sound/ac97/bus.c b/sound/ac97/bus.c index 7b977b753a03..7985dd8198b6 100644 --- a/sound/ac97/bus.c +++ b/sound/ac97/bus.c @@ -122,17 +122,12 @@ static int ac97_codec_add(struct ac97_controller *ac97_ctrl, int idx,  						      vendor_id);  	ret = device_add(&codec->dev); -	if (ret) -		goto err_free_codec; +	if (ret) { +		put_device(&codec->dev); +		return ret; +	}  	return 0; -err_free_codec: -	of_node_put(codec->dev.of_node); -	put_device(&codec->dev); -	kfree(codec); -	ac97_ctrl->codecs[idx] = NULL; - -	return ret;  }  unsigned int snd_ac97_bus_scan_one(struct ac97_controller *adrv, |