aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/avf/avf.h
diff options
context:
space:
mode:
authorDamjan Marion <damarion@cisco.com>2020-08-20 17:28:20 +0200
committerFlorin Coras <florin.coras@gmail.com>2020-09-11 07:49:45 +0000
commit66bb7dd64ee2377103e18b96f1e6bf6405de44b5 (patch)
tree1a98102ba4c0346431de03717d0c6dbf7344e443 /src/plugins/avf/avf.h
parent78681def21b931309a779dfc6a5cbc6ff8b1f814 (diff)
avf: fix race between avf process node and avf_delete_if(...)
It may happen that process node is suspended while it waits for response from adminq and during that time CLI or API process can call avf_delete_if. When avf process node resumes, it may happen that device is not there anymeore. This patch delegates interface deletion to process node, so CLI/API process just sends signal instead of deleting device instance itself. Type: fix Change-Id: I7f12e12df3071650f6e60ad7eb5af23b7acfe335 Signed-off-by: Damjan Marion <damarion@cisco.com>
Diffstat (limited to 'src/plugins/avf/avf.h')
-rw-r--r--src/plugins/avf/avf.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/plugins/avf/avf.h b/src/plugins/avf/avf.h
index 5d517826009..4b35899da38 100644
--- a/src/plugins/avf/avf.h
+++ b/src/plugins/avf/avf.h
@@ -200,7 +200,7 @@ typedef struct
typedef enum
{
AVF_PROCESS_EVENT_START = 1,
- AVF_PROCESS_EVENT_STOP = 2,
+ AVF_PROCESS_EVENT_DELETE_IF = 2,
AVF_PROCESS_EVENT_AQ_INT = 3,
} avf_process_event_t;
@@ -246,9 +246,9 @@ typedef struct
} avf_create_if_args_t;
void avf_create_if (vlib_main_t * vm, avf_create_if_args_t * args);
-void avf_delete_if (vlib_main_t * vm, avf_device_t * ad);
extern vlib_node_registration_t avf_input_node;
+extern vlib_node_registration_t avf_process_node;
extern vnet_device_class_t avf_device_class;
/* format.c */