aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/xen-netback/netback.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/xen-netback/netback.c')
-rw-r--r--drivers/net/xen-netback/netback.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/net/xen-netback/netback.c b/drivers/net/xen-netback/netback.c
index 46a75706cb78..3cb586357df7 100644
--- a/drivers/net/xen-netback/netback.c
+++ b/drivers/net/xen-netback/netback.c
@@ -1323,8 +1323,10 @@ static int xenvif_tx_submit(struct xenvif *vif)
1323 * do a skb_copy_ubufs while we are still in control of the 1323 * do a skb_copy_ubufs while we are still in control of the
1324 * skb. E.g. the __pskb_pull_tail earlier can do such thing. 1324 * skb. E.g. the __pskb_pull_tail earlier can do such thing.
1325 */ 1325 */
1326 if (skb_shinfo(skb)->destructor_arg) 1326 if (skb_shinfo(skb)->destructor_arg) {
1327 skb_shinfo(skb)->tx_flags |= SKBTX_DEV_ZEROCOPY; 1327 skb_shinfo(skb)->tx_flags |= SKBTX_DEV_ZEROCOPY;
1328 vif->tx_zerocopy_sent++;
1329 }
1328 1330
1329 netif_receive_skb(skb); 1331 netif_receive_skb(skb);
1330 } 1332 }
@@ -1364,6 +1366,11 @@ void xenvif_zerocopy_callback(struct ubuf_info *ubuf, bool zerocopy_success)
1364 napi_schedule(&vif->napi); 1366 napi_schedule(&vif->napi);
1365 local_bh_enable(); 1367 local_bh_enable();
1366 } 1368 }
1369
1370 if (likely(zerocopy_success))
1371 vif->tx_zerocopy_success++;
1372 else
1373 vif->tx_zerocopy_fail++;
1367} 1374}
1368 1375
1369static inline void xenvif_tx_dealloc_action(struct xenvif *vif) 1376static inline void xenvif_tx_dealloc_action(struct xenvif *vif)