Inside Macro ASSIGN_UNLESS_EQUAL(var, val), assignment to var is always failing as assignment done using var_ having local scope only. This leads to TX packets not going out and found broken due to cleanup malfunctioning. This patch fixes the wrong variable assignment.
Fixes: 57f90f894588 ("net/virtio: reuse packed ring functions") Cc: sta...@dpdk.org Signed-off-by: Vipul Ashri <vipul.as...@oracle.com> --- drivers/net/virtio/virtqueue.h | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/net/virtio/virtqueue.h b/drivers/net/virtio/virtqueue.h index 105a9c00c..20c95471e 100644 --- a/drivers/net/virtio/virtqueue.h +++ b/drivers/net/virtio/virtqueue.h @@ -607,10 +607,8 @@ virtqueue_notify(struct virtqueue *vq) /* avoid write operation when necessary, to lessen cache issues */ #define ASSIGN_UNLESS_EQUAL(var, val) do { \ - typeof(var) var_ = (var); \ - typeof(val) val_ = (val); \ - if ((var_) != (val_)) \ - (var_) = (val_); \ + if ((var) != (val)) \ + (var) = (val); \ } while (0) #define virtqueue_clear_net_hdr(hdr) do { \ -- 2.28.0.windows.1