[alsa-devel] [PATCH] ALSA: ac97: fix device initialization in the compat layer
Takashi Iwai
tiwai at suse.de
Sun Aug 19 10:10:47 CEST 2018
On Wed, 15 Aug 2018 14:59:46 +0200,
ylhuajnu at 163.com wrote:
>
> From: Lihua Yao <ylhuajnu at 163.com>
>
> ac97->dev is an object of 'struct device' type. It should be initialized
> via device_initialize() or device_register().
>
> Fixes: 74426fbff66e ("ALSA: ac97: add an ac97 bus")
> Signed-off-by: Lihua Yao <ylhuajnu at 163.com>
Looks good though a quick glance, but I'd like to get an ack from
Robert. Robert? Also check two other patches and runtime PM.
thanks,
Takashi
> ---
> sound/ac97/snd_ac97_compat.c | 19 +++++++++++++++++--
> 1 file changed, 17 insertions(+), 2 deletions(-)
>
> diff --git a/sound/ac97/snd_ac97_compat.c b/sound/ac97/snd_ac97_compat.c
> index 61544e0d8de4..8bab44f74bb8 100644
> --- a/sound/ac97/snd_ac97_compat.c
> +++ b/sound/ac97/snd_ac97_compat.c
> @@ -15,6 +15,11 @@
>
> #include "ac97_core.h"
>
> +static void compat_ac97_release(struct device *dev)
> +{
> + kfree(to_ac97_t(dev));
> +}
> +
> static void compat_ac97_reset(struct snd_ac97 *ac97)
> {
> struct ac97_codec_device *adev = to_ac97_device(ac97->private_data);
> @@ -65,21 +70,31 @@ static struct snd_ac97_bus compat_soc_ac97_bus = {
> struct snd_ac97 *snd_ac97_compat_alloc(struct ac97_codec_device *adev)
> {
> struct snd_ac97 *ac97;
> + int ret;
>
> ac97 = kzalloc(sizeof(struct snd_ac97), GFP_KERNEL);
> if (ac97 == NULL)
> return ERR_PTR(-ENOMEM);
>
> - ac97->dev = adev->dev;
> ac97->private_data = adev;
> ac97->bus = &compat_soc_ac97_bus;
> +
> + ac97->dev.parent = &adev->dev;
> + ac97->dev.release = compat_ac97_release;
> + dev_set_name(&ac97->dev, "%s-compat", dev_name(&adev->dev));
> + ret = device_register(&ac97->dev);
> + if (ret) {
> + put_device(&ac97->dev);
> + return ERR_PTR(ret);
> + }
> +
> return ac97;
> }
> EXPORT_SYMBOL_GPL(snd_ac97_compat_alloc);
>
> void snd_ac97_compat_release(struct snd_ac97 *ac97)
> {
> - kfree(ac97);
> + device_unregister(&ac97->dev);
> }
> EXPORT_SYMBOL_GPL(snd_ac97_compat_release);
>
> --
> 2.17.1
>
>
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel at alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
>
More information about the Alsa-devel
mailing list