From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8CDB8C4332D for ; Thu, 18 Mar 2021 13:34:21 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 3935F64FA6 for ; Thu, 18 Mar 2021 13:34:21 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230289AbhCRNds (ORCPT ); Thu, 18 Mar 2021 09:33:48 -0400 Received: from smtprelay0082.hostedemail.com ([216.40.44.82]:37576 "EHLO smtprelay.hostedemail.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S230010AbhCRNd3 (ORCPT ); Thu, 18 Mar 2021 09:33:29 -0400 Received: from filter.hostedemail.com (clb03-v110.bra.tucows.net [216.40.38.60]) by smtprelay05.hostedemail.com (Postfix) with ESMTP id 9A5FE18016676; Thu, 18 Mar 2021 13:33:28 +0000 (UTC) X-Session-Marker: 6A6F6540706572636865732E636F6D X-HE-Tag: light50_061599227747 X-Filterd-Recvd-Size: 2864 Received: from [192.168.1.159] (unknown [47.151.137.21]) (Authenticated sender: joe@perches.com) by omf11.hostedemail.com (Postfix) with ESMTPA; Thu, 18 Mar 2021 13:33:27 +0000 (UTC) Message-ID: <50b9ca002b7ce6c34a9c5d32126f667ec2c714b0.camel@perches.com> Subject: Re: [Linuxarm] Re: [PATCH 2/3] drivers/perf: convert sysfs scnprintf family to sysfs_emit_at From: Joe Perches To: "liuqi (BA)" , john.garry@huawei.com, zhangshaokun@hisilicon.com, will@kernel.org, mark.rutland@arm.com Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linuxarm@openeuler.org Date: Thu, 18 Mar 2021 06:33:25 -0700 In-Reply-To: References: <1615974111-45601-1-git-send-email-liuqi115@huawei.com> <1615974111-45601-3-git-send-email-liuqi115@huawei.com> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.38.1-1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, 2021-03-18 at 17:33 +0800, liuqi (BA) wrote: > On 2021/3/17 22:57, Joe Perches wrote: > > On Wed, 2021-03-17 at 17:41 +0800, Qi Liu wrote: > > > Use the generic sysfs_emit_at() function take place of scnprintf() > > [] > > > diff --git a/drivers/perf/arm-ccn.c b/drivers/perf/arm-ccn.c > > [] > > > @@ -328,41 +328,37 @@ static ssize_t arm_ccn_pmu_event_show(struct device *dev, > > >    struct arm_ccn_pmu_event, attr); > > >    ssize_t res; > > >    > > > > > > > > > - res = scnprintf(buf, PAGE_SIZE, "type=0x%x", event->type); > > > + res = sysfs_emit(buf, "type=0x%x", event->type); > > >    if (event->event) > > > - res += scnprintf(buf + res, PAGE_SIZE - res, ",event=0x%x", > > > + res += sysfs_emit_at(buf + res, res, ",event=0x%x", > > >    event->event); > > > > sysfs_emit_at should always use buf, not buf + offset. > > res should be int and is the offset from buf for the output > > > > so the form should be similar to > > > > int len; > > > > len = sysfs_emit(buf, "type=0x%x", event->type); > > if (event->event) { > > len += sysfs_emit_at(buf, len, ",event=0x%x", event->event); > > > > etc... > > > Hi Joe, > > I'll fix the use of sysfs_emit_at in next version, thanks. > But I think it's better to keep the res as ssize_t, as the return value > of this function is ssize_t. The 2nd arg of sysfs_emit_at is int. On 64 bit platforms, ssize_t is 64 bit while int is 32. If res (or len) is ssize_t, there could be a lot of -Wconversion warnings like this produced when using make W= warning: conversion from ‘ssize_t’ {aka ‘long int’} to ‘int’ may change value [-Wconversion] 262 | len += sysfs_emit_at(buf, len, "\n");