Hi, On 10/18/21 11:17, Ye Guojin wrote: > coccicheck complains about the use of snprintf() in sysfs show > functions: > > WARNING use scnprintf or sprintf > > Use sysfs_emit instead of scnprintf or sprintf makes more sense. > > Reported-by: Zeal Robot <zealci@xxxxxxxxxx> > Signed-off-by: Ye Guojin <ye.guojin@xxxxxxxxxx> Thank you for your patch, I've applied this patch to my review-hans branch: https://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86.git/log/?h=review-hans Note it will show up in my review-hans branch once I've pushed my local branch there, which might take a while. Once I've run some tests on this branch the patches there will be added to the platform-drivers-x86/for-next branch and eventually will be included in the pdx86 pull-request to Linus for the next merge-window. Regards, Hans > --- > drivers/platform/x86/thinkpad_acpi.c | 54 ++++++++++++++-------------- > 1 file changed, 27 insertions(+), 27 deletions(-) > > diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c > index 882e994658f1..338a848d6dd0 100644 > --- a/drivers/platform/x86/thinkpad_acpi.c > +++ b/drivers/platform/x86/thinkpad_acpi.c > @@ -1277,7 +1277,7 @@ static ssize_t tpacpi_rfk_sysfs_enable_show(const enum tpacpi_rfk_id id, > return status; > } > > - return snprintf(buf, PAGE_SIZE, "%d\n", > + return sysfs_emit(buf, "%d\n", > (status == TPACPI_RFK_RADIO_ON) ? 1 : 0); > } > > @@ -1370,14 +1370,14 @@ static int tpacpi_rfk_procfs_write(const enum tpacpi_rfk_id id, char *buf) > /* interface_version --------------------------------------------------- */ > static ssize_t interface_version_show(struct device_driver *drv, char *buf) > { > - return snprintf(buf, PAGE_SIZE, "0x%08x\n", TPACPI_SYSFS_VERSION); > + return sysfs_emit(buf, "0x%08x\n", TPACPI_SYSFS_VERSION); > } > static DRIVER_ATTR_RO(interface_version); > > /* debug_level --------------------------------------------------------- */ > static ssize_t debug_level_show(struct device_driver *drv, char *buf) > { > - return snprintf(buf, PAGE_SIZE, "0x%04x\n", dbg_level); > + return sysfs_emit(buf, "0x%04x\n", dbg_level); > } > > static ssize_t debug_level_store(struct device_driver *drv, const char *buf, > @@ -1397,7 +1397,7 @@ static DRIVER_ATTR_RW(debug_level); > /* version ------------------------------------------------------------- */ > static ssize_t version_show(struct device_driver *drv, char *buf) > { > - return snprintf(buf, PAGE_SIZE, "%s v%s\n", > + return sysfs_emit(buf, "%s v%s\n", > TPACPI_DESC, TPACPI_VERSION); > } > static DRIVER_ATTR_RO(version); > @@ -1409,7 +1409,7 @@ static DRIVER_ATTR_RO(version); > /* wlsw_emulstate ------------------------------------------------------ */ > static ssize_t wlsw_emulstate_show(struct device_driver *drv, char *buf) > { > - return snprintf(buf, PAGE_SIZE, "%d\n", !!tpacpi_wlsw_emulstate); > + return sysfs_emit(buf, "%d\n", !!tpacpi_wlsw_emulstate); > } > > static ssize_t wlsw_emulstate_store(struct device_driver *drv, const char *buf, > @@ -1432,7 +1432,7 @@ static DRIVER_ATTR_RW(wlsw_emulstate); > /* bluetooth_emulstate ------------------------------------------------- */ > static ssize_t bluetooth_emulstate_show(struct device_driver *drv, char *buf) > { > - return snprintf(buf, PAGE_SIZE, "%d\n", !!tpacpi_bluetooth_emulstate); > + return sysfs_emit(buf, "%d\n", !!tpacpi_bluetooth_emulstate); > } > > static ssize_t bluetooth_emulstate_store(struct device_driver *drv, > @@ -1452,7 +1452,7 @@ static DRIVER_ATTR_RW(bluetooth_emulstate); > /* wwan_emulstate ------------------------------------------------- */ > static ssize_t wwan_emulstate_show(struct device_driver *drv, char *buf) > { > - return snprintf(buf, PAGE_SIZE, "%d\n", !!tpacpi_wwan_emulstate); > + return sysfs_emit(buf, "%d\n", !!tpacpi_wwan_emulstate); > } > > static ssize_t wwan_emulstate_store(struct device_driver *drv, const char *buf, > @@ -1472,7 +1472,7 @@ static DRIVER_ATTR_RW(wwan_emulstate); > /* uwb_emulstate ------------------------------------------------- */ > static ssize_t uwb_emulstate_show(struct device_driver *drv, char *buf) > { > - return snprintf(buf, PAGE_SIZE, "%d\n", !!tpacpi_uwb_emulstate); > + return sysfs_emit(buf, "%d\n", !!tpacpi_uwb_emulstate); > } > > static ssize_t uwb_emulstate_store(struct device_driver *drv, const char *buf, > @@ -2680,7 +2680,7 @@ static ssize_t hotkey_enable_show(struct device *dev, > if (res) > return res; > > - return snprintf(buf, PAGE_SIZE, "%d\n", status); > + return sysfs_emit(buf, "%d\n", status); > } > > static ssize_t hotkey_enable_store(struct device *dev, > @@ -2708,7 +2708,7 @@ static ssize_t hotkey_mask_show(struct device *dev, > struct device_attribute *attr, > char *buf) > { > - return snprintf(buf, PAGE_SIZE, "0x%08x\n", hotkey_user_mask); > + return sysfs_emit(buf, "0x%08x\n", hotkey_user_mask); > } > > static ssize_t hotkey_mask_store(struct device *dev, > @@ -2756,7 +2756,7 @@ static ssize_t hotkey_bios_mask_show(struct device *dev, > { > printk_deprecated_attribute("hotkey_bios_mask", > "This attribute is useless."); > - return snprintf(buf, PAGE_SIZE, "0x%08x\n", hotkey_orig_mask); > + return sysfs_emit(buf, "0x%08x\n", hotkey_orig_mask); > } > > static DEVICE_ATTR_RO(hotkey_bios_mask); > @@ -2766,7 +2766,7 @@ static ssize_t hotkey_all_mask_show(struct device *dev, > struct device_attribute *attr, > char *buf) > { > - return snprintf(buf, PAGE_SIZE, "0x%08x\n", > + return sysfs_emit(buf, "0x%08x\n", > hotkey_all_mask | hotkey_source_mask); > } > > @@ -2777,7 +2777,7 @@ static ssize_t hotkey_adaptive_all_mask_show(struct device *dev, > struct device_attribute *attr, > char *buf) > { > - return snprintf(buf, PAGE_SIZE, "0x%08x\n", > + return sysfs_emit(buf, "0x%08x\n", > hotkey_adaptive_all_mask | hotkey_source_mask); > } > > @@ -2788,7 +2788,7 @@ static ssize_t hotkey_recommended_mask_show(struct device *dev, > struct device_attribute *attr, > char *buf) > { > - return snprintf(buf, PAGE_SIZE, "0x%08x\n", > + return sysfs_emit(buf, "0x%08x\n", > (hotkey_all_mask | hotkey_source_mask) > & ~hotkey_reserved_mask); > } > @@ -2802,7 +2802,7 @@ static ssize_t hotkey_source_mask_show(struct device *dev, > struct device_attribute *attr, > char *buf) > { > - return snprintf(buf, PAGE_SIZE, "0x%08x\n", hotkey_source_mask); > + return sysfs_emit(buf, "0x%08x\n", hotkey_source_mask); > } > > static ssize_t hotkey_source_mask_store(struct device *dev, > @@ -2853,7 +2853,7 @@ static ssize_t hotkey_poll_freq_show(struct device *dev, > struct device_attribute *attr, > char *buf) > { > - return snprintf(buf, PAGE_SIZE, "%d\n", hotkey_poll_freq); > + return sysfs_emit(buf, "%d\n", hotkey_poll_freq); > } > > static ssize_t hotkey_poll_freq_store(struct device *dev, > @@ -2895,7 +2895,7 @@ static ssize_t hotkey_radio_sw_show(struct device *dev, > /* Opportunistic update */ > tpacpi_rfk_update_hwblock_state((res == TPACPI_RFK_RADIO_OFF)); > > - return snprintf(buf, PAGE_SIZE, "%d\n", > + return sysfs_emit(buf, "%d\n", > (res == TPACPI_RFK_RADIO_OFF) ? 0 : 1); > } > > @@ -2918,7 +2918,7 @@ static ssize_t hotkey_tablet_mode_show(struct device *dev, > if (res < 0) > return res; > > - return snprintf(buf, PAGE_SIZE, "%d\n", !!s); > + return sysfs_emit(buf, "%d\n", !!s); > } > > static DEVICE_ATTR_RO(hotkey_tablet_mode); > @@ -2935,7 +2935,7 @@ static ssize_t hotkey_wakeup_reason_show(struct device *dev, > struct device_attribute *attr, > char *buf) > { > - return snprintf(buf, PAGE_SIZE, "%d\n", hotkey_wakeup_reason); > + return sysfs_emit(buf, "%d\n", hotkey_wakeup_reason); > } > > static DEVICE_ATTR(wakeup_reason, S_IRUGO, hotkey_wakeup_reason_show, NULL); > @@ -2951,7 +2951,7 @@ static ssize_t hotkey_wakeup_hotunplug_complete_show(struct device *dev, > struct device_attribute *attr, > char *buf) > { > - return snprintf(buf, PAGE_SIZE, "%d\n", hotkey_autosleep_ack); > + return sysfs_emit(buf, "%d\n", hotkey_autosleep_ack); > } > > static DEVICE_ATTR(wakeup_hotunplug_complete, S_IRUGO, > @@ -2986,7 +2986,7 @@ static ssize_t adaptive_kbd_mode_show(struct device *dev, > if (current_mode < 0) > return current_mode; > > - return snprintf(buf, PAGE_SIZE, "%d\n", current_mode); > + return sysfs_emit(buf, "%d\n", current_mode); > } > > static ssize_t adaptive_kbd_mode_store(struct device *dev, > @@ -6350,7 +6350,7 @@ static ssize_t thermal_temp_input_show(struct device *dev, > if (value == TPACPI_THERMAL_SENSOR_NA) > return -ENXIO; > > - return snprintf(buf, PAGE_SIZE, "%d\n", value); > + return sysfs_emit(buf, "%d\n", value); > } > > #define THERMAL_SENSOR_ATTR_TEMP(_idxA, _idxB) \ > @@ -8583,7 +8583,7 @@ static ssize_t fan_pwm1_enable_show(struct device *dev, > } else > mode = 1; > > - return snprintf(buf, PAGE_SIZE, "%d\n", mode); > + return sysfs_emit(buf, "%d\n", mode); > } > > static ssize_t fan_pwm1_enable_store(struct device *dev, > @@ -8649,7 +8649,7 @@ static ssize_t fan_pwm1_show(struct device *dev, > if (status > 7) > status = 7; > > - return snprintf(buf, PAGE_SIZE, "%u\n", (status * 255) / 7); > + return sysfs_emit(buf, "%u\n", (status * 255) / 7); > } > > static ssize_t fan_pwm1_store(struct device *dev, > @@ -8702,7 +8702,7 @@ static ssize_t fan_fan1_input_show(struct device *dev, > if (res < 0) > return res; > > - return snprintf(buf, PAGE_SIZE, "%u\n", speed); > + return sysfs_emit(buf, "%u\n", speed); > } > > static DEVICE_ATTR(fan1_input, S_IRUGO, fan_fan1_input_show, NULL); > @@ -8719,7 +8719,7 @@ static ssize_t fan_fan2_input_show(struct device *dev, > if (res < 0) > return res; > > - return snprintf(buf, PAGE_SIZE, "%u\n", speed); > + return sysfs_emit(buf, "%u\n", speed); > } > > static DEVICE_ATTR(fan2_input, S_IRUGO, fan_fan2_input_show, NULL); > @@ -8727,7 +8727,7 @@ static DEVICE_ATTR(fan2_input, S_IRUGO, fan_fan2_input_show, NULL); > /* sysfs fan fan_watchdog (hwmon driver) ------------------------------- */ > static ssize_t fan_watchdog_show(struct device_driver *drv, char *buf) > { > - return snprintf(buf, PAGE_SIZE, "%u\n", fan_watchdog_maxinterval); > + return sysfs_emit(buf, "%u\n", fan_watchdog_maxinterval); > } > > static ssize_t fan_watchdog_store(struct device_driver *drv, const char *buf, >