On Sat, 8 Jul 2023 15:11:45 +0000 "Sevincer, Abdullah" <abdullah.sevin...@intel.com> wrote:
> >+Has new coverity issue. > >+The reason is the boolean is set every time because it gets every time. > > >+Looks like code goes over eventdev_var[] even if no eventdevs are present. > >+Should only look for the number of eventdevs > > Thanks Stephen, I will add a condition at the top of the function like: > > evdevs = rte_event_dev_count(); > if (!evdevs) > return 0; > > This will ensure if there is no eventdev device function returns. > > I will also change the for loop to iterate only with the count of evdevs like: > for (i = 0; i < evdevs; i++) {....... instead of for (i = 0; i < > RTE_EVENT_MAX_DEVS; i++) {. > > I still need that flag to be set when a user sets a value from command line > for a queue or port. > The flag is needed to display and exit from the program. > > if (process_eventdev_xstats()) > return 0; > Maybe something like this: PS: also shortened variable names for clarity diff --git a/app/proc-info/main.c b/app/proc-info/main.c index be63eace6909..e3d2578c39dc 100644 --- a/app/proc-info/main.c +++ b/app/proc-info/main.c @@ -2045,18 +2045,13 @@ xstats_reset(uint8_t dev_id, } -static int -process_eventdev_xstats(void) +static unsigned int +eventdev_xstats(void) { - int i; - int j; - int processing_eventdev_xstats = 0; - - for (i = 0; i < RTE_EVENT_MAX_DEVS; i++) { - - if (!processing_eventdev_xstats) - processing_eventdev_xstats = 1; + unsigned int count = 0; + int i, j; + for (i = 0; i < rte_event_dev_count(); i++) { if (eventdev_var[i].dump_xstats) { int ret = rte_event_dev_dump(i, stdout); @@ -2106,12 +2101,10 @@ process_eventdev_xstats(void) eventdev_var[i].queues[j]); } } + ++count; } - if (processing_eventdev_xstats) - return 1; - - return 0; + return count; } int @@ -2164,7 +2157,7 @@ main(int argc, char **argv) return 0; } - if (process_eventdev_xstats()) + if (eventdev_xstats() > 0) return 0; nb_ports = rte_eth_dev_count_avail();