Browse Source

[NET]: Document ->hard_start_xmit() locking in comments.

Signed-off-by: David S. Miller <davem@davemloft.net>
Ben Greear 20 years ago
parent
commit
af191367a7
1 changed files with 13 additions and 0 deletions
  1. 13 0
      net/core/dev.c

+ 13 - 0
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
  *	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
  *	guarantee the frame will be transmitted as it may be dropped due
  *	to congestion or traffic shaping.
  *	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)
 int dev_queue_xmit(struct sk_buff *skb)