[RFC][PATCH v4 1/4] alsa: jack: implement software jack injection via debugfs
Takashi Iwai
tiwai at suse.de
Wed Jan 20 15:51:36 CET 2021
On Mon, 11 Jan 2021 14:05:54 +0100,
Hui Wang wrote:
> +static ssize_t sw_inject_enable_read(struct file *file,
> + char __user *to, size_t count, loff_t *ppos)
> +{
> + struct snd_jack_kctl *jack_kctl = file->private_data;
> + char *buf;
> + int len, ret;
> +
> + buf = kvzalloc(PAGE_SIZE, GFP_KERNEL);
> + if (!buf)
> + return -ENOMEM;
> +
> + len = scnprintf(buf, PAGE_SIZE, "%s: %s\t\t%s: %i\n", "Jack", jack_kctl->kctl->id.name,
> + "Inject Enabled", jack_kctl->sw_inject_enable);
> + ret = simple_read_from_buffer(to, count, ppos, buf, len);
For this size of a string buffer, you don't need to allocate via
kvmalloc(). It can be on stack.
> +static ssize_t sw_inject_enable_write(struct file *file,
> + const char __user *from, size_t count, loff_t *ppos)
> +{
> + struct snd_jack_kctl *jack_kctl = file->private_data;
> + char *buf;
> + int ret, err;
> + unsigned long enable;
> +
> + buf = kvzalloc(count, GFP_KERNEL);
> + if (!buf)
> + return -ENOMEM;
> +
> + ret = simple_write_to_buffer(buf, count, ppos, from, count);
> + err = kstrtoul(buf, 0, &enable);
Ditto, it's just a single number and cannot be that big.
(Also jackin_inject_write(), too.)
thanks,
Takashi
More information about the Alsa-devel
mailing list