diff options
| author | Mark Brown <[email protected]> | 2022-10-19 16:37:01 +0100 |
|---|---|---|
| committer | Mark Brown <[email protected]> | 2022-10-19 16:37:01 +0100 |
| commit | 008f05a72d32dcc14038801649ec67af765fcc3c (patch) | |
| tree | c958a2ab7039ea3e03621b1cbae4fcad41ee947c /kernel/fail_function.c | |
| parent | 32def55d237e8507d4eb8442628fc2e59a899ea0 (diff) | |
| parent | df496157a5afa1b6d1f4c46ad6549c2c346d1e59 (diff) | |
ASoC: jz4752b: Capture fixes
Merge series from Siarhei Volkau <[email protected]>:
The patchset fixes:
- Line In path stays powered off during capturing or
bypass to mixer.
- incorrectly represented dB values in alsamixer, et al.
- incorrect represented Capture input selector in alsamixer
in Playback tab.
- wrong control selected as Capture Master
Diffstat (limited to 'kernel/fail_function.c')
| -rw-r--r-- | kernel/fail_function.c | 26 |
1 files changed, 10 insertions, 16 deletions
diff --git a/kernel/fail_function.c b/kernel/fail_function.c index 60dc825ecc2b..a7ccd2930c5f 100644 --- a/kernel/fail_function.c +++ b/kernel/fail_function.c @@ -247,15 +247,11 @@ static ssize_t fei_write(struct file *file, const char __user *buffer, /* cut off if it is too long */ if (count > KSYM_NAME_LEN) count = KSYM_NAME_LEN; - buf = kmalloc(count + 1, GFP_KERNEL); - if (!buf) - return -ENOMEM; - if (copy_from_user(buf, buffer, count)) { - ret = -EFAULT; - goto out_free; - } - buf[count] = '\0'; + buf = memdup_user_nul(buffer, count); + if (IS_ERR(buf)) + return PTR_ERR(buf); + sym = strstrip(buf); mutex_lock(&fei_lock); @@ -298,17 +294,15 @@ static ssize_t fei_write(struct file *file, const char __user *buffer, } ret = register_kprobe(&attr->kp); - if (!ret) - fei_debugfs_add_attr(attr); - if (ret < 0) - fei_attr_remove(attr); - else { - list_add_tail(&attr->list, &fei_attr_list); - ret = count; + if (ret) { + fei_attr_free(attr); + goto out; } + fei_debugfs_add_attr(attr); + list_add_tail(&attr->list, &fei_attr_list); + ret = count; out: mutex_unlock(&fei_lock); -out_free: kfree(buf); return ret; } |