diff options
Diffstat (limited to 'drivers/net/xen-netback/netback.c')
-rw-r--r-- | drivers/net/xen-netback/netback.c | 9 |
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 | ||
1369 | static inline void xenvif_tx_dealloc_action(struct xenvif *vif) | 1376 | static inline void xenvif_tx_dealloc_action(struct xenvif *vif) |