> -----Original Message----- > From: Vipul Ashri <vipul.as...@oracle.com> > Sent: Thursday, August 13, 2020 3:29 PM > To: dev@dpdk.org > Cc: Xia, Chenbo <chenbo....@intel.com>; vipul.as...@oracle.com; > edwin.le...@oracle.com; sta...@dpdk.org > Subject: [PATCH v3] net/virtio: fix wrong variable assignment in helper > macro > > 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
Reviewed-by: Chenbo Xia <chenbo....@intel.com>