telemetry: fix race on callbacks list
The list_commands() function accessed the callbacks list, but did not take the lock. This may have caused inconsistencies if callbacks were being registered at the same time. This is now fixed to lock before iterating the list, and unlock afterwards. Fixes: f38748736eb2 ("telemetry: add default callback commands") Cc: stable@dpdk.org Reported-by: David Marchand <david.marchand@redhat.com> Signed-off-by: Ciara Power <ciara.power@intel.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
This commit is contained in:
parent
dbab511874
commit
048960272e
@ -107,8 +107,10 @@ list_commands(const char *cmd __rte_unused, const char *params __rte_unused,
|
||||
int i;
|
||||
|
||||
rte_tel_data_start_array(d, RTE_TEL_STRING_VAL);
|
||||
rte_spinlock_lock(&callback_sl);
|
||||
for (i = 0; i < num_callbacks; i++)
|
||||
rte_tel_data_add_array_string(d, callbacks[i].cmd);
|
||||
rte_spinlock_unlock(&callback_sl);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user