|
@@ -125,17 +125,12 @@ static int ac97_codec_add(struct ac97_controller *ac97_ctrl, int idx,
|
|
|
vendor_id);
|
|
vendor_id);
|
|
|
|
|
|
|
|
ret = device_add(&codec->dev);
|
|
ret = device_add(&codec->dev);
|
|
|
- if (ret)
|
|
|
|
|
- goto err_free_codec;
|
|
|
|
|
|
|
+ if (ret) {
|
|
|
|
|
+ put_device(&codec->dev);
|
|
|
|
|
+ return ret;
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
return 0;
|
|
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,
|
|
unsigned int snd_ac97_bus_scan_one(struct ac97_controller *adrv,
|