Message ID | 1366355475-7243-1-git-send-email-jasowang@redhat.com |
---|---|
State | New |
Headers | show |
On 19.04.2013 09:11, Jason Wang wrote: > Only tap->vhostfd were checked net_init_tap_one(), but tap->vhostfds were > forgot, this will lead qemu to ignore all fds passed by management through > vhostfds, and tries to create vhost_net device itself. Fix by adding this check > also. > > Reportyed-by: Michal Privoznik <mprivozn@redhat.com> Typo > Cc: Michal Privoznik <mprivozn@redhat.com> > Cc: qemu-stable@nongnu.org > Signed-off-by: Jason Wang <jasowang@redhat.com> > --- > net/tap.c | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > diff --git a/net/tap.c b/net/tap.c > index 17bdf01..e0b7a2a 100644 > --- a/net/tap.c > +++ b/net/tap.c > @@ -623,7 +623,7 @@ static int net_init_tap_one(const NetdevTapOptions *tap, NetClientState *peer, > vhostfdname || (tap->has_vhostforce && tap->vhostforce)) { > int vhostfd; > > - if (tap->has_vhostfd) { > + if (tap->has_vhostfd || tap->has_vhostfds) { > vhostfd = monitor_handle_fd_param(cur_mon, vhostfdname); > if (vhostfd == -1) { > return -1; > Yup. I can confirm this fixes the problem for me. Reviewed-by: Michal Privoznik <mprivozn@redhat.com> Michal
On Fri, Apr 19, 2013 at 03:11:15PM +0800, Jason Wang wrote: > Only tap->vhostfd were checked net_init_tap_one(), but tap->vhostfds were > forgot, this will lead qemu to ignore all fds passed by management through > vhostfds, and tries to create vhost_net device itself. Fix by adding this check > also. > > Reportyed-by: Michal Privoznik <mprivozn@redhat.com> > Cc: Michal Privoznik <mprivozn@redhat.com> > Cc: qemu-stable@nongnu.org > Signed-off-by: Jason Wang <jasowang@redhat.com> > --- > net/tap.c | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) Thanks, applied to my net tree: https://github.com/stefanha/qemu/commits/net Stefan
diff --git a/net/tap.c b/net/tap.c index 17bdf01..e0b7a2a 100644 --- a/net/tap.c +++ b/net/tap.c @@ -623,7 +623,7 @@ static int net_init_tap_one(const NetdevTapOptions *tap, NetClientState *peer, vhostfdname || (tap->has_vhostforce && tap->vhostforce)) { int vhostfd; - if (tap->has_vhostfd) { + if (tap->has_vhostfd || tap->has_vhostfds) { vhostfd = monitor_handle_fd_param(cur_mon, vhostfdname); if (vhostfd == -1) { return -1;
Only tap->vhostfd were checked net_init_tap_one(), but tap->vhostfds were forgot, this will lead qemu to ignore all fds passed by management through vhostfds, and tries to create vhost_net device itself. Fix by adding this check also. Reportyed-by: Michal Privoznik <mprivozn@redhat.com> Cc: Michal Privoznik <mprivozn@redhat.com> Cc: qemu-stable@nongnu.org Signed-off-by: Jason Wang <jasowang@redhat.com> --- net/tap.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)