u32 hash;
        struct hv_page_buffer pb[MAX_PAGE_BUFFER_COUNT];
 
-       /* if VF is present and up then redirect packets
-        * already called with rcu_read_lock_bh
+       /* If VF is present and up then redirect packets to it.
+        * Skip the VF if it is marked down or has no carrier.
+        * If netpoll is in uses, then VF can not be used either.
         */
        vf_netdev = rcu_dereference_bh(net_device_ctx->vf_netdev);
        if (vf_netdev && netif_running(vf_netdev) &&
-           !netpoll_tx_running(net))
+           netif_carrier_ok(vf_netdev) && !netpoll_tx_running(net))
                return netvsc_vf_xmit(net, vf_netdev, skb);
 
        /* We will atmost need two pages to describe the rndis