On 2/22/19 3:42 AM, Tiwei Bie wrote:
Tiwei Bie (4):
   vhost: restore mbuf first when freeing zmbuf
   vhost: fix potential use-after-free for zero copy mbuf
   vhost: fix potential use-after-free for memory region
   doc: improve vhost zero copy guide

  doc/guides/prog_guide/vhost_lib.rst |  3 +++
  lib/librte_vhost/vhost.h            | 34 +++++++++++++++++++++++
  lib/librte_vhost/vhost_user.c       | 42 ++++++++++++++++++++++-------
  lib/librte_vhost/virtio_net.c       | 34 -----------------------
  4 files changed, 70 insertions(+), 43 deletions(-)


Looking at the spec, I think we may need also to drain zmbufs in the
VHOST_USER_SET_VRING_ENABLE for the disable case:

""
If VHOST_USER_F_PROTOCOL_FEATURES has been negotiated, the ring is initialized in a disabled state. Client must not pass data to/from the backend until ring is enabled by VHOST_USER_SET_VRING_ENABLE with parameter 1, or after it has been disabled by
VHOST_USER_SET_VRING_ENABLE with parameter 0.

Each ring is initialized in a stopped state, client must not process it until
ring is started, or *after it has been stopped*.
""

Do you take care of this or I send a patch on top?

Thanks,
Maxime

Reply via email to