mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-16 21:35:07 +00:00
68ea60a796
Adapt description, warning message and MODE=patch according to the latest Documentation/filesystems/sysfs.rst: > show() should only use sysfs_emit() or sysfs_emit_at() when formatting > the value to be returned to user space. After this patch: When MODE=report, $ make coccicheck COCCI=scripts/coccinelle/api/device_attr_show.cocci M=drivers/hid/hid-picolcd_core.c MODE=report <...snip...> drivers/hid/hid-picolcd_core.c:304:8-16: WARNING: please use sysfs_emit or sysfs_emit_at drivers/hid/hid-picolcd_core.c:259:9-17: WARNING: please use sysfs_emit or sysfs_emit_at When MODE=patch, $ make coccicheck COCCI=scripts/coccinelle/api/device_attr_show.cocci M=drivers/hid/hid-picolcd_core.c MODE=patch <...snip...> diff -u -p a/drivers/hid/hid-picolcd_core.c b/drivers/hid/hid-picolcd_core.c --- a/drivers/hid/hid-picolcd_core.c +++ b/drivers/hid/hid-picolcd_core.c @@ -255,10 +255,12 @@ static ssize_t picolcd_operation_mode_sh { struct picolcd_data *data = dev_get_drvdata(dev); - if (data->status & PICOLCD_BOOTLOADER) - return snprintf(buf, PAGE_SIZE, "[bootloader] lcd\n"); - else - return snprintf(buf, PAGE_SIZE, "bootloader [lcd]\n"); + if (data->status & PICOLCD_BOOTLOADER) { + return sysfs_emit(buf, "[bootloader] lcd\n"); + } + else { + return sysfs_emit(buf, "bootloader [lcd]\n"); + } } static ssize_t picolcd_operation_mode_store(struct device *dev, @@ -301,7 +303,7 @@ static ssize_t picolcd_operation_mode_de { struct picolcd_data *data = dev_get_drvdata(dev); - return snprintf(buf, PAGE_SIZE, "hello world\n"); + return sysfs_emit(buf, "hello world\n"); } static ssize_t picolcd_operation_mode_delay_store(struct device *dev, CC: Julia Lawall <Julia.Lawall@inria.fr> CC: Nicolas Palix <nicolas.palix@imag.fr> CC: cocci@inria.fr Signed-off-by: Li Zhijian <lizhijian@fujitsu.com>
60 lines
1.1 KiB
Plaintext
60 lines
1.1 KiB
Plaintext
// SPDX-License-Identifier: GPL-2.0-only
|
|
///
|
|
/// From Documentation/filesystems/sysfs.rst:
|
|
/// show() should only use sysfs_emit() or sysfs_emit_at() when formatting
|
|
/// the value to be returned to user space.
|
|
///
|
|
// Confidence: High
|
|
// Copyright: (C) 2020 Denis Efremov ISPRAS
|
|
// Options: --no-includes --include-headers
|
|
//
|
|
|
|
virtual report
|
|
virtual org
|
|
virtual context
|
|
virtual patch
|
|
|
|
@r depends on !patch@
|
|
identifier show, dev, attr, buf;
|
|
position p;
|
|
@@
|
|
|
|
ssize_t show(struct device *dev, struct device_attribute *attr, char *buf)
|
|
{
|
|
<...
|
|
* return snprintf@p(...);
|
|
...>
|
|
}
|
|
|
|
@rp depends on patch@
|
|
identifier show, dev, attr, buf;
|
|
expression BUF, SZ, FORMAT, STR;
|
|
@@
|
|
|
|
ssize_t show(struct device *dev, struct device_attribute *attr, char *buf)
|
|
{
|
|
<...
|
|
(
|
|
return
|
|
- snprintf(BUF, SZ, FORMAT, STR);
|
|
+ sysfs_emit(BUF, FORMAT, STR);
|
|
|
|
|
return
|
|
- snprintf(BUF, SZ, STR);
|
|
+ sysfs_emit(BUF, STR);
|
|
)
|
|
...>
|
|
}
|
|
|
|
@script: python depends on report@
|
|
p << r.p;
|
|
@@
|
|
|
|
coccilib.report.print_report(p[0], "WARNING: please use sysfs_emit or sysfs_emit_at")
|
|
|
|
@script: python depends on org@
|
|
p << r.p;
|
|
@@
|
|
|
|
coccilib.org.print_todo(p[0], "WARNING: please use sysfs_emit or sysfs_emit_at")
|