Re: [PATCH 2/2] ASoC: pcm: update module refcount if module_get_upon_open is set

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 2019-04-04 at 20:06 -0700, Ranjani Sridharan wrote:
> Setting the module_get_upon_open field for component driver
> prevents the module refcount from being incremented during
> component probe(). This could lead to the module being
> allowed to be unloaded when a pcm stream is open. So,
> if this field is set, the module's refcount should be
> incremented during pcm open to prevent module removal
> when the component is in use. And, the refcount should
> be decremented upon pcm close.
> 
> Signed-off-by: Ranjani Sridharan <ranjani.sridharan@xxxxxxxxxxxxxxx>
> ---
>  sound/soc/soc-pcm.c | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/sound/soc/soc-pcm.c b/sound/soc/soc-pcm.c
> index 7fe5321000e8..d84a9a5b14c0 100644
> --- a/sound/soc/soc-pcm.c
> +++ b/sound/soc/soc-pcm.c
> @@ -15,6 +15,7 @@
>  #include <linux/delay.h>
>  #include <linux/pinctrl/consumer.h>
>  #include <linux/pm_runtime.h>
> +#include <linux/module.h>
>  #include <linux/slab.h>
>  #include <linux/workqueue.h>
>  #include <linux/export.h>
> @@ -463,6 +464,9 @@ static int soc_pcm_components_close(struct
> snd_pcm_substream *substream,
>  			continue;
>  
>  		component->driver->ops->close(substream);
> +
> +		if (component->driver->module_get_upon_open)
> +			module_put(component->dev->driver->owner);
I made a minor fix to align the code similar to the one in soc-core.
I've sent a V2 version of the patch set with the fix. Sorry about the
noise.

Thanks,
Ranjani
>  	}
>  
>  	return 0;
> @@ -513,6 +517,10 @@ static int soc_pcm_open(struct snd_pcm_substream
> *substream)
>  		    !component->driver->ops->open)
>  			continue;
>  
> +		if (component->driver->module_get_upon_open)
> +			if (!try_module_get(component->dev->driver-
> >owner))
> +				return -ENODEV;
> +
>  		ret = component->driver->ops->open(substream);
>  		if (ret < 0) {
>  			dev_err(component->dev,

_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
https://mailman.alsa-project.org/mailman/listinfo/alsa-devel



[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Pulse Audio]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux