diff options
author | Cezary Rojewski <cezary.rojewski@intel.com> | 2023-09-29 13:24:34 +0200 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2023-09-29 14:17:54 +0200 |
commit | 0a5fb3cc28fda52c761775db2ccb7ccb954aee2a (patch) | |
tree | 010ed1db44a15c758466b1bea5cb6668666b2ce1 /sound | |
parent | ASoC: Intel: avs: Preallocate memory for module configuration (diff) | |
download | linux-0a5fb3cc28fda52c761775db2ccb7ccb954aee2a.tar.xz linux-0a5fb3cc28fda52c761775db2ccb7ccb954aee2a.zip |
ASoC: Intel: avs: Keep module refcount up when gathering traces
To prevent rmmod and similar behave unexpectedly when invoked on
snd_soc_avs module while the AudioDSP firmware tracing is ongoing,
increase the module refcount until the tracing is stopped.
Signed-off-by: Cezary Rojewski <cezary.rojewski@intel.com>
Signed-off-by: Amadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
Link: https://lore.kernel.org/r/20230929112436.787058-5-amadeuszx.slawinski@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound')
-rw-r--r-- | sound/soc/intel/avs/debugfs.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/sound/soc/intel/avs/debugfs.c b/sound/soc/intel/avs/debugfs.c index bdd388ec01ea..4dfbff0ce508 100644 --- a/sound/soc/intel/avs/debugfs.c +++ b/sound/soc/intel/avs/debugfs.c @@ -236,6 +236,9 @@ static int strace_open(struct inode *inode, struct file *file) struct avs_dev *adev = inode->i_private; int ret; + if (!try_module_get(adev->dev->driver->owner)) + return -ENODEV; + if (kfifo_initialized(&adev->trace_fifo)) return -EBUSY; @@ -270,6 +273,7 @@ static int strace_release(struct inode *inode, struct file *file) spin_unlock_irqrestore(&adev->trace_lock, flags); + module_put(adev->dev->driver->owner); return 0; } |