summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilliam Clark <wclark@codeaurora.org>2015-07-10 09:40:07 -0700
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-23 19:58:12 -0700
commit5f0d2109e18c8010eb0bdfacd1e4e04d86f132aa (patch)
tree06e2a8a3d958a434199f9304970b45363b101ef5
parent0990b375056e00fb1f8051e51a81079eeb9b72a3 (diff)
seemp: prevent assert
The change fixes event parameter encoding for seemp. It will prevent an assert in seemp functioning Change-Id: Ib3681d526a1dfb45cd5de5a40ee8cf07e02296dd Signed-off-by: William Clark <wclark@codeaurora.org>
-rw-r--r--drivers/platform/msm/seemp_core/seemp_event_encoder.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/platform/msm/seemp_core/seemp_event_encoder.c b/drivers/platform/msm/seemp_core/seemp_event_encoder.c
index 1d2b67bf267d..7014a2e441fa 100644
--- a/drivers/platform/msm/seemp_core/seemp_event_encoder.c
+++ b/drivers/platform/msm/seemp_core/seemp_event_encoder.c
@@ -13,24 +13,24 @@
#define PROVIDE_PARAM_ID
+#include "seemp_logk.h"
#include <linux/seemp_param_id.h>
#include "seemp_event_encoder.h"
-#include "seemp_logk.h"
static char *scan_id(char *s);
static void encode_seemp_section(char *section_start, char *section_eq,
char *section_end, bool param, bool numeric,
int id, __s32 numeric_value);
-static void check_param_range(char *section_eq, char **s, char ch, bool *param,
+static void check_param_range(char *section_eq, bool *param,
bool *numeric, int val_len, __s32 *numeric_value)
{
long long_value = 0;
if (*param && *numeric) {
/*check if 2 bytes & in[-99999,999999]*/
- *numeric = (val_len >= 2);
- if ((val_len >= 2) && (val_len <= 6)) {
+ *numeric = (val_len >= 2) && (val_len <= 6);
+ if (*numeric) {
if (kstrtol(section_eq + 1, 10, &long_value)
!= 0) {
*numeric = false;
@@ -39,7 +39,6 @@ static void check_param_range(char *section_eq, char **s, char ch, bool *param,
*numeric = (*numeric_value >= -32768) &&
(*numeric_value <= 32767);
}
- **s = ch;
}
}
}
@@ -97,8 +96,9 @@ void encode_seemp_params(struct seemp_logk_blk *blk)
ch = *s;
*s = 0;
- check_param_range(section_eq, &s, ch, &param,
+ check_param_range(section_eq, &param,
&numeric, val_len, &numeric_value);
+ *s = ch;
}
}