vcl: epoll out deq notifications only if fifo exists 32/31332/3
authorFlorin Coras <fcoras@cisco.com>
Thu, 18 Feb 2021 01:35:32 +0000 (17:35 -0800)
committerDave Barach <openvpp@barachs.net>
Thu, 18 Feb 2021 15:38:37 +0000 (15:38 +0000)
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Ia37d8474224f6074826c9ffb82feb919b2ef52f7

src/vcl/vppcom.c

index 80f0ad7..b576e1a 100644 (file)
@@ -2658,10 +2658,13 @@ vppcom_epoll_ctl (uint32_t vep_handle, int op, uint32_t session_handle,
       s->vep.et_mask = VEP_DEFAULT_ET_MASK;
       s->vep.ev = *event;
       txf = vcl_session_is_ct (s) ? s->ct_tx_fifo : s->tx_fifo;
-      if (event->events & EPOLLOUT)
-       svm_fifo_add_want_deq_ntf (txf, SVM_FIFO_WANT_DEQ_NOTIF_IF_FULL);
-      else
-       svm_fifo_del_want_deq_ntf (txf, SVM_FIFO_WANT_DEQ_NOTIF_IF_FULL);
+      if (txf)
+       {
+         if (event->events & EPOLLOUT)
+           svm_fifo_add_want_deq_ntf (txf, SVM_FIFO_WANT_DEQ_NOTIF_IF_FULL);
+         else
+           svm_fifo_del_want_deq_ntf (txf, SVM_FIFO_WANT_DEQ_NOTIF_IF_FULL);
+       }
       VDBG (1, "EPOLL_CTL_MOD: vep_sh %u, sh %u, events 0x%x, data 0x%llx!",
            vep_handle, session_handle, event->events, event->data.u64);
       break;