diff mbox series

[4/6] ASoC: Intel: avs: Keep module refcount up when gathering traces

Message ID 20230929112436.787058-5-amadeuszx.slawinski@linux.intel.com
State New
Headers show
Series ASoC: Intel: avs: QoL fixes | expand

Commit Message

Amadeusz Sławiński Sept. 29, 2023, 11:24 a.m. UTC
From: Cezary Rojewski <cezary.rojewski@intel.com>

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>
---
 sound/soc/intel/avs/debugfs.c | 4 ++++
 1 file changed, 4 insertions(+)
diff mbox series

Patch

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;
 }