diff options
author | Ben Greear <greearb@candelatech.com> | 2005-04-24 20:12:36 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2005-04-24 20:12:36 -0700 |
commit | af191367a752625b9f05a25a9a76c727b9b17cab (patch) | |
tree | 3f4ad2da9cb293f4ab0f8c25899b23ed0fd18e3f /net/core | |
parent | db7530797992bb2be703f9f3cc69b1a578f812f8 (diff) |
[NET]: Document ->hard_start_xmit() locking in comments.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/core')
-rw-r--r-- | net/core/dev.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/net/core/dev.c b/net/core/dev.c index 42344d903692..7bd4cd4502c4 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -1214,6 +1214,19 @@ int __skb_linearize(struct sk_buff *skb, int gfp_mask) * A negative errno code is returned on a failure. A success does not * guarantee the frame will be transmitted as it may be dropped due * to congestion or traffic shaping. + * + * ----------------------------------------------------------------------------------- + * I notice this method can also return errors from the queue disciplines, + * including NET_XMIT_DROP, which is a positive value. So, errors can also + * be positive. + * + * Regardless of the return value, the skb is consumed, so it is currently + * difficult to retry a send to this method. (You can bump the ref count + * before sending to hold a reference for retry if you are careful.) + * + * When calling this method, interrupts MUST be enabled. This is because + * the BH enable code must have IRQs enabled so that it will not deadlock. + * --BLG */ int dev_queue_xmit(struct sk_buff *skb) |