diff options
Diffstat (limited to 'net/core/dev.c')
-rw-r--r-- | net/core/dev.c | 51 |
1 files changed, 25 insertions, 26 deletions
diff --git a/net/core/dev.c b/net/core/dev.c index ad5598d2bb37..65eea83613ef 100644 --- a/net/core/dev.c +++ b/net/core/dev.c | |||
@@ -1645,32 +1645,6 @@ out_kfree_skb: | |||
1645 | return 0; | 1645 | return 0; |
1646 | } | 1646 | } |
1647 | 1647 | ||
1648 | /** | ||
1649 | * dev_queue_xmit - transmit a buffer | ||
1650 | * @skb: buffer to transmit | ||
1651 | * | ||
1652 | * Queue a buffer for transmission to a network device. The caller must | ||
1653 | * have set the device and priority and built the buffer before calling | ||
1654 | * this function. The function can be called from an interrupt. | ||
1655 | * | ||
1656 | * A negative errno code is returned on a failure. A success does not | ||
1657 | * guarantee the frame will be transmitted as it may be dropped due | ||
1658 | * to congestion or traffic shaping. | ||
1659 | * | ||
1660 | * ----------------------------------------------------------------------------------- | ||
1661 | * I notice this method can also return errors from the queue disciplines, | ||
1662 | * including NET_XMIT_DROP, which is a positive value. So, errors can also | ||
1663 | * be positive. | ||
1664 | * | ||
1665 | * Regardless of the return value, the skb is consumed, so it is currently | ||
1666 | * difficult to retry a send to this method. (You can bump the ref count | ||
1667 | * before sending to hold a reference for retry if you are careful.) | ||
1668 | * | ||
1669 | * When calling this method, interrupts MUST be enabled. This is because | ||
1670 | * the BH enable code must have IRQs enabled so that it will not deadlock. | ||
1671 | * --BLG | ||
1672 | */ | ||
1673 | |||
1674 | static u32 simple_tx_hashrnd; | 1648 | static u32 simple_tx_hashrnd; |
1675 | static int simple_tx_hashrnd_initialized = 0; | 1649 | static int simple_tx_hashrnd_initialized = 0; |
1676 | 1650 | ||
@@ -1738,6 +1712,31 @@ static struct netdev_queue *dev_pick_tx(struct net_device *dev, | |||
1738 | return netdev_get_tx_queue(dev, queue_index); | 1712 | return netdev_get_tx_queue(dev, queue_index); |
1739 | } | 1713 | } |
1740 | 1714 | ||
1715 | /** | ||
1716 | * dev_queue_xmit - transmit a buffer | ||
1717 | * @skb: buffer to transmit | ||
1718 | * | ||
1719 | * Queue a buffer for transmission to a network device. The caller must | ||
1720 | * have set the device and priority and built the buffer before calling | ||
1721 | * this function. The function can be called from an interrupt. | ||
1722 | * | ||
1723 | * A negative errno code is returned on a failure. A success does not | ||
1724 | * guarantee the frame will be transmitted as it may be dropped due | ||
1725 | * to congestion or traffic shaping. | ||
1726 | * | ||
1727 | * ----------------------------------------------------------------------------------- | ||
1728 | * I notice this method can also return errors from the queue disciplines, | ||
1729 | * including NET_XMIT_DROP, which is a positive value. So, errors can also | ||
1730 | * be positive. | ||
1731 | * | ||
1732 | * Regardless of the return value, the skb is consumed, so it is currently | ||
1733 | * difficult to retry a send to this method. (You can bump the ref count | ||
1734 | * before sending to hold a reference for retry if you are careful.) | ||
1735 | * | ||
1736 | * When calling this method, interrupts MUST be enabled. This is because | ||
1737 | * the BH enable code must have IRQs enabled so that it will not deadlock. | ||
1738 | * --BLG | ||
1739 | */ | ||
1741 | int dev_queue_xmit(struct sk_buff *skb) | 1740 | int dev_queue_xmit(struct sk_buff *skb) |
1742 | { | 1741 | { |
1743 | struct net_device *dev = skb->dev; | 1742 | struct net_device *dev = skb->dev; |