Received: by 2002:a25:868d:0:0:0:0:0 with SMTP id z13csp1568567ybk; Thu, 14 May 2020 12:10:23 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzMzW3xIYoV7dj+SHID2oFd1pZ5yZIMQA6QkT96zYRvmvmGwlIv9dL5e+HM/igt+SKguGQ9 X-Received: by 2002:a17:906:8246:: with SMTP id f6mr5421160ejx.350.1589483423128; Thu, 14 May 2020 12:10:23 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1589483423; cv=pass; d=google.com; s=arc-20160816; b=KZWNlo5KHRxkwzihGIv98EWA83RqWVU9mHPnEvXRYiRu64MXaFZb4kOjpvYDh7MyhC ZuWsQU7V25WjwKkf+CuYsaAy66gYUbHgi9LmdVWp3/WTVlL6CZ8z+bpa1kAlSINOVaT/ nkiR1xIUVxv37j/o/No7Mf7sn89Sd1uPULhwKfLex4G9mCrRz/KQazTl06EJiW26e7BQ RW7KPTLwToxlOhsS4aLOFTeINJXGeQdLmkQPkIVLKAXXdZd0a2NxF6HcVo5azja+prpv ilaZNma+QkCfNFdHH438O5Fweid5ymEyUmB3HovEna9hDJYQ/23dcib7rRDPZaoHJScn Amdw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :content-language:in-reply-to:user-agent:date:message-id:from :references:cc:to:subject:dkim-signature; bh=5QjDFZFHNb0TxSLOGfqkEGjnNHTAmh662GGC/C8cC6s=; b=UsUKzUNz8j21oAMZrzrayWmqZ9fr9kmhGeE/qCsJcZqn+pCkQuTy30YniIZLmrJ8X/ lM78VXDWVYUyagMmnhO6IcVRYDlOLHKgf2Ug3PwgbhniiOtDWklE9NM9UHvDiaVHKjEh vf0Q3Ed0onvMfqO+VR5IpJyXWjqzDNCx5V3RZwTXBQprPk6BbQZhL9zdsQuf8u7t1lU9 g9smLUNMmh4ZABGCABOxvX9OYB6YVhimaOjaDkbuoYdSh8karsK5YSds6p7UxW0LR57B 5xSXEUroRrmjsRZ9rjA3utQ4hf8B/4T9bq5Cw2+91KL2pXU4mkG7bQK56i3f80v4HPJV nU1Q== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amdcloud.onmicrosoft.com header.s=selector2-amdcloud-onmicrosoft-com header.b=EtPto8qF; arc=pass (i=1 spf=pass spfdomain=amd.com dkim=pass dkdomain=amd.com dmarc=pass fromdomain=amd.com); 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 z37si2119590ede.339.2020.05.14.12.09.58; Thu, 14 May 2020 12:10:23 -0700 (PDT) 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=@amdcloud.onmicrosoft.com header.s=selector2-amdcloud-onmicrosoft-com header.b=EtPto8qF; arc=pass (i=1 spf=pass spfdomain=amd.com dkim=pass dkdomain=amd.com dmarc=pass fromdomain=amd.com); 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 S1730140AbgENTF2 (ORCPT + 99 others); Thu, 14 May 2020 15:05:28 -0400 Received: from mail-bn7nam10on2071.outbound.protection.outlook.com ([40.107.92.71]:29132 "EHLO NAM10-BN7-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1728953AbgENTFZ (ORCPT ); Thu, 14 May 2020 15:05:25 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Z7vnrZXlXYnHcUwF9PSSa0Yr7Mn0blk/l4UfuzOQTo0gX+pRzQADFCSBUhomtyyPcWfhDWqriMM8KWOiA1LDrGW1JMi2gsLv0PyUGqIHtQelRCJ3mLCtX1UzpR25XVOs7bhwiUNA/xrJBGglpiOQEvZRTP7wbLgo+U+vXphRJWlZMVbL3I37wByUZWYQrMbnbk8sliYibeZwcX0d/4va7hYeQSFyMzxsGtZndpSGfEUFPk528oWiklbLBAt/0JMuSYkSrqgz/68OiwqZUy0pbKPG8eKIm1fX1QbYcIzD83+W8XFcdRDhMMWFb+xnte+eYGTot4R4kR5paSZ8/kw8gg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=5QjDFZFHNb0TxSLOGfqkEGjnNHTAmh662GGC/C8cC6s=; b=YCbYLc+a96ulqUCp/kOsndI5APLLs3ow048mlBXLhb1YNWAupp2LIdH8RWu5a+WO4IfQXE3QpGsbHRY/TmG40gTHWyvTfYKJrFts+ih1GOLk1SUmV+Ejg9pe73GY6d4Pm3VD2qLL5eDlGH9D8/SgCGKOwL1HuOVr1qZKCOYy7OxoRq6gsBD2I4n7VbHPhmw7kdXD9qG++VO+FLV7K5LdJVjBAG+/0NLmuJNvnnfAFam6SMhghxZ3NeRF2BvGlFdp1CG0jZ4TeC3RqAlJOg1ehs6ZVAX8gpi+ZQrGu8JSjcNByQp9uPkfJIgxrpYQFplQU7XVpO3xRuQyjsBSb8Mdcg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector2-amdcloud-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=5QjDFZFHNb0TxSLOGfqkEGjnNHTAmh662GGC/C8cC6s=; b=EtPto8qFRonhT+FiltZJq9ANdJxz0fF90w2ieFsRS8h/O2dSJnrcElMKK2Fo5D0OJJrrifKv8jB2L66VmaIFbPknu7Y8EAkUG8ReZahTPkw5LX7qjkVtWCyqq+AD+F5eCIioKL6433OTbIDeN1QuhUTZmvRwLI4Zz/Q1GcWRhMI= Authentication-Results: linux.intel.com; dkim=none (message not signed) header.d=none;linux.intel.com; dmarc=none action=none header.from=amd.com; Received: from SN1PR12MB2560.namprd12.prod.outlook.com (2603:10b6:802:26::19) by SN1PR12MB2560.namprd12.prod.outlook.com (2603:10b6:802:26::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3000.24; Thu, 14 May 2020 19:05:20 +0000 Received: from SN1PR12MB2560.namprd12.prod.outlook.com ([fe80::c0f:2938:784f:ed8d]) by SN1PR12MB2560.namprd12.prod.outlook.com ([fe80::c0f:2938:784f:ed8d%7]) with mapi id 15.20.3000.022; Thu, 14 May 2020 19:05:20 +0000 Subject: RE: [PATCH V3 4/4] x86/resctrl: Use appropriate API for strings terminated by newline To: Reinette Chatre , "tglx@linutronix.de" , "fenghua.yu@intel.com" , "bp@alien8.de" , "tony.luck@intel.com" Cc: "kuo-lang.tseng@intel.com" , "ravi.v.shankar@intel.com" , "mingo@redhat.com" , "hpa@zytor.com" , "x86@kernel.org" , "linux-kernel@vger.kernel.org" , Andy Shevchenko References: From: Babu Moger Message-ID: <9c7a011c-2946-102c-5cdd-9dc5155533ec@amd.com> Date: Thu, 14 May 2020 14:05:17 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.7.0 In-Reply-To: Content-Type: text/plain; charset=windows-1252 Content-Language: en-US Content-Transfer-Encoding: 7bit X-ClientProxiedBy: SN6PR2101CA0006.namprd21.prod.outlook.com (2603:10b6:805:106::16) To SN1PR12MB2560.namprd12.prod.outlook.com (2603:10b6:802:26::19) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [10.236.30.87] (165.204.77.1) by SN6PR2101CA0006.namprd21.prod.outlook.com (2603:10b6:805:106::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3021.2 via Frontend Transport; Thu, 14 May 2020 19:05:19 +0000 X-Originating-IP: [165.204.77.1] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: c343a381-3856-4313-d88f-08d7f839bf6f X-MS-TrafficTypeDiagnostic: SN1PR12MB2560: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:6108; X-Forefront-PRVS: 040359335D X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 52Yz8VuW2wZQ8o+a7A76GUy8KKVBU0fjprOT8bf1n5LNksbEdIDvMI5oje4aJzdLiaxbu7r2wFa76nGXxd8lRbKdAbctSuYByyrBdnTJE37xIad93MR4FMU7XgpkX1zo6hrnHXhGb27RfkbXRY8K+Krg+MVFgsoLIjousrH2B3keOKiDxlFuMKJMjlf5yRT967eS5MWPFiRlGUbSL+DsKFTM9NEbw3ev6EIAT2jNRjbPu4toDFFc3plBu7M92RAKCK0GPmaL4uuDkg1L/6VI0g0XaiBnxqDmOyf7QPtSLplCGZDYJfdBbP8ZDcMA8ch1JNUWtD7URhIGyX+H7PhGtnc67Vk+hlWWzoDj6FRpirIFICT+Ky5y5KXclQOifwWwHZSi3C6zubjlgpjSXp2YA8tlI7B67SHOGZKY7CqueKAqwyz92YwIRXKDOcnkmLWPzf+dsURcVzkUpFTSNHABPxOPcRY4blzek6dmv+BdYfCL2YfIbfUqytsRrS/iDts3 X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN1PR12MB2560.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(4636009)(366004)(346002)(136003)(396003)(39860400002)(376002)(54906003)(6486002)(16526019)(26005)(186003)(7416002)(53546011)(16576012)(52116002)(956004)(2616005)(4326008)(36756003)(8936002)(110136005)(316002)(66946007)(31696002)(8676002)(66476007)(86362001)(5660300002)(66556008)(478600001)(31686004)(2906002)(44832011)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: 859SArr+cNdh6YxaFTE1fBfwLNvJ7BNDpnpXX3cZ76CGhrI+emwalkXGWUMa+5HKaxPR3yWaqdNtcc2hTPV+FR2tk/ClI8IYKBAhGR797CvHDsj/bWmS6I5t/d+08220xgMtjMnRSEHpLdLUIVTbcI8X2XD9hpb5dnZKJMqiEpqzAA+TYmL+QymmgsY6TA3WjiKVQaJjtynC3PlzIjwGwI44H/moRgcMrx2dLx91rxEjlFOYSspgfYLaE1KkiVMQ9frFaN4EzftlvE/ol5U1M6UsErkiOOmAb2BJr5rtWrL3vdUjfZQyKCHes/afSOLAT34n6ukvslW5To6yUcOi8eFxq7T+KiLS8e96QHScvrVq7goENLHvi4dWDMAv/3OzbRTPsAt0WsQXvo+eegG53Wh+9Pb4ZPH7JLtdNWX5EML3TYw23sVyhNVQwdtgKz6yOkk7exowzwvNMvCwJfTWWJT75XEfnxSF+1tjkfX/TPc= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: c343a381-3856-4313-d88f-08d7f839bf6f X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 May 2020 19:05:20.6695 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 1HWcxTBp9lKlFS6e8aCJ/ebOIHyfT8T+N5z2YUgShBuQbAck0IGsJvMIC5DbkzCE X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR12MB2560 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org > -----Original Message----- > From: Reinette Chatre > Sent: Wednesday, May 6, 2020 6:50 PM > To: tglx@linutronix.de; fenghua.yu@intel.com; bp@alien8.de; > tony.luck@intel.com > Cc: kuo-lang.tseng@intel.com; ravi.v.shankar@intel.com; mingo@redhat.com; > Moger, Babu ; hpa@zytor.com; x86@kernel.org; > linux-kernel@vger.kernel.org; Reinette Chatre ; > Andy Shevchenko > Subject: [PATCH V3 4/4] x86/resctrl: Use appropriate API for strings terminated > by newline > > The user input to files in the resctrl filesystem are expected to be > terminated with a newline. Testing the user input includes a test for > the presence of a newline and then replacing the newline with NUL > byte followed by comparison using strcmp(). > > sysfs_streq() exists to test if strings are equal, treating both NUL and > newline-then-NUL as equivalent string terminations. Even more, > sysfs_match_string() exists to match a given string in an array using > sysfs_streq(). > > Replace existing strcmp() comparisons of strings that are terminated > with a newline with more appropriate sysfs_streq() via the > sysfs_match_string() API that can perform the match across the different > mode strings that are already maintained in an array. > > Suggested-by: Andy Shevchenko > Signed-off-by: Reinette Chatre > --- > arch/x86/kernel/cpu/resctrl/rdtgroup.c | 32 ++++++++++++++------------ > 1 file changed, 17 insertions(+), 15 deletions(-) > > diff --git a/arch/x86/kernel/cpu/resctrl/rdtgroup.c > b/arch/x86/kernel/cpu/resctrl/rdtgroup.c > index c60a3b307f7d..e70694892c02 100644 > --- a/arch/x86/kernel/cpu/resctrl/rdtgroup.c > +++ b/arch/x86/kernel/cpu/resctrl/rdtgroup.c > @@ -1408,12 +1408,11 @@ static ssize_t rdtgroup_mode_write(struct > kernfs_open_file *of, > { > struct rdtgroup *rdtgrp; > enum rdtgrp_mode mode; > - int ret = 0; > + int user_m; > + int ret; This is bit confusing here. Mode and user_m should have been of same type. You can define user_m to user_mode to be very clear. You can completely remove "mode" and directly use rdtgrp->mode instead. It is left to you. > > - /* Valid input requires a trailing newline */ > - if (nbytes == 0 || buf[nbytes - 1] != '\n') > + if (nbytes == 0) > return -EINVAL; > - buf[nbytes - 1] = '\0'; > > rdtgrp = rdtgroup_kn_lock_live(of->kn); > if (!rdtgrp) { > @@ -1425,11 +1424,17 @@ static ssize_t rdtgroup_mode_write(struct > kernfs_open_file *of, > > mode = rdtgrp->mode; > > - if ((!strcmp(buf, "shareable") && mode == RDT_MODE_SHAREABLE) || > - (!strcmp(buf, "exclusive") && mode == RDT_MODE_EXCLUSIVE) || > - (!strcmp(buf, "pseudo-locksetup") && > - mode == RDT_MODE_PSEUDO_LOCKSETUP) || > - (!strcmp(buf, "pseudo-locked") && mode == > RDT_MODE_PSEUDO_LOCKED)) > + ret = sysfs_match_string(rdt_mode_str, buf); > + if (ret < 0) { > + rdt_last_cmd_puts("Unknown or unsupported mode\n"); > + goto out; > + } > + > + user_m = ret; > + ret = 0; > + > + /* Do nothing and return success if user asks for current mode */ > + if (user_m == mode) > goto out; > > if (mode == RDT_MODE_PSEUDO_LOCKED) { > @@ -1438,14 +1443,14 @@ static ssize_t rdtgroup_mode_write(struct > kernfs_open_file *of, > goto out; > } > > - if (!strcmp(buf, "shareable")) { > + if (user_m == RDT_MODE_SHAREABLE) { > if (rdtgrp->mode == RDT_MODE_PSEUDO_LOCKSETUP) { > ret = rdtgroup_locksetup_exit(rdtgrp); > if (ret) > goto out; > } > rdtgrp->mode = RDT_MODE_SHAREABLE; > - } else if (!strcmp(buf, "exclusive")) { > + } else if (user_m == RDT_MODE_EXCLUSIVE) { > if (!rdtgroup_mode_test_exclusive(rdtgrp)) { > ret = -EINVAL; > goto out; > @@ -1456,14 +1461,11 @@ static ssize_t rdtgroup_mode_write(struct > kernfs_open_file *of, > goto out; > } > rdtgrp->mode = RDT_MODE_EXCLUSIVE; > - } else if (!strcmp(buf, "pseudo-locksetup")) { > + } else if (user_m == RDT_MODE_PSEUDO_LOCKSETUP) { > ret = rdtgroup_locksetup_enter(rdtgrp); > if (ret) > goto out; > rdtgrp->mode = RDT_MODE_PSEUDO_LOCKSETUP; > - } else { > - rdt_last_cmd_puts("Unknown or unsupported mode\n"); > - ret = -EINVAL; > } > > out: > -- > 2.21.0