diff options
author | David S. Miller <davem@davemloft.net> | 2014-08-22 19:21:53 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-08-25 02:02:45 -0400 |
commit | 4798248e4e023170e937a65a1d30fcc52496dd42 (patch) | |
tree | c043fec145a1c2035f4c9e4ff7b4fbedc07bb1d5 /net/core | |
parent | 4c83acbc565d53296f1731034c5041a0fbabcaeb (diff) |
net: Add ops->ndo_xmit_flush()
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/core')
-rw-r--r-- | net/core/dev.c | 5 | ||||
-rw-r--r-- | net/core/netpoll.c | 3 | ||||
-rw-r--r-- | net/core/pktgen.c | 4 |
3 files changed, 4 insertions, 8 deletions
diff --git a/net/core/dev.c b/net/core/dev.c index b6a718ec11c1..26d296c2447c 100644 --- a/net/core/dev.c +++ b/net/core/dev.c | |||
@@ -2602,7 +2602,6 @@ EXPORT_SYMBOL(netif_skb_features); | |||
2602 | int dev_hard_start_xmit(struct sk_buff *skb, struct net_device *dev, | 2602 | int dev_hard_start_xmit(struct sk_buff *skb, struct net_device *dev, |
2603 | struct netdev_queue *txq) | 2603 | struct netdev_queue *txq) |
2604 | { | 2604 | { |
2605 | const struct net_device_ops *ops = dev->netdev_ops; | ||
2606 | int rc = NETDEV_TX_OK; | 2605 | int rc = NETDEV_TX_OK; |
2607 | unsigned int skb_len; | 2606 | unsigned int skb_len; |
2608 | 2607 | ||
@@ -2667,7 +2666,7 @@ int dev_hard_start_xmit(struct sk_buff *skb, struct net_device *dev, | |||
2667 | 2666 | ||
2668 | skb_len = skb->len; | 2667 | skb_len = skb->len; |
2669 | trace_net_dev_start_xmit(skb, dev); | 2668 | trace_net_dev_start_xmit(skb, dev); |
2670 | rc = ops->ndo_start_xmit(skb, dev); | 2669 | rc = netdev_start_xmit(skb, dev); |
2671 | trace_net_dev_xmit(skb, rc, dev, skb_len); | 2670 | trace_net_dev_xmit(skb, rc, dev, skb_len); |
2672 | if (rc == NETDEV_TX_OK) | 2671 | if (rc == NETDEV_TX_OK) |
2673 | txq_trans_update(txq); | 2672 | txq_trans_update(txq); |
@@ -2686,7 +2685,7 @@ gso: | |||
2686 | 2685 | ||
2687 | skb_len = nskb->len; | 2686 | skb_len = nskb->len; |
2688 | trace_net_dev_start_xmit(nskb, dev); | 2687 | trace_net_dev_start_xmit(nskb, dev); |
2689 | rc = ops->ndo_start_xmit(nskb, dev); | 2688 | rc = netdev_start_xmit(nskb, dev); |
2690 | trace_net_dev_xmit(nskb, rc, dev, skb_len); | 2689 | trace_net_dev_xmit(nskb, rc, dev, skb_len); |
2691 | if (unlikely(rc != NETDEV_TX_OK)) { | 2690 | if (unlikely(rc != NETDEV_TX_OK)) { |
2692 | if (rc & ~NETDEV_TX_MASK) | 2691 | if (rc & ~NETDEV_TX_MASK) |
diff --git a/net/core/netpoll.c b/net/core/netpoll.c index 907fb5e36c02..a5ad06828d67 100644 --- a/net/core/netpoll.c +++ b/net/core/netpoll.c | |||
@@ -72,7 +72,6 @@ module_param(carrier_timeout, uint, 0644); | |||
72 | static int netpoll_start_xmit(struct sk_buff *skb, struct net_device *dev, | 72 | static int netpoll_start_xmit(struct sk_buff *skb, struct net_device *dev, |
73 | struct netdev_queue *txq) | 73 | struct netdev_queue *txq) |
74 | { | 74 | { |
75 | const struct net_device_ops *ops = dev->netdev_ops; | ||
76 | int status = NETDEV_TX_OK; | 75 | int status = NETDEV_TX_OK; |
77 | netdev_features_t features; | 76 | netdev_features_t features; |
78 | 77 | ||
@@ -92,7 +91,7 @@ static int netpoll_start_xmit(struct sk_buff *skb, struct net_device *dev, | |||
92 | skb->vlan_tci = 0; | 91 | skb->vlan_tci = 0; |
93 | } | 92 | } |
94 | 93 | ||
95 | status = ops->ndo_start_xmit(skb, dev); | 94 | status = netdev_start_xmit(skb, dev); |
96 | if (status == NETDEV_TX_OK) | 95 | if (status == NETDEV_TX_OK) |
97 | txq_trans_update(txq); | 96 | txq_trans_update(txq); |
98 | 97 | ||
diff --git a/net/core/pktgen.c b/net/core/pktgen.c index 8b849ddfef2e..83e2b4b19eb7 100644 --- a/net/core/pktgen.c +++ b/net/core/pktgen.c | |||
@@ -3285,8 +3285,6 @@ static void pktgen_wait_for_skb(struct pktgen_dev *pkt_dev) | |||
3285 | static void pktgen_xmit(struct pktgen_dev *pkt_dev) | 3285 | static void pktgen_xmit(struct pktgen_dev *pkt_dev) |
3286 | { | 3286 | { |
3287 | struct net_device *odev = pkt_dev->odev; | 3287 | struct net_device *odev = pkt_dev->odev; |
3288 | netdev_tx_t (*xmit)(struct sk_buff *, struct net_device *) | ||
3289 | = odev->netdev_ops->ndo_start_xmit; | ||
3290 | struct netdev_queue *txq; | 3288 | struct netdev_queue *txq; |
3291 | u16 queue_map; | 3289 | u16 queue_map; |
3292 | int ret; | 3290 | int ret; |
@@ -3339,7 +3337,7 @@ static void pktgen_xmit(struct pktgen_dev *pkt_dev) | |||
3339 | goto unlock; | 3337 | goto unlock; |
3340 | } | 3338 | } |
3341 | atomic_inc(&(pkt_dev->skb->users)); | 3339 | atomic_inc(&(pkt_dev->skb->users)); |
3342 | ret = (*xmit)(pkt_dev->skb, odev); | 3340 | ret = netdev_start_xmit(pkt_dev->skb, odev); |
3343 | 3341 | ||
3344 | switch (ret) { | 3342 | switch (ret) { |
3345 | case NETDEV_TX_OK: | 3343 | case NETDEV_TX_OK: |