1. 06 Aug, 2008 2 commits
    • Robert Olsson's avatar
      pktgen: random flow · 1211a645
      Robert Olsson authored
      Random flow generation has not worked. This fixes it.
      Signed-off-by: default avatarRobert Olsson <robert.olsson@its.uu.se>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1211a645
    • Stephen Hemminger's avatar
      bridge: Eliminate unnecessary forward delay · ef647f13
      Stephen Hemminger authored
      From: Stephen Hemminger <shemminger@vyatta.com>
      
      Based upon original patch by Herbert Xu, which contained
      the following problem description:
      
      --------------------
      When the forward delay is set to zero, we still delay the setting
      of the forwarding state by one or possibly two timers depending
      on whether STP is enabled.  This could either turn out to be
      instantaneous, or horribly slow depending on the load of the
      machine.
      
      As there is nothing preventing us from enabling forwarding straight
      away, this patch eliminates this potential delay by executing the
      code directly if the forward delay is zero.
      
      The effect of this problem is that immediately after the carrier
      comes on a port, the bridge will drop all packets received from
      that port until it enters forwarding mode, thus causing unnecessary
      packet loss.
      
      Note that this patch doesn't fully remove the delay due to the
      link watcher.  We should also check the carrier state when we
      are about to drop an incoming packet because the port is disabled.
      But that's for another patch.
      --------------------
      
      This version of the fix takes a different approach, in that
      it just does the state change directly.
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ef647f13
  2. 05 Aug, 2008 7 commits
    • David S. Miller's avatar
    • Rami Rosen's avatar
      bridge: fix compile warning in net/bridge/br_netfilter.c · ad619800
      Rami Rosen authored
      This patch fixes the following warning due to incompatible pointer
      assignment:
      
      net/bridge/br_netfilter.c: In function 'br_netfilter_rtable_init':
      net/bridge/br_netfilter.c:116: warning: assignment from incompatible
      pointer type
      
      This warning is due to commit 4adf0af6
      from July 30 (send correct MTU value in PMTU (revised)).
      Signed-off-by: default avatarRami Rosen <ramirose@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ad619800
    • Rami Rosen's avatar
      ipv4: remove unused field in struct flowi (include/net/flow.h). · 95c3e8bf
      Rami Rosen authored
      This patch removes an unused field (flags) from struct flowi; it seems
      that this "flags" field was used once in the past for multipath
      routing with FLOWI_FLAG_MULTIPATHOLDROUTE flag (which does no longer
      exist); however, the "flags" field of struct flowi is not used
      anymore.
      Signed-off-by: default avatarRami Rosen <ramirose@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      95c3e8bf
    • 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
  3. 04 Aug, 2008 31 commits