Skip to content
  • Krishna Kumar's avatar
    [NET]: qdisc_restart - couple of optimizations. · e50c41b5
    Krishna Kumar authored
    
    
    Changes :
    
    - netif_queue_stopped need not be called inside qdisc_restart as
      it has been called already in qdisc_run() before the first skb
      is sent, and in __qdisc_run() after each intermediate skb is
      sent (note : we are the only sender, so the queue cannot get
      stopped while the tx lock was got in the ~LLTX case).
    
    - BUG_ON((int) q->q.qlen < 0) was a relic from old times when -1
      meant more packets are available, and __qdisc_run used to loop
      when qdisc_restart() returned -1. During those days, it was
      necessary to make sure that qlen is never less than zero, since
      __qdisc_run would get into an infinite loop if no packets are on
      the queue and this bug in qdisc was there (and worse - no more
      skbs could ever get queue'd as we hold the queue lock too). With
      Herbert's recent change to return values, this check is not
      required.  Hopefully Herbert can validate this change. If at all
      this is required, it should be added to skb_dequeue (in failure
      case), and not to qdisc_qlen.
    
    Signed-off-by: default avatarKrishna Kumar <krkumar2@in.ibm.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    e50c41b5