aboutsummaryrefslogtreecommitdiffstats
path: root/net/core/dev.c
diff options
context:
space:
mode:
authorKrishna Kumar <krkumar2@in.ibm.com>2009-12-09 15:59:58 -0500
committerDavid S. Miller <davem@davemloft.net>2009-12-23 17:13:30 -0500
commit068a2de57ddf4f472e32e7af868613c574ad1d88 (patch)
tree61a54d80679733dde74fbcbe851a5760e20be106 /net/core/dev.c
parentdef87cf42069a6d4fd42a2ede8f19c620a292568 (diff)
net: release dst entry while cache-hot for GSO case too
Non-GSO code drops dst entry for performance reasons, but the same is missing for GSO code. Drop dst while cache-hot for GSO case too. Signed-off-by: Krishna Kumar <krkumar2@in.ibm.com> Acked-by: Eric Dumazet <eric.dumazet@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/core/dev.c')
-rw-r--r--net/core/dev.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/net/core/dev.c b/net/core/dev.c
index be9924f60ec3..a8d68cdedbbe 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -1853,6 +1853,14 @@ gso:
1853 1853
1854 skb->next = nskb->next; 1854 skb->next = nskb->next;
1855 nskb->next = NULL; 1855 nskb->next = NULL;
1856
1857 /*
1858 * If device doesnt need nskb->dst, release it right now while
1859 * its hot in this cpu cache
1860 */
1861 if (dev->priv_flags & IFF_XMIT_DST_RELEASE)
1862 skb_dst_drop(nskb);
1863
1856 rc = ops->ndo_start_xmit(nskb, dev); 1864 rc = ops->ndo_start_xmit(nskb, dev);
1857 if (unlikely(rc != NETDEV_TX_OK)) { 1865 if (unlikely(rc != NETDEV_TX_OK)) {
1858 if (rc & ~NETDEV_TX_MASK) 1866 if (rc & ~NETDEV_TX_MASK)