1. 05 Aug, 2008 4 commits
    • Matt Carlson's avatar
      tg3: Fix 'scheduling while atomic' errors · 2f751b67
      Matt Carlson authored
      This patch fixes the 'scheduling while atomic' errors introduced by
      commit 12dac075 ("tg3: adapt tg3 to
      use reworked PCI PM code").
      
      The first hunk of the patch removes an unnecessary
      tg3_set_power_state() call.  The chip will already be in the D0 state
      either due to a chip reset or through a previous call to
      tg3_set_power_state().
      
      The second hunk of the patch moves the tg3_set_power_state() call
      outside the critical section guarded by tg3_full_lock() and
      tg3_full_unlock() functions.  The power state of the device is and
      should be outside the lock's domain and all other
      tg3_set_power_state() calls support this.
      Signed-off-by: default avatarMatt Carlson <mcarlson@broadcom.com>
      Signed-off-by: default avatarMichael Chan <mchan@broadcom.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2f751b67
    • David S. Miller's avatar
      net: Kill plain NET_XMIT_BYPASS. · cc6533e9
      David S. Miller authored
      dst_input() was doing something completely absurd, looping
      on skb->dst->input() if NET_XMIT_BYPASS was seen, but these
      functions never return such an error.
      
      And as a result plain ole' NET_XMIT_BYPASS has no more
      references and can be completely killed off.
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      cc6533e9
    • Jarek Poplawski's avatar
      net_sched: Add qdisc __NET_XMIT_BYPASS flag · c27f339a
      Jarek Poplawski authored
      Patrick McHardy <kaber@trash.net> noticed that it would be nice to
      handle NET_XMIT_BYPASS by NET_XMIT_SUCCESS with an internal qdisc flag
      __NET_XMIT_BYPASS and to remove the mapping from dev_queue_xmit().
      
      David Miller <davem@davemloft.net> spotted a serious bug in the first
      version of this patch.
      Signed-off-by: default avatarJarek Poplawski <jarkao2@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c27f339a
    • Jarek Poplawski's avatar
      net_sched: Add qdisc __NET_XMIT_STOLEN flag · 378a2f09
      Jarek Poplawski authored
      Patrick McHardy <kaber@trash.net> noticed:
      "The other problem that affects all qdiscs supporting actions is
      TC_ACT_QUEUED/TC_ACT_STOLEN getting mapped to NET_XMIT_SUCCESS
      even though the packet is not queued, corrupting upper qdiscs'
      qlen counters."
      
      and later explained:
      "The reason why it translates it at all seems to be to not increase
      the drops counter. Within a single qdisc this could be avoided by
      other means easily, upper qdiscs would still increase the counter
      when we return anything besides NET_XMIT_SUCCESS though.
      
      This means we need a new NET_XMIT return value to indicate this to
      the upper qdiscs. So I'd suggest to introduce NET_XMIT_STOLEN,
      return that to upper qdiscs and translate it to NET_XMIT_SUCCESS
      in dev_queue_xmit, similar to NET_XMIT_BYPASS."
      
      David Miller <davem@davemloft.net> noticed:
      "Maybe these NET_XMIT_* values being passed around should be a set of
      bits. They could be composed of base meanings, combined with specific
      attributes.
      
      So you could say "NET_XMIT_DROP | __NET_XMIT_NO_DROP_COUNT"
      
      The attributes get masked out by the top-level ->enqueue() caller,
      such that the base meanings are the only thing that make their
      way up into the stack. If it's only about communication within the
      qdisc tree, let's simply code it that way."
      
      This patch is trying to realize these ideas.
      Signed-off-by: default avatarJarek Poplawski <jarkao2@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      378a2f09
  2. 04 Aug, 2008 5 commits
  3. 03 Aug, 2008 7 commits
  4. 02 Aug, 2008 2 commits
  5. 01 Aug, 2008 22 commits