This patchset fixes an issue (virtio/vhost become broken when queue setup is done 2 or more times, check patch 2 for great details) reported by Ilya at the late stage of last release. I sensed it would be some amounts of code work, that I delayed it to this release. However, I failed to make the fix in the early stage of this release, that we come to the same situation again: we are being at the late stage of v16.11 :(
However, honestly, I don't want to miss it again in this release, as it is hard to backport such fix to a stable release. It's not a bug can be fixed by few lines of code. The virtio init logic is quite wrong that I need change quite many places to fix it. Meanwhile, I have done my best to keep the change being as minimal as possible. Besides that, judging that v16.11 would be a LTS and it's such an severe bug that should be fixed ASAP (at least, we should make it work in a LTS release), I then tried hard today to make this patchset, with the hope we could fix this severe issue at this release. The issue is decribed in length in patch 4 "net/virtio: allocate queue at init stage". Again, it's not a bug can be fixed by one patch, that you see no one "fix" tag in none of those patches. All below patches work together to fix this issue. Thanks. --yliu --- Yuanhan Liu (8): net/virtio: revert "virtio: fix restart" net/virtio: simplify queue memzone name net/virtio: simplify queue allocation net/virtio: allocate queue at init stage net/virtio: initiate vring at init stage net/virtio: move queue configure code to proper place net/virtio: complete init stage at the right place net/virtio: remove started field drivers/net/virtio/virtio_ethdev.c | 182 ++++++++++++++++----------- drivers/net/virtio/virtio_ethdev.h | 10 -- drivers/net/virtio/virtio_pci.h | 3 +- drivers/net/virtio/virtio_rxtx.c | 247 ++++++++++++++----------------------- drivers/net/virtio/virtqueue.h | 7 ++ 5 files changed, 208 insertions(+), 241 deletions(-) -- 1.9.0