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=-3.8 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS autolearn=no 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 7CFD3C432C0 for ; Fri, 29 Nov 2019 13:02:00 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 4A58521721 for ; Fri, 29 Nov 2019 13:02:00 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="itgt+hKY"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="An+4zXCF" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4A58521721 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:To:Subject:Message-ID:Date:From: In-Reply-To:References:MIME-Version:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=a4WLxMZ8l/5VZ6qEQ71gK/ffJFP7WNev5dbcnCP4X+4=; b=itgt+hKYf5nb/2 HL7GbBLch0cUnWaI1868GNuE5WPcBfP15iAVg8idq1sJd3t6ppmCwY19kq4fdN1RygRn7GuVrGajM kR1RAgh+HQbYXrRWBU3hhwX/Ye1k746Vk4IxG25fF62zIzm+Htk9aI6f3+Q0B7Rmn4otuYOizHwO5 qQRCIl142XxyfTt7LJeK4NnzbcDNwAnaVTgsBp2BSUAiSoQnmQcqubm4N2tAt5kyB7l8h4NiyRgT1 8+6M+D+sCaxZ4IIMhm3nwugBOVtCSuuxzfunQ8rEMmHHRcS6XdajAiPRxwJU/DBEZf8726BRIX6nV 1bkywsaW8gUHTLQkOUVg==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1iafuI-0001jQ-An; Fri, 29 Nov 2019 13:01:58 +0000 Received: from mail-qt1-x841.google.com ([2607:f8b0:4864:20::841]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1iafuF-0001iX-8b for linux-arm-kernel@lists.infradead.org; Fri, 29 Nov 2019 13:01:56 +0000 Received: by mail-qt1-x841.google.com with SMTP id i17so32408996qtq.1 for ; Fri, 29 Nov 2019 05:01:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=Xn54XTvcNkal14NNHB7+Vzm9BZs6YXQQ3RAQ8lYr/oc=; b=An+4zXCFdte8eMvcqUEG3vfTxzYHLztNUyO+dIju42gILkNWJLODGcoxqgrQR7mqsl OfYl8RSMNw0xmz5Bgz11IFl+yVb5ur2ssG+rt2UWWkK3GXNcN5i0+6XzLBwaYkxROqrK hf05akothfHLjS+dc3IJ2nmpGRpB4rtw7hvhHxMw/wuCu0I+T8j69hAB5WrJ0UhCECxf RMt3xTOTWuVlOuPignDWsj0EBINdiInOto4yDYiZ/CqeuULQuwnS4TQ7ua9n3EYQ1Opt cF4tfnfdW0s1OqfNGbRi1bC6J2MgQcaHGhBWzpy10bkEgFRVncoZ+2BQibA0Id+qjfm/ kEFw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=Xn54XTvcNkal14NNHB7+Vzm9BZs6YXQQ3RAQ8lYr/oc=; b=ITbVyAh1GBEqgv3ga/IgypqAf/zhfuD1WjrY6iBQNNgdzrw6Y2Ypzzpd3sbRGOeaLz DxlzlI7Y8KqzXXwykhSPbfeP5mStpmEEgf4fTCpri08lDby6Ik4fP1E4JUmAQj3qgkAp jAOqyBFF4uZckgvsnUSqi/fTnk3U3QfHwaotqPu841lXRZtW6UbmXBeFz8ii5QGo9Smc M6aYpwpOoCeachPpgAxYf74r4PpN954Wj82csCwex46cBKV/M7Ah9j3+tpz+tkh2y335 TGlB5UauFRy6HFtLhf5TXa8Uwa615Ta/4b/JO0z+MG5Iy7vnSk8vN77VHzMHXTK1LdoN GqIQ== X-Gm-Message-State: APjAAAUau5mS9LRUGPztiNEMo3DaIJFtHs3rYWIICE6JekrIzaQN+esq nSlLYkiDfX/0bSyxeNDoTUqv56vZF8b257nJl3FidA== X-Google-Smtp-Source: APXvYqxnCMUzN7K5F96FwviGs9debEPUho46vDAcIfSuTnPxYu+XchM5mkJV2q7pXMOhaWj2Um8cNDKqRVhiHyGh8zE= X-Received: by 2002:ac8:41c3:: with SMTP id o3mr35156316qtm.88.1575032508294; Fri, 29 Nov 2019 05:01:48 -0800 (PST) MIME-Version: 1.0 References: <20191119231912.12768-1-mike.leach@linaro.org> <20191119231912.12768-5-mike.leach@linaro.org> In-Reply-To: From: Mike Leach Date: Fri, 29 Nov 2019 13:01:37 +0000 Message-ID: Subject: Re: [PATCH v5 04/14] coresight: cti: Add sysfs trigger / channel programming API To: Suzuki Kuruppassery Poulose X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20191129_050155_316273_9EF9AD81 X-CRM114-Status: GOOD ( 13.48 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: devicetree@vger.kernel.org, Coresight ML , Mathieu Poirier , linux-arm-kernel , "open list:DOCUMENTATION" Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org Hi Suzuki, On Wed, 27 Nov 2019 at 18:40, Suzuki Kuruppassery Poulose wrote: > > On 19/11/2019 23:19, Mike Leach wrote: > > Adds a user API to allow programming of CTI by trigger ID and > > channel number. This will take the channel and trigger ID supplied > > by the user and program the appropriate register values. > > > > Signed-off-by: Mike Leach > > --- > > > + > > +static ssize_t chan_xtrigs_view_show(struct device *dev, > > + struct device_attribute *attr, > > + char *buf) > > +{ > > + struct cti_drvdata *drvdata = dev_get_drvdata(dev->parent); > > + struct cti_config *cfg = &drvdata->config; > > + int used = 0, reg_idx; > > + int buf_sz = PAGE_SIZE; > > + u32 chan_mask = BIT(cfg->xtrig_rchan_sel); > > + > > + used += scnprintf(buf, buf_sz, "[%d] IN: ", cfg->xtrig_rchan_sel); > > + for (reg_idx = 0; > > + reg_idx < drvdata->config.nr_trig_max; > > + reg_idx++) { > > + if (chan_mask & cfg->ctiinen[reg_idx]) { > > + used += scnprintf(buf + used, buf_sz - used, "%d ", > > + reg_idx); > > + } > > + } > > As a security measure, we must make sure that we have space left in the > buffer. We could end up passing "negative" numbers for the size > argument, in the worst case. > The return value from scnprintf() is always the _actual_ number of characters added to the buffer, not as per snprintf() which returns the number that could have been printed if there were sufficient space. Thus used can never exceed the buffer size. Regards Mike > > + > > + used += scnprintf(buf + used, buf_sz - used, "OUT: "); > > + for (reg_idx = 0; > > + reg_idx < drvdata->config.nr_trig_max; > > + reg_idx++) { > > + if (chan_mask & cfg->ctiouten[reg_idx]) { > > + used += scnprintf(buf + used, buf_sz - used, "%d ", > > + reg_idx); > > + } > > + } > > + used += scnprintf(buf + used, buf_sz - used, "\n"); > > + return used; > > +} > > +static DEVICE_ATTR_RW(chan_xtrigs_view); > > > The rest looks fine to me. > > Suzuki -- Mike Leach Principal Engineer, ARM Ltd. Manchester Design Centre. UK _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel