On Thu, 7 Aug 2025 11:57:31 +0800 huangdengdui <huangdeng...@huawei.com> wrote:
> On 2025/8/7 11:15, Stephen Hemminger wrote: > > On Thu, 7 Aug 2025 10:49:36 +0800 > > Dengdui Huang <huangdeng...@huawei.com> wrote: > > > >> diff --git a/lib/eal/common/eal_common_launch.c > >> b/lib/eal/common/eal_common_launch.c > >> index a7deac6ecd..be7226e4b6 100644 > >> --- a/lib/eal/common/eal_common_launch.c > >> +++ b/lib/eal/common/eal_common_launch.c > >> @@ -36,8 +36,15 @@ RTE_EXPORT_SYMBOL(rte_eal_remote_launch) > >> int > >> rte_eal_remote_launch(lcore_function_t *f, void *arg, unsigned int > >> worker_id) > >> { > >> + enum rte_lcore_role_t role; > >> int rc = -EBUSY; > >> > >> + role = lcore_config[worker_id].core_role; > >> + if (role != ROLE_RTE && role != ROLE_SERVICE) { > >> + rc = -EINVAL; > >> + goto finish; > >> + } > > > > worker_id could be any value, if it was out of the range of the array > > you would end up reading junk. > > The lcore should not exceed the RTE_MAX_LCORE range, which should be a common > understanding everyone. > I believe checking it in the code is redundant, updating the documentation be > a better solution. It should be in documentation, but this an exposed API, and all non-datapath API's must check arguments. > Moreover, in some interfaces[1], if the lore exceeds the RTE_MAX_LCORE range, > it is difficult to determine what value should be returned. Invalid same as your other checks. or ERANGE? > > [1] > https://elixir.bootlin.com/dpdk/v25.07/source/lib/eal/include/rte_launch.h#L112