perf tools: Fix parsing of 64 bit raw config value for 32 bit
[cascardo/linux.git] / tools / perf / util / parse-events.y
index 2bc5fbf..423d331 100644 (file)
@@ -57,7 +57,7 @@ do { \
 %union
 {
        char *str;
-       unsigned long num;
+       u64 num;
        struct list_head *head;
        struct parse_events__term *term;
 }
@@ -207,7 +207,7 @@ PE_VALUE ':' PE_VALUE
        struct parse_events_data__events *data = _data;
        struct list_head *list = NULL;
 
-       ABORT_ON(parse_events_add_numeric(&list, &data->idx, $1, $3, NULL));
+       ABORT_ON(parse_events_add_numeric(&list, &data->idx, (u32)$1, $3, NULL));
        $$ = list;
 }
 
@@ -282,7 +282,7 @@ PE_TERM '=' PE_NAME
 {
        struct parse_events__term *term;
 
-       ABORT_ON(parse_events__term_str(&term, $1, NULL, $3));
+       ABORT_ON(parse_events__term_str(&term, (int)$1, NULL, $3));
        $$ = term;
 }
 |
@@ -290,7 +290,7 @@ PE_TERM '=' PE_VALUE
 {
        struct parse_events__term *term;
 
-       ABORT_ON(parse_events__term_num(&term, $1, NULL, $3));
+       ABORT_ON(parse_events__term_num(&term, (int)$1, NULL, $3));
        $$ = term;
 }
 |
@@ -298,7 +298,7 @@ PE_TERM
 {
        struct parse_events__term *term;
 
-       ABORT_ON(parse_events__term_num(&term, $1, NULL, 1));
+       ABORT_ON(parse_events__term_num(&term, (int)$1, NULL, 1));
        $$ = term;
 }