Received: by 2002:ac0:a581:0:0:0:0:0 with SMTP id m1-v6csp1900257imm; Sat, 23 Jun 2018 05:14:05 -0700 (PDT) X-Google-Smtp-Source: ADUXVKJj1yGPifR5/h8t+riTKSCxll/QPPZOlNn+usLThDSmJ0RW5Wn04CCGaLWYucp2yDiNz9M8 X-Received: by 2002:a17:902:a9:: with SMTP id a38-v6mr5454539pla.102.1529756045268; Sat, 23 Jun 2018 05:14:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1529756045; cv=none; d=google.com; s=arc-20160816; b=EHsBWTNl7phimU4Vbw/WbVwyrYkw1Z2yXFG5hYPptJNgReA4Z3nCR+w8rY//x7B9AU rzwJJmmLRbAvE4IB2l1OVL7R/CbzW0RYKDRZnXzPB9suMsVBPGuq+Nd7T1bBUenHpyw7 WtLoAcryjIAJOwjgY553XDldWXwTan5m4JK1mR+mWvodl6dlR5aFinQynIAuxlOPd5PE ujH+afqCS8osbcT3PPj5sxwba/NcKDJWhEmHJDOOYdUvJ/J9HsrThgswZ4GxLEqfQivh yavFKitU85PrhtZsxpKYeamVl+KKdMvl8Tk5qjD/wvcEAPg4o+nG8+UjuBltGNCyoPWQ 0PCA== 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=Ov0nf94MdDzf2t1MzADltUjIntjMd3w5asd+17Bq5pc=; b=ArAPeIW/YlOHV0nfZx5Q6H3NVTDUZ/YGIcPsJ2KmBC7QeJEqXxHYM9/0RcAC6fHlIj 6elmesWdwStFvCVD2J43U82xI/GSW576XSpnSjYjJ7uPjMzx0MX89cMlCqZd36GY37fL p0M9G8wbloytVLOEpd4ltsMSOMFd3uteHbD2LwVg73lM0FwyVR053rgViaLd8sfEfnkf aynViWlHpACiO91Y/OHxZdBsa81CSeAw97E1lwWD1tM/DLPwzozUgYNnowDkfipKfe6L fh0xcHUWYWVh/m9TeQTv3fSarkV1JtiA1rqVhmcuA/Pzit1K08ogEjz7/bp+Mh6ouEgo nV6g== 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 g66-v6si4744422pgc.350.2018.06.23.05.13.50; Sat, 23 Jun 2018 05:14:05 -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 S1751927AbeFWMNG (ORCPT + 99 others); Sat, 23 Jun 2018 08:13:06 -0400 Received: from terminus.zytor.com ([198.137.202.136]:38857 "EHLO terminus.zytor.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751442AbeFWMNF (ORCPT ); Sat, 23 Jun 2018 08:13:05 -0400 Received: from terminus.zytor.com (localhost [127.0.0.1]) by terminus.zytor.com (8.15.2/8.15.2) with ESMTPS id w5NCD0d6463953 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Sat, 23 Jun 2018 05:13:00 -0700 Received: (from tipbot@localhost) by terminus.zytor.com (8.15.2/8.15.2/Submit) id w5NCD06b463950; Sat, 23 Jun 2018 05:13:00 -0700 Date: Sat, 23 Jun 2018 05:13:00 -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, mingo@kernel.org, tglx@linutronix.de, linux-kernel@vger.kernel.org, hpa@zytor.com Reply-To: hpa@zytor.com, linux-kernel@vger.kernel.org, tglx@linutronix.de, mingo@kernel.org, reinette.chatre@intel.com In-Reply-To: <34baacfced4d787d994ec7015e249e6c7e619053.1529706536.git.reinette.chatre@intel.com> References: <34baacfced4d787d994ec7015e249e6c7e619053.1529706536.git.reinette.chatre@intel.com> To: linux-tip-commits@vger.kernel.org Subject: [tip:x86/cache] x86/intel_rdt: Support flexible data to parsing callbacks Git-Commit-ID: 7604df6e16ae0b4dba6553ae74abcf7280a512fb 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, 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: 7604df6e16ae0b4dba6553ae74abcf7280a512fb Gitweb: https://git.kernel.org/tip/7604df6e16ae0b4dba6553ae74abcf7280a512fb Author: Reinette Chatre AuthorDate: Fri, 22 Jun 2018 15:42:03 -0700 Committer: Thomas Gleixner CommitDate: Sat, 23 Jun 2018 13:03:43 +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/34baacfced4d787d994ec7015e249e6c7e619053.1529706536.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 c9033fd774d5..b2b2864150aa 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) {