summaryrefslogtreecommitdiffstats
path: root/sound
diff options
context:
space:
mode:
authorCezary Rojewski <cezary.rojewski@intel.com>2023-09-29 13:24:34 +0200
committerMark Brown <broonie@kernel.org>2023-09-29 14:17:54 +0200
commit0a5fb3cc28fda52c761775db2ccb7ccb954aee2a (patch)
tree010ed1db44a15c758466b1bea5cb6668666b2ce1 /sound
parentASoC: Intel: avs: Preallocate memory for module configuration (diff)
downloadlinux-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.c4
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;
}