Ping.. Li Qiang <liq...@163.com> 于2018年12月15日周六 下午8:06写道:
> Currently, the vhost-user-test is not correct. > When in qtest mode, the accel is qtest, not kvm. > So when the client side of vhost-user-test send > 'VHOST_USER_SET_VRING_CALL' msg, the 'fd' will > no be added in 'fds' in 'vhost_set_vring_file'. > In 'chr_read' of the server side in the > vhost-user-test, it calls 'qemu_chr_fe_get_msgfds' > to get the fd in 'VHOST_USER_SET_VRING_CALL'. Though > there is no fd returned, but as the 'fd' is not initialized > so 'fd' maybe valid, and 'qemu_set_nonblock' will be success. > Even worse, 'qemu_set_nonblock' doesn't check the return value > of fcntl. > > So this cause the interesting bug here: there are three issues, > but they combined and will bypass the qtest. > > This patchset tries to address these issue. > > v2: Change the second patch per Paolo's review > > Li Qiang (3): > tests: vhost-user-test: initialize 'fd' in chr_read > vhost-user: fix ioeventfd_enabled > util: check the return value of fcntl in qemu_set_{block,nonblock} > > hw/virtio/vhost-user.c | 2 +- > tests/vhost-user-test.c | 2 +- > util/oslib-posix.c | 8 ++++++-- > 3 files changed, 8 insertions(+), 4 deletions(-) > > -- > 2.17.1 > > >