mirror of
https://github.com/openvswitch/ovs
synced 2025-08-30 22:05:19 +00:00
netdev-offload-dpdk: Fix crash in debug log.
The offload thread calling ufid_to_rte_flow_disassociate() may be the
last one holding a reference on the netdev and physdev.
So displaying information about them might trigger a crash when
removing a physical port.
Fixes: faf71e4922
("netdev-dpdk: Print port name in offload API messages.")
Acked-by: Mike Pattrick <mkp@redhat.com>
Signed-off-by: David Marchand <david.marchand@redhat.com>
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
This commit is contained in:
committed by
Ilya Maximets
parent
9dad8dfd1e
commit
c3e410a03a
@@ -2345,13 +2345,13 @@ netdev_offload_dpdk_flow_destroy(struct ufid_to_rte_flow_data *rte_flow_data)
|
||||
ovsrcu_get(void *, &netdev->hw_info.offload_data);
|
||||
data->rte_flow_counters[tid]--;
|
||||
|
||||
ufid_to_rte_flow_disassociate(rte_flow_data);
|
||||
VLOG_DBG_RL(&rl, "%s/%s: rte_flow 0x%"PRIxPTR
|
||||
" flow destroy %d ufid " UUID_FMT,
|
||||
netdev_get_name(netdev), netdev_get_name(physdev),
|
||||
(intptr_t) rte_flow,
|
||||
netdev_dpdk_get_port_id(physdev),
|
||||
UUID_ARGS((struct uuid *) ufid));
|
||||
ufid_to_rte_flow_disassociate(rte_flow_data);
|
||||
} else {
|
||||
VLOG_ERR("Failed flow: %s/%s: flow destroy %d ufid " UUID_FMT,
|
||||
netdev_get_name(netdev), netdev_get_name(physdev),
|
||||
|
Reference in New Issue
Block a user