Received: by 2002:ac0:a581:0:0:0:0:0 with SMTP id m1-v6csp121298imm; Tue, 19 Jun 2018 17:21:03 -0700 (PDT) X-Google-Smtp-Source: ADUXVKIFWnTbY3m/F3hxMaVSZNQbCpHfif24IZDaHMDxDsrBOUayxR6CyZrIoHyYaUGU5HiQvlNh X-Received: by 2002:a65:6303:: with SMTP id g3-v6mr17036484pgv.424.1529454063209; Tue, 19 Jun 2018 17:21:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1529454063; cv=none; d=google.com; s=arc-20160816; b=R9WBhMQPlGv6XsEG1YUe/rmj1DN8i2hHLjW7LSthM7IqvOewmYhNMD+bRfQgWafsAY Dhio3mJlz2/Y8q49X1bME+J0qSC3ayDaMifgKaNII+xdyxZ+gWzDMIyAiaTwtrNKv95p h3qTrztNE1PF/MWypn81P2JW2tvP41pTEMdh2aye9UGQs5W2qFytlMS2idDClvT1Yfgz RsmRFfM/QKuGS5ArUZsbXnyorW2fiePDWOv758C6bxl5jrAnD9F7t73kuJ4EK5zc9zVA DDnQCbS+YR/ACK2QhYHezdYK+DdIf2AwT/QNzr0ZOEMJDi8vDhojJKZM2AYd2b4G7yhH nOdg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-disposition :content-transfer-encoding:mime-version:robot-unsubscribe:robot-id :git-commit-id:subject:to:references:in-reply-to:reply-to:cc :message-id:from:date:arc-authentication-results; bh=rbgdj0cSOVGl1cSLYdU0UUC/iYA1ydj7sJ7En88hh9w=; b=JPiIiDXz9qXFs89hutL/noF2BwcKdsfp/+OFHJK5gCE9t3rHRY9NTHWJgUxoB9PPie 1KP7AJqaPXf94KSG3bE//7xYnuJvOCYTKYe40lao/4FopTbVE00atJ/8bsyMF/cGHPzv r7P+rNBLQffmjPsDnAzQoMr+DS6IIK35p1WnIHiiKdregpkx0vzfzRPgSHoJTwMOzx8S L+5ElLuqCgg4u3nLr2u4kPrIDkxvL2kynkDjILsaXNwgCF/lGxNRt1jCedbwBw+zvEB2 P9hLyPzkpqkoLu7rwTjRSe+qnM3XKWIZ2kgfKiMoopU53OWv65Z5FjqjLkHncYw0Xk+x 6Auw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id e3-v6si891033pld.229.2018.06.19.17.20.49; Tue, 19 Jun 2018 17:21:03 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754172AbeFTASe (ORCPT + 99 others); Tue, 19 Jun 2018 20:18:34 -0400 Received: from terminus.zytor.com ([198.137.202.136]:55655 "EHLO terminus.zytor.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750929AbeFTAS3 (ORCPT ); Tue, 19 Jun 2018 20:18:29 -0400 Received: from terminus.zytor.com (localhost [127.0.0.1]) by terminus.zytor.com (8.15.2/8.15.2) with ESMTPS id w5K0IPN53296970 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Tue, 19 Jun 2018 17:18:25 -0700 Received: (from tipbot@localhost) by terminus.zytor.com (8.15.2/8.15.2/Submit) id w5K0IPp63296967; Tue, 19 Jun 2018 17:18:25 -0700 Date: Tue, 19 Jun 2018 17:18:25 -0700 X-Authentication-Warning: terminus.zytor.com: tipbot set sender to tipbot@zytor.com using -f From: tip-bot for Reinette Chatre Message-ID: Cc: reinette.chatre@intel.com, hpa@zytor.com, mingo@kernel.org, linux-kernel@vger.kernel.org, tglx@linutronix.de Reply-To: mingo@kernel.org, reinette.chatre@intel.com, hpa@zytor.com, tglx@linutronix.de, linux-kernel@vger.kernel.org In-Reply-To: References: To: linux-tip-commits@vger.kernel.org Subject: [tip:x86/cache] x86/intel_rdt: Support flexible data to parsing callbacks Git-Commit-ID: bfd202352970db873e5af98b1e2cbe5336648f88 X-Mailer: tip-git-log-daemon Robot-ID: Robot-Unsubscribe: Contact to get blacklisted from these emails MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UTF-8 Content-Disposition: inline X-Spam-Status: No, score=-2.9 required=5.0 tests=ALL_TRUSTED,BAYES_00, T_DATE_IN_FUTURE_96_Q autolearn=ham autolearn_force=no version=3.4.1 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on terminus.zytor.com Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Commit-ID: bfd202352970db873e5af98b1e2cbe5336648f88 Gitweb: https://git.kernel.org/tip/bfd202352970db873e5af98b1e2cbe5336648f88 Author: Reinette Chatre AuthorDate: Tue, 29 May 2018 05:57:36 -0700 Committer: Thomas Gleixner CommitDate: Wed, 20 Jun 2018 00:56:30 +0200 x86/intel_rdt: Support flexible data to parsing callbacks Each resource is associated with a configurable callback that should be used to parse the information provided for the particular resource from user space. In addition to the resource and domain pointers this callback is provided with just the character buffer being parsed. In support of flexible parsing the callback is modified to support a void pointer as argument. This enables resources that need more data than just the user provided data to pass its required data to the callback without affecting the signatures for the callbacks of all the other resources. Signed-off-by: Reinette Chatre Signed-off-by: Thomas Gleixner Cc: fenghua.yu@intel.com Cc: tony.luck@intel.com Cc: vikas.shivappa@linux.intel.com Cc: gavin.hindman@intel.com Cc: jithu.joseph@intel.com Cc: dave.hansen@intel.com Cc: hpa@zytor.com Link: https://lkml.kernel.org/r/acc9cc5919df395755fc945dee4fcf1ed1484867.1527593970.git.reinette.chatre@intel.com --- arch/x86/kernel/cpu/intel_rdt.h | 6 +++--- arch/x86/kernel/cpu/intel_rdt_ctrlmondata.c | 6 ++++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/arch/x86/kernel/cpu/intel_rdt.h b/arch/x86/kernel/cpu/intel_rdt.h index 399bb94e865b..c0c0ef817f11 100644 --- a/arch/x86/kernel/cpu/intel_rdt.h +++ b/arch/x86/kernel/cpu/intel_rdt.h @@ -371,7 +371,7 @@ struct rdt_resource { struct rdt_cache cache; struct rdt_membw membw; const char *format_str; - int (*parse_ctrlval) (char *buf, struct rdt_resource *r, + int (*parse_ctrlval) (void *data, struct rdt_resource *r, struct rdt_domain *d); struct list_head evt_list; int num_rmid; @@ -379,8 +379,8 @@ struct rdt_resource { unsigned long fflags; }; -int parse_cbm(char *buf, struct rdt_resource *r, struct rdt_domain *d); -int parse_bw(char *buf, struct rdt_resource *r, struct rdt_domain *d); +int parse_cbm(void *_data, struct rdt_resource *r, struct rdt_domain *d); +int parse_bw(void *_buf, struct rdt_resource *r, struct rdt_domain *d); extern struct mutex rdtgroup_mutex; diff --git a/arch/x86/kernel/cpu/intel_rdt_ctrlmondata.c b/arch/x86/kernel/cpu/intel_rdt_ctrlmondata.c index b3da5b981dd8..ab4bb8731825 100644 --- a/arch/x86/kernel/cpu/intel_rdt_ctrlmondata.c +++ b/arch/x86/kernel/cpu/intel_rdt_ctrlmondata.c @@ -64,9 +64,10 @@ static bool bw_validate(char *buf, unsigned long *data, struct rdt_resource *r) return true; } -int parse_bw(char *buf, struct rdt_resource *r, struct rdt_domain *d) +int parse_bw(void *_buf, struct rdt_resource *r, struct rdt_domain *d) { unsigned long data; + char *buf = _buf; if (d->have_new_ctrl) { rdt_last_cmd_printf("duplicate domain %d\n", d->id); @@ -126,8 +127,9 @@ static bool cbm_validate(char *buf, u32 *data, struct rdt_resource *r) * Read one cache bit mask (hex). Check that it is valid for the current * resource type. */ -int parse_cbm(char *buf, struct rdt_resource *r, struct rdt_domain *d) +int parse_cbm(void *_data, struct rdt_resource *r, struct rdt_domain *d) { + char *buf = _data; u32 cbm_val; if (d->have_new_ctrl) {