From: Long Li <lon...@microsoft.com>

The driver needs to check if the datapath has been switched to VF before
sending traffic to VF.

Signed-off-by: Long Li <lon...@microsoft.com>
Reviewed-by: Haiyang Zhang <haiya...@microsoft.com>
---
 drivers/net/hyperv/netvsc_drv.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/net/hyperv/netvsc_drv.c b/drivers/net/hyperv/netvsc_drv.c
index f32f28311d57..5dd4f37afa3d 100644
--- a/drivers/net/hyperv/netvsc_drv.c
+++ b/drivers/net/hyperv/netvsc_drv.c
@@ -539,7 +539,8 @@ static int netvsc_xmit(struct sk_buff *skb, struct 
net_device *net, bool xdp_tx)
         */
        vf_netdev = rcu_dereference_bh(net_device_ctx->vf_netdev);
        if (vf_netdev && netif_running(vf_netdev) &&
-           netif_carrier_ok(vf_netdev) && !netpoll_tx_running(net))
+           netif_carrier_ok(vf_netdev) && !netpoll_tx_running(net) &&
+           net_device_ctx->data_path_is_vf)
                return netvsc_vf_xmit(net, vf_netdev, skb);
 
        /* We will atmost need two pages to describe the rndis
-- 
2.27.0

Reply via email to