svm: fix byte accounting when allocating fifo header
[vpp.git] / src / svm / fifo_segment.c
index eeb2746..6576305 100644 (file)
@@ -232,6 +232,11 @@ fs_try_alloc_fifo_freelist_multi_chunk (fifo_segment_t * fs, u32 data_bytes)
       if (!f)
        return 0;
       memset (f, 0, sizeof (*f));
+      fsh->n_free_bytes -= sizeof (*f);
+    }
+  else
+    {
+      fsh->free_fifos = f->next;
     }
 
   fl_index = fs_freelist_for_size (data_bytes) - 1;