[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