linux-stable/scripts/coccinelle/api/device_attr_show.cocci
Julia Lawall ff82e84e80 coccinelle: device_attr_show: simplify patch case
Replacing the final expression argument by ... allows the format
string to have multiple arguments.

It also has the advantage of allowing the change to be recognized as
a change in a single statement, thus avoiding adding unneeded braces.

Signed-off-by: Julia Lawall <Julia.Lawall@inria.fr>
2024-01-20 21:56:11 +01:00

54 lines
1.1 KiB
Text

// 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
+ sysfs_emit(BUF, FORMAT
,...);
...>
}
@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")