aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
Diffstat (limited to 'net')
-rw-r--r--net/core/dev.c51
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
1674static u32 simple_tx_hashrnd; 1648static u32 simple_tx_hashrnd;
1675static int simple_tx_hashrnd_initialized = 0; 1649static 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 */
1741int dev_queue_xmit(struct sk_buff *skb) 1740int dev_queue_xmit(struct sk_buff *skb)
1742{ 1741{
1743 struct net_device *dev = skb->dev; 1742 struct net_device *dev = skb->dev;