Received: by 10.192.165.148 with SMTP id m20csp1032799imm; Wed, 25 Apr 2018 11:27:26 -0700 (PDT) X-Google-Smtp-Source: AB8JxZrodVKtbaUHg8igNWu/XvJ7rBd2VsWYMP43MXo9hV8O+/pp5YdBYc4EQZJZIXxQAnQLwVZk X-Received: by 10.98.127.145 with SMTP id a139mr8730071pfd.25.1524680846084; Wed, 25 Apr 2018 11:27:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1524680846; cv=none; d=google.com; s=arc-20160816; b=b8/MmeXdbov4QD6Rqcgsy+YzfOXzAcEqTFbXfr1VZdBzWN7hvFgMiGO9VogQM+XB6+ 8oL8O561zT16OMNlDoKuvVr6BYPu5x3hNmSEqUv60oEWkKZ5VOq2tbwqYbUlcLW5brxu UG6OV1Lnh4zpB5NxWHG5xO9iIjJ7Jh1Blcd91F2BInwrFf9Qoz9u/PW/ocS+mmvlElgb 0IEmZduWUsUTabhXNIKb0hbzaJJHFXZxHHEw9Gc27IxtkSoSO5R4RNfKD3JomwPlH/YP eLHc+tYJ0i9oowBxhxvPTuv6u1eDM8//Ms01DQTqsUvx/0Fj6msS/cB+UCWURyzhCsIm oY6w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:references :in-reply-to:message-id:date:subject:cc:to:from :arc-authentication-results; bh=ngrvj/SiaL+0DixVmMtXJhdnQxhD6XZwTZSj6jtKMkA=; b=T4QdusmgODWhzyp2cfXaO3/ZjjYdhYSnrgSS5b4ctfdIFJP89+FI6gfhXbO7BC51zh ZEW2MWUI0nItskRU8JjknrqPU+KVz9RpdIyofbwTdTtUHgr2M+DXK1dknzpdh8npmIoG IaWMhPGs19maipMv6RuGuMgxmosX7+TE/kgv+2Hvjxbl/NJvQptjXQ6a73YsoC2BTTdg jD9BfTOEpBvXoMV3xAnjQ42SyzMURfuqhRSlX9+kMi5iXCnFGwGLsMF7nO6TY83Jij0t voGL96aFD4qG1QVDlLND8NL11A9OE/sExOCoP1ZOqLAgLFpEtdP06qrOrkVMPa61L/YJ EuWQ== 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 l1si3900357pgf.398.2018.04.25.11.27.11; Wed, 25 Apr 2018 11:27:26 -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 S1756498AbeDYS0F (ORCPT + 99 others); Wed, 25 Apr 2018 14:26:05 -0400 Received: from mga02.intel.com ([134.134.136.20]:41709 "EHLO mga02.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755762AbeDYSMj (ORCPT ); Wed, 25 Apr 2018 14:12:39 -0400 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 25 Apr 2018 11:12:36 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.49,327,1520924400"; d="scan'208";a="35243661" Received: from rchatre-s.jf.intel.com ([10.54.70.76]) by fmsmga008.fm.intel.com with ESMTP; 25 Apr 2018 11:12:35 -0700 From: Reinette Chatre To: tglx@linutronix.de, fenghua.yu@intel.com, tony.luck@intel.com, vikas.shivappa@linux.intel.com Cc: gavin.hindman@intel.com, jithu.joseph@intel.com, dave.hansen@intel.com, mingo@redhat.com, hpa@zytor.com, x86@kernel.org, linux-kernel@vger.kernel.org, Reinette Chatre Subject: [PATCH V3 11/39] x86/intel_rdt: Support flexible data to parsing callbacks Date: Wed, 25 Apr 2018 03:09:47 -0700 Message-Id: <76e98aac194f0b09669071edd86012afcf801050.1524649902.git.reinette.chatre@intel.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: References: In-Reply-To: References: Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 --- 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 3fb6645de840..3eb2616c4254 100644 --- a/arch/x86/kernel/cpu/intel_rdt.h +++ b/arch/x86/kernel/cpu/intel_rdt.h @@ -356,7 +356,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; @@ -364,8 +364,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 3bd45e6cc9ae..a55bc0b0e0ac 100644 --- a/arch/x86/kernel/cpu/intel_rdt_ctrlmondata.c +++ b/arch/x86/kernel/cpu/intel_rdt_ctrlmondata.c @@ -63,9 +63,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); @@ -125,8 +126,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) { -- 2.13.6