c655c547f9
Both primary and secondary processes may call the queue start/stop, link update handlers. These functions use the rte_eth_dev pointer cached in the adapter private data (struct enic). But, this pointer is valid only in the primary process, as rte_eth_dev addresses may differ in different processes. Using that cached pointer in secondary processes leads to a crash. For the link update handler (enic_link_update), use the rte_eth_dev pointer passed down from the rte layer as it is valid in the current process. For the queue start/stop handlers (enic_start_wq and friends), cache the rte_eth_dev_data pointer in the adapter private data, and use that. rte_eth_dev_data is in shared memory and its address is same across processes. Fixes: |
||
---|---|---|
.. | ||
base | ||
enic_clsf.c | ||
enic_compat.h | ||
enic_ethdev.c | ||
enic_flow.c | ||
enic_main.c | ||
enic_res.c | ||
enic_res.h | ||
enic_rxtx_common.h | ||
enic_rxtx_vec_avx2.c | ||
enic_rxtx.c | ||
enic.h | ||
Makefile | ||
meson.build | ||
rte_pmd_enic_version.map |