summaryrefslogtreecommitdiff
path: root/kernel/ksysfs.c
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2024-08-09 14:25:16 +0200
committerTakashi Iwai <tiwai@suse.de>2024-08-09 14:25:24 +0200
commit4004f3029e1f612903f03df497153c90a2752130 (patch)
tree236b0dc4d6ed7421aba5bfd426ac936a0d99721f /kernel/ksysfs.c
parentf6c9a097b55e1955e3dd35f1de4828d3ed67534c (diff)
parent9cacb32a0ba691c2859a20bd5e30b71cc592fad2 (diff)
Merge branch 'topic/control-lookup-rwlock' into for-next
Pull control lookup optimization changes. Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'kernel/ksysfs.c')
-rw-r--r--kernel/ksysfs.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/kernel/ksysfs.c b/kernel/ksysfs.c
index 07fb5987b42b..1bab21b4718f 100644
--- a/kernel/ksysfs.c
+++ b/kernel/ksysfs.c
@@ -92,7 +92,14 @@ static ssize_t profiling_store(struct kobject *kobj,
const char *buf, size_t count)
{
int ret;
+ static DEFINE_MUTEX(lock);
+ /*
+ * We need serialization, for profile_setup() initializes prof_on
+ * value and profile_init() must not reallocate prof_buffer after
+ * once allocated.
+ */
+ guard(mutex)(&lock);
if (prof_on)
return -EEXIST;
/*