Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 310ec918 authored by Archana Sathyakumar's avatar Archana Sathyakumar Committed by Gerrit - the friendly Code Review server
Browse files

msm-core: debug: Fix the number of arguments for sysfs nodes



Ptable and enable node parses the input arguments incorrectly. Parse the
input message into exact number of arguments that are required for the
respective nodes.

CRs-fixed: 1032875
Change-Id: I881f18217b703a497efa4799288dee39a28ea8ab
Signed-off-by: default avatarArchana Sathyakumar <asathyak@codeaurora.org>
parent 22194df2
Loading
Loading
Loading
Loading
+9 −5
Original line number Diff line number Diff line
/* Copyright (c) 2014-2015, The Linux Foundation. All rights reserved.
/* Copyright (c) 2014-2016, The Linux Foundation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
@@ -22,6 +22,8 @@
#include "soc/qcom/msm-core.h"

#define MAX_PSTATES 50
#define NUM_OF_PENTRY 3 /* number of variables for ptable node */
#define NUM_OF_EENTRY 2 /* number of variables for enable node */

enum arg_offset {
	CPU_OFFSET,
@@ -131,13 +133,15 @@ static void add_to_ptable(uint64_t *arg)
		node->ptr->len = node->len;
}

static int split_ptable_args(char *line, uint64_t *arg)
static int split_ptable_args(char *line, uint64_t *arg, uint32_t n)
{
	char *args;
	int i;
	int ret = 0;

	for (i = 0; line; i++) {
	for (i = 0; i < n; i++) {
		if (!line)
			break;
		args = strsep(&line, " ");
		ret = kstrtoull(args, 10, &arg[i]);
	}
@@ -163,7 +167,7 @@ static ssize_t msm_core_ptable_write(struct file *file,
		goto done;
	}
	kbuf[len] = '\0';
	ret = split_ptable_args(kbuf, arg);
	ret = split_ptable_args(kbuf, arg, NUM_OF_PENTRY);
	if (!ret) {
		add_to_ptable(arg);
		ret = len;
@@ -227,7 +231,7 @@ static ssize_t msm_core_enable_write(struct file *file,
		goto done;
	}
	kbuf[len] = '\0';
	ret = split_ptable_args(kbuf, arg);
	ret = split_ptable_args(kbuf, arg, NUM_OF_EENTRY);
	if (ret)
		goto done;
	cpu = arg[CPU_OFFSET];