net/virtio: fix virtio_net_hdr not being cleared correctly

Message ID 20200813062615.1759-1-javin158@163.com (mailing list archive)
State Rejected, archived
Delegated to: Maxime Coquelin
Headers
Series net/virtio: fix virtio_net_hdr not being cleared correctly |

Checks

Context Check Description
ci/checkpatch warning coding style issues
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-testing success Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS
ci/Intel-compilation success Compilation OK

Commit Message

chupenghong Aug. 13, 2020, 6:26 a.m. UTC
  The macro ASSIGN_UNLESS_EQUAL doesn't assign value to the
variable, so the virtio_net_hdr may not be cleared correctly and the
tx packet may be droped due to wrong virtio_net_hdr.

Fixes: 57f90f894588 ("net/virtio: reuse packed ring functions")
Cc: yong.liu@intel.com
Signed-off-by: javin <javin158@163.com>
---
 drivers/net/virtio/virtqueue.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Patch

diff --git a/drivers/net/virtio/virtqueue.h b/drivers/net/virtio/virtqueue.h
index 105a9c00c..e94d78ae5 100644
--- a/drivers/net/virtio/virtqueue.h
+++ b/drivers/net/virtio/virtqueue.h
@@ -610,7 +610,7 @@  virtqueue_notify(struct virtqueue *vq)
 	typeof(var) var_ = (var);		\
 	typeof(val) val_ = (val);		\
 	if ((var_) != (val_))			\
-		(var_) = (val_);		\
+		(var) = (val_);		\
 } while (0)
 
 #define virtqueue_clear_net_hdr(hdr) do {		\