Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

perf parse-events: Move instances of YYABORT to YYNOMEM

Migration to improve error reporting as YYABORT cases should carry
event parsing errors.

Signed-off-by: Ian Rogers <irogers@google.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Kan Liang <kan.liang@linux.intel.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: bpf@vger.kernel.org
Link: https://lore.kernel.org/r/20230627181030.95608-9-irogers@google.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

authored by

Ian Rogers and committed by
Arnaldo Carvalho de Melo
77cdd787 a7a3252d

+40 -18
+40 -18
tools/perf/util/parse-events.y
··· 390 390 bool wildcard = (type == PERF_TYPE_HARDWARE || type == PERF_TYPE_HW_CACHE); 391 391 392 392 list = alloc_list(); 393 - ABORT_ON(!list); 393 + if (!list) 394 + YYNOMEM; 394 395 err = parse_events_add_numeric(_parse_state, list, type, config, $3, wildcard); 395 396 parse_events_terms__delete($3); 396 397 if (err) { ··· 409 408 bool wildcard = (type == PERF_TYPE_HARDWARE || type == PERF_TYPE_HW_CACHE); 410 409 411 410 list = alloc_list(); 412 - ABORT_ON(!list); 411 + if (!list) 412 + YYNOMEM; 413 413 ABORT_ON(parse_events_add_numeric(_parse_state, list, type, config, 414 414 /*head_config=*/NULL, wildcard)); 415 415 $$ = list; ··· 421 419 struct list_head *list; 422 420 423 421 list = alloc_list(); 424 - ABORT_ON(!list); 422 + if (!list) 423 + YYNOMEM; 425 424 ABORT_ON(parse_events_add_tool(_parse_state, list, $1)); 426 425 $$ = list; 427 426 } ··· 435 432 int err; 436 433 437 434 list = alloc_list(); 438 - ABORT_ON(!list); 435 + if (!list) 436 + YYNOMEM; 437 + 439 438 err = parse_events_add_cache(list, &parse_state->idx, $1, parse_state, $2); 440 439 441 440 parse_events_terms__delete($2); ··· 456 451 int err; 457 452 458 453 list = alloc_list(); 459 - ABORT_ON(!list); 454 + if (!list) 455 + YYNOMEM; 456 + 460 457 err = parse_events_add_breakpoint(_parse_state, list, 461 458 $2, $6, $4, $7); 462 459 parse_events_terms__delete($7); ··· 476 469 int err; 477 470 478 471 list = alloc_list(); 479 - ABORT_ON(!list); 472 + if (!list) 473 + YYNOMEM; 474 + 480 475 err = parse_events_add_breakpoint(_parse_state, list, 481 476 $2, NULL, $4, $5); 482 477 parse_events_terms__delete($5); ··· 495 486 int err; 496 487 497 488 list = alloc_list(); 498 - ABORT_ON(!list); 489 + if (!list) 490 + YYNOMEM; 491 + 499 492 err = parse_events_add_breakpoint(_parse_state, list, 500 493 $2, $4, 0, $5); 501 494 parse_events_terms__delete($5); ··· 515 504 int err; 516 505 517 506 list = alloc_list(); 518 - ABORT_ON(!list); 507 + if (!list) 508 + YYNOMEM; 519 509 err = parse_events_add_breakpoint(_parse_state, list, 520 510 $2, NULL, 0, $3); 521 511 parse_events_terms__delete($3); ··· 536 524 int err; 537 525 538 526 list = alloc_list(); 539 - ABORT_ON(!list); 527 + if (!list) 528 + YYNOMEM; 540 529 if (error) 541 530 error->idx = @1.first_column; 542 531 ··· 569 556 int err; 570 557 571 558 list = alloc_list(); 572 - ABORT_ON(!list); 559 + if (!list) 560 + YYNOMEM; 573 561 err = parse_events_add_numeric(_parse_state, list, (u32)$1, $3, $4, 574 562 /*wildcard=*/false); 575 563 parse_events_terms__delete($4); ··· 589 575 u64 num; 590 576 591 577 list = alloc_list(); 592 - ABORT_ON(!list); 578 + if (!list) 579 + YYNOMEM; 593 580 errno = 0; 594 581 num = strtoull($1 + 1, NULL, 16); 595 582 ABORT_ON(errno); ··· 613 598 int err; 614 599 615 600 list = alloc_list(); 616 - ABORT_ON(!list); 601 + if (!list) 602 + YYNOMEM; 617 603 err = parse_events_load_bpf(parse_state, list, $1, false, $2); 618 604 parse_events_terms__delete($2); 619 605 free($1); ··· 631 615 int err; 632 616 633 617 list = alloc_list(); 634 - ABORT_ON(!list); 618 + if (!list) 619 + YYNOMEM; 635 620 err = parse_events_load_bpf(_parse_state, list, $1, true, $2); 636 621 parse_events_terms__delete($2); 637 622 if (err) { ··· 697 680 struct list_head *head = malloc(sizeof(*head)); 698 681 struct parse_events_term *term = $1; 699 682 700 - ABORT_ON(!head); 683 + if (!head) 684 + YYNOMEM; 701 685 INIT_LIST_HEAD(head); 702 686 list_add_tail(&term->list, head); 703 687 $$ = head; ··· 875 857 struct parse_events_term *term; 876 858 char *config = strdup($1); 877 859 878 - ABORT_ON(!config); 860 + if (!config) 861 + YYNOMEM; 879 862 if (parse_events_term__str(&term, PARSE_EVENTS__TERM_TYPE_DRV_CFG, 880 863 config, $1, &@1, NULL)) { 881 864 free($1); ··· 907 888 new_array.ranges = realloc($1.ranges, 908 889 sizeof(new_array.ranges[0]) * 909 890 new_array.nr_ranges); 910 - ABORT_ON(!new_array.ranges); 891 + if (!new_array.ranges) 892 + YYNOMEM; 911 893 memcpy(&new_array.ranges[$1.nr_ranges], $3.ranges, 912 894 $3.nr_ranges * sizeof(new_array.ranges[0])); 913 895 free($3.ranges); ··· 924 904 925 905 array.nr_ranges = 1; 926 906 array.ranges = malloc(sizeof(array.ranges[0])); 927 - ABORT_ON(!array.ranges); 907 + if (!array.ranges) 908 + YYNOMEM; 928 909 array.ranges[0].start = $1; 929 910 array.ranges[0].length = 1; 930 911 $$ = array; ··· 938 917 ABORT_ON($3 < $1); 939 918 array.nr_ranges = 1; 940 919 array.ranges = malloc(sizeof(array.ranges[0])); 941 - ABORT_ON(!array.ranges); 920 + if (!array.ranges) 921 + YYNOMEM; 942 922 array.ranges[0].start = $1; 943 923 array.ranges[0].length = $3 - $1 + 1; 944 924 $$ = array;