1117397Skan// SPDX-License-Identifier: GPL-2.0-only 2117397Skan/// 3132720Skan/// From Documentation/filesystems/sysfs.rst: 4117397Skan/// show() should only use sysfs_emit() or sysfs_emit_at() when formatting 5117397Skan/// the value to be returned to user space. 6117397Skan/// 7117397Skan// Confidence: High 8117397Skan// Copyright: (C) 2020 Denis Efremov ISPRAS 9117397Skan// Options: --no-includes --include-headers 10117397Skan// 11117397Skan 12117397Skanvirtual report 13117397Skanvirtual org 14117397Skanvirtual context 15117397Skanvirtual patch 16117397Skan 17117397Skan@r depends on !patch@ 18169691Skanidentifier show, dev, attr, buf; 19117397Skanposition p; 20117397Skan@@ 21117397Skan 22117397Skanssize_t show(struct device *dev, struct device_attribute *attr, char *buf) 23117397Skan{ 24117397Skan <... 25117397Skan* return snprintf@p(...); 26117397Skan ...> 27117397Skan} 28117397Skan 29117397Skan@rp depends on patch@ 30169691Skanidentifier show, dev, attr, buf; 31169691Skanexpression BUF, SZ, FORMAT; 32169691Skan@@ 33169691Skan 34169691Skanssize_t show(struct device *dev, struct device_attribute *attr, char *buf) 35132720Skan{ 36132720Skan <... 37117397Skan return 38117397Skan- snprintf(BUF, SZ, FORMAT 39117397Skan+ sysfs_emit(BUF, FORMAT 40117397Skan ,...); 41117397Skan ...> 42117397Skan} 43117397Skan 44117397Skan@script: python depends on report@ 45117397Skanp << r.p; 46132720Skan@@ 47117397Skan 48117397Skancoccilib.report.print_report(p[0], "WARNING: please use sysfs_emit or sysfs_emit_at") 49117397Skan 50117397Skan@script: python depends on org@ 51117397Skanp << r.p; 52@@ 53 54coccilib.org.print_todo(p[0], "WARNING: please use sysfs_emit or sysfs_emit_at") 55