On 06/28/2017 02:40 PM, Ivan Dyukov wrote:
To compare enabled features in current device we must use bit mask instead of bit position. CC: [email protected] Fixes: c843af3aa13e ("vhost: access header only") Signed-off-by: Ivan Dyukov <[email protected]> --- lib/librte_vhost/virtio_net.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-)
Thanks for the fix Ivan, and sorry for introducing this bug. Out of curiosity, did you noticed it because it broke offloading, or just by code review? Reviewed-by: Maxime Coquelin <[email protected]>
diff --git a/lib/librte_vhost/virtio_net.c b/lib/librte_vhost/virtio_net.c index ebfda1c..4fae4c1 100644 --- a/lib/librte_vhost/virtio_net.c +++ b/lib/librte_vhost/virtio_net.c @@ -601,9 +601,11 @@ static inline bool virtio_net_with_host_offload(struct virtio_net *dev) { if (dev->features & - (VIRTIO_NET_F_CSUM | VIRTIO_NET_F_HOST_ECN | - VIRTIO_NET_F_HOST_TSO4 | VIRTIO_NET_F_HOST_TSO6 | - VIRTIO_NET_F_HOST_UFO)) + ((1ULL << VIRTIO_NET_F_CSUM) | + (1ULL << VIRTIO_NET_F_HOST_ECN) | + (1ULL << VIRTIO_NET_F_HOST_TSO4) | + (1ULL << VIRTIO_NET_F_HOST_TSO6) | + (1ULL << VIRTIO_NET_F_HOST_UFO))) return true;return false;

