> -----Original Message----- > From: Vipul Ashri <[email protected]> > Sent: Friday, August 14, 2020 12:22 AM > To: [email protected] > Cc: Xia, Chenbo <[email protected]>; [email protected]; > [email protected]; [email protected]; Wang, Zhihong > <[email protected]>; [email protected] > 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: [email protected] > > Signed-off-by: Vipul Ashri <[email protected]> > --- > 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 <[email protected]>

