Received: by 2002:a05:6a10:16a7:0:0:0:0 with SMTP id gp39csp3922287pxb; Tue, 10 Nov 2020 03:42:07 -0800 (PST) X-Google-Smtp-Source: ABdhPJzmbSoSIX0lsdVTPbaF8/Fq3IP37xFuqQA7LQdpr+CDAjef51FTTrkkAGmP+KuaTGP4uZYl X-Received: by 2002:a05:6402:143:: with SMTP id s3mr19731046edu.267.1605008527044; Tue, 10 Nov 2020 03:42:07 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1605008527; cv=none; d=google.com; s=arc-20160816; b=PGO5XzCC9Iyp43FTtEaxWMQuZg6ngi+oe2aPcLDySvRb6Irvei+NtVzLKxOJYdGaKX +vuUafSntEX6730Wi+A9uBt4l1P3kUSrYgzhCDHkscFc8FOIL9IO7WngBw7jx2AZ4T+2 U1D+CvcqNhgghcX/MmePRsan+MgiBctx0EvZYH/pzxA9QPnpnvSL4ChXcA23aOTKObcd 3pMOeWLksmiXrxsdIRtfM8U55B6xpmMUfX5dmHQWhutw8KG9WUUBD6bHjUQUmHOxolhZ SGnjD9mRYg5Kz/ZPMW2UUcUYFRdm8nTOkjZOe2dZjsRWMm1brhvHALNPEFtVjmOxtFgR QW5A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=cxwsKAS7f0ShqVjeBwSt/htKkV68dkqRsu7im58l3Po=; b=I3JU2Vq+kurV3tn2h04A0BfLSmTe97GfAN/qhxEsyZFA6zcfMpCogWatHFps3wj8l0 Mgr0+N0rKWpVuAeE87SRzfLG9mcVz/uvqitrNEfT0vFGF4K2WeU95LqFmoDJrZGbH/yO w5bQL3OdHpVvyUnpNecpeSR/KA+Yf0WS16R5uta4S9/ZsWqEykJl/MWS/lj8JGL+wV1k MYcznfkBUobC+cwteT1B4c9sC7jxuRb5VvvocJk3NG8W2xG7TvCNjeGGurlNVQJ9+FPT earR7l05r9bbbxsYmvHv/jaq3T8ODf3rW5tbLILzpLx+P96mOroW+oDO6iod7MqH2imo ve9g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@nuviainc-com.20150623.gappssmtp.com header.s=20150623 header.b="d/67jq+O"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id w15si8655305ejk.62.2020.11.10.03.41.44; Tue, 10 Nov 2020 03:42:07 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@nuviainc-com.20150623.gappssmtp.com header.s=20150623 header.b="d/67jq+O"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731555AbgKJLjk (ORCPT + 99 others); Tue, 10 Nov 2020 06:39:40 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34020 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731707AbgKJLjZ (ORCPT ); Tue, 10 Nov 2020 06:39:25 -0500 Received: from mail-wr1-x443.google.com (mail-wr1-x443.google.com [IPv6:2a00:1450:4864:20::443]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BF9E3C0613CF for ; Tue, 10 Nov 2020 03:39:24 -0800 (PST) Received: by mail-wr1-x443.google.com with SMTP id r17so8395452wrw.1 for ; Tue, 10 Nov 2020 03:39:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nuviainc-com.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=cxwsKAS7f0ShqVjeBwSt/htKkV68dkqRsu7im58l3Po=; b=d/67jq+OobHpQoRDIk+13Pq/a3N2zGHrz03c8CBQNHfxLX/FS4lfxl1Lf31Oa0IcmH 3orlTYtfeu2ULBDLT8rMcNmZlSVbeLwAtPUfv8nMEJXAd+pINIKT8Hw4JmyfUAA8bUqn Kjg47txxhhtYrFAu4+eM5vM9yH/QjyHD/SkW96kNfQ3IlYjlz79a8cDbXfX7gCHX1PDJ gD3ZM+j+iea7A4QWpDxR2wbURPMMt5gSqCI0WkBXEH8yE9mb59zzXey8oMrnT+8RYMfT Cru3fLOPat5ZWyjTOsSOz8l25FdMegi5wnrGYKgPYKc9npqbb3vZbqJ/tFep7RLmxpNk gtWQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=cxwsKAS7f0ShqVjeBwSt/htKkV68dkqRsu7im58l3Po=; b=OELnJYpX1cljBqimX6E8+n5/K3fWPfphkJeX/Gj+AAFa65sMDtVzusqFh5UP1UkpyO vMTL77wW5POPLEhFOs5fi9bcf3je6aZ7z5IaRSXhHIcEUexPlSzrLNgyU/MIZooFDcvQ DCV7wWg/OWk4/3raS+cDkCfHEXxOz5RN4+VpUlni/AdPnBwPJf0UwFCbqOQz4PqeFh1i VkCJfpBQpX1bwOHodL6rIAlhbopdovFRNYJaoiz48k/NDMajg63xmKa5SY5MEGPpv61u MGSC/GhmvXM2SpOVAgeMnHN5++thLqawlbvh57aarLEp3Yg7fkecSv0QAMtRC7MVFWBM Nlxw== X-Gm-Message-State: AOAM53015Gm1n4EieEdz3tlwo3zUYnW03tXbgWrNirMko05CmM0MnyZh 4Vr8jovRDKNwfvxQ4voqrXi92w== X-Received: by 2002:adf:82cc:: with SMTP id 70mr22865837wrc.74.1605008363482; Tue, 10 Nov 2020 03:39:23 -0800 (PST) Received: from localhost ([82.44.17.50]) by smtp.gmail.com with ESMTPSA id b1sm2755521wmd.43.2020.11.10.03.39.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Nov 2020 03:39:22 -0800 (PST) Date: Tue, 10 Nov 2020 11:39:22 +0000 From: Jamie Iles To: James Morse Cc: x86@kernel.org, linux-kernel@vger.kernel.org, Fenghua Yu , Reinette Chatre , Thomas Gleixner , Ingo Molnar , Borislav Petkov , shameerali.kolothum.thodi@huawei.com, Jamie Iles , D Scott Phillips OS Subject: Re: [PATCH 10/24] x86/resctrl: Move the schema names into struct resctrl_schema Message-ID: <20201110113922.GA94467@poplar> References: <20201030161120.227225-1-james.morse@arm.com> <20201030161120.227225-11-james.morse@arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20201030161120.227225-11-james.morse@arm.com> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi James, On Fri, Oct 30, 2020 at 04:11:06PM +0000, James Morse wrote: > Move the names used for the schemata file out of the resource and > into struct resctrl_schema. This allows one resource to have two > different names, based on the other schema properties. > > This patch copies the names, eventually resctrl will generate them. > > Remove the arch code's max_name_width, this is now resctrl's > problem. > > Signed-off-by: James Morse > --- > arch/x86/kernel/cpu/resctrl/core.c | 9 ++------- > arch/x86/kernel/cpu/resctrl/ctrlmondata.c | 10 +++------- > arch/x86/kernel/cpu/resctrl/internal.h | 2 +- > arch/x86/kernel/cpu/resctrl/rdtgroup.c | 17 ++++++++++++----- > include/linux/resctrl.h | 7 +++++++ > 5 files changed, 25 insertions(+), 20 deletions(-) ... > diff --git a/arch/x86/kernel/cpu/resctrl/internal.h b/arch/x86/kernel/cpu/resctrl/internal.h > index 27671a654f8b..5294ae0c3ed9 100644 > --- a/arch/x86/kernel/cpu/resctrl/internal.h > +++ b/arch/x86/kernel/cpu/resctrl/internal.h > @@ -248,7 +248,7 @@ struct rdtgroup { > /* List of all resource groups */ > extern struct list_head rdt_all_groups; > > -extern int max_name_width, max_data_width; > +extern int max_data_width; > > int __init rdtgroup_init(void); > void __exit rdtgroup_exit(void); > diff --git a/arch/x86/kernel/cpu/resctrl/rdtgroup.c b/arch/x86/kernel/cpu/resctrl/rdtgroup.c > index 311a3890bc53..48f4d6783647 100644 > --- a/arch/x86/kernel/cpu/resctrl/rdtgroup.c > +++ b/arch/x86/kernel/cpu/resctrl/rdtgroup.c > @@ -1440,8 +1440,8 @@ static int rdtgroup_size_show(struct kernfs_open_file *of, > rdt_last_cmd_puts("Cache domain offline\n"); > ret = -ENODEV; > } else { > - seq_printf(s, "%*s:", max_name_width, > - rdtgrp->plr->s->res->name); > + seq_printf(s, "%*s:", RESCTRL_NAME_LEN, > + rdtgrp->plr->s->name); > size = rdtgroup_cbm_to_size(rdtgrp->plr->s->res, > rdtgrp->plr->d, > rdtgrp->plr->cbm); > @@ -1454,7 +1454,7 @@ static int rdtgroup_size_show(struct kernfs_open_file *of, > r = schema->res; > > sep = false; > - seq_printf(s, "%*s:", max_name_width, r->name); > + seq_printf(s, "%*s:", RESCTRL_NAME_LEN, schema->name); > list_for_each_entry(d, &r->domains, list) { > hw_dom = resctrl_to_arch_dom(d); > if (sep) > @@ -1827,7 +1827,7 @@ static int rdtgroup_create_info_dir(struct kernfs_node *parent_kn) > list_for_each_entry(s, &resctrl_all_schema, list) { > r = s->res; > fflags = r->fflags | RF_CTRL_INFO; > - ret = rdtgroup_mkdir_info_resdir(s, r->name, fflags); > + ret = rdtgroup_mkdir_info_resdir(s, s->name, fflags); > if (ret) > goto out_destroy; > } > @@ -2140,6 +2140,7 @@ static int create_schemata_list(void) > { > struct resctrl_schema *s; > struct rdt_resource *r; > + int ret; > > for_each_alloc_enabled_rdt_resource(r) { > s = kzalloc(sizeof(*s), GFP_KERNEL); > @@ -2150,6 +2151,12 @@ static int create_schemata_list(void) > s->num_closid = resctrl_arch_get_num_closid(r); > s->conf_type = resctrl_to_arch_res(r)->conf_type; > > + ret = snprintf(s->name, sizeof(s->name), r->name); > + if (ret >= sizeof(s->name)) { > + kfree(s); > + return -EINVAL; > + } > + How about: + ret = strscpy(s->name, r->name, sizeof(s->name)); + if (ret < 0)) { + kfree(s); + return -EINVAL; + } So that there isn't a non-constant format specifier that'll trip Coverity+friends up later? Thanks, Jamie