diff options
| -rw-r--r-- | arch/x86/kernel/cpu/intel_rdt.h | 16 | ||||
| -rw-r--r-- | arch/x86/kernel/cpu/intel_rdt_ctrlmondata.c | 21 | 
2 files changed, 20 insertions, 17 deletions
| diff --git a/arch/x86/kernel/cpu/intel_rdt.h b/arch/x86/kernel/cpu/intel_rdt.h index 4e588f36228f..78266c798280 100644 --- a/arch/x86/kernel/cpu/intel_rdt.h +++ b/arch/x86/kernel/cpu/intel_rdt.h @@ -382,6 +382,11 @@ static inline bool is_mbm_event(int e)  		e <= QOS_L3_MBM_LOCAL_EVENT_ID);  } +struct rdt_parse_data { +	struct rdtgroup		*rdtgrp; +	char			*buf; +}; +  /**   * struct rdt_resource - attributes of an RDT resource   * @rid:		The index of the resource @@ -423,16 +428,19 @@ struct rdt_resource {  	struct rdt_cache	cache;  	struct rdt_membw	membw;  	const char		*format_str; -	int (*parse_ctrlval)	(void *data, struct rdt_resource *r, -				 struct rdt_domain *d); +	int (*parse_ctrlval)(struct rdt_parse_data *data, +			     struct rdt_resource *r, +			     struct rdt_domain *d);  	struct list_head	evt_list;  	int			num_rmid;  	unsigned int		mon_scale;  	unsigned long		fflags;  }; -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); +int parse_cbm(struct rdt_parse_data *data, struct rdt_resource *r, +	      struct rdt_domain *d); +int parse_bw(struct rdt_parse_data *data, 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 af358ca05160..edd5761f7336 100644 --- a/arch/x86/kernel/cpu/intel_rdt_ctrlmondata.c +++ b/arch/x86/kernel/cpu/intel_rdt_ctrlmondata.c @@ -64,19 +64,19 @@ static bool bw_validate(char *buf, unsigned long *data, struct rdt_resource *r)  	return true;  } -int parse_bw(void *_buf, struct rdt_resource *r, struct rdt_domain *d) +int parse_bw(struct rdt_parse_data *data, struct rdt_resource *r, +	     struct rdt_domain *d)  { -	unsigned long data; -	char *buf = _buf; +	unsigned long bw_val;  	if (d->have_new_ctrl) {  		rdt_last_cmd_printf("duplicate domain %d\n", d->id);  		return -EINVAL;  	} -	if (!bw_validate(buf, &data, r)) +	if (!bw_validate(data->buf, &bw_val, r))  		return -EINVAL; -	d->new_ctrl = data; +	d->new_ctrl = bw_val;  	d->have_new_ctrl = true;  	return 0; @@ -123,18 +123,13 @@ static bool cbm_validate(char *buf, u32 *data, struct rdt_resource *r)  	return true;  } -struct rdt_cbm_parse_data { -	struct rdtgroup		*rdtgrp; -	char			*buf; -}; -  /*   * Read one cache bit mask (hex). Check that it is valid for the current   * resource type.   */ -int parse_cbm(void *_data, struct rdt_resource *r, struct rdt_domain *d) +int parse_cbm(struct rdt_parse_data *data, struct rdt_resource *r, +	      struct rdt_domain *d)  { -	struct rdt_cbm_parse_data *data = _data;  	struct rdtgroup *rdtgrp = data->rdtgrp;  	u32 cbm_val; @@ -195,7 +190,7 @@ int parse_cbm(void *_data, struct rdt_resource *r, struct rdt_domain *d)  static int parse_line(char *line, struct rdt_resource *r,  		      struct rdtgroup *rdtgrp)  { -	struct rdt_cbm_parse_data data; +	struct rdt_parse_data data;  	char *dom = NULL, *id;  	struct rdt_domain *d;  	unsigned long dom_id; | 
