1. 28 Mar, 2007 3 commits
    • Patrick McHardy's avatar
      [NET_SCHED]: Fix endless loops caused by inaccurate qlen counters · 39740872
      Patrick McHardy authored
      There are multiple problems related to qlen adjustment that can lead
      to an upper qdisc getting out of sync with the real number of packets
      queued, leading to endless dequeueing attempts by the upper layer code.
      
      All qdiscs must maintain an accurate q.qlen counter. There are basically
      two groups of operations affecting the qlen: operations that propagate
      down the tree (enqueue, dequeue, requeue, drop, reset) beginning at the
      root qdisc and operations only affecting a subtree or single qdisc
      (change, graft, delete class). Since qlen changes during operations from
      the second group don't propagate to ancestor qdiscs, their qlen values
      become desynchronized.
      
      This patch adds a function to propagate qlen changes up the qdisc tree,
      optionally calling a callback function to perform qdisc-internal
      maintenance when the child qdisc is deactivated, and converts all
      qdiscs to use this where necessary.
      Signed-off-by: default avatarPatrick McHardy <kaber@trash.net>
      Signed-off-by: default avatarAdrian Bunk <bunk@stusta.de>
      39740872
    • Nick Piggin's avatar
      mm: fix madvise infinine loop · 921e8ebf
      Nick Piggin authored
      madvise(MADV_REMOVE) can go into an infinite loop or cause an oops if the
      call covers a region from the start of a vma, and extending past that vma.
      Signed-off-by: default avatarNick Piggin <npiggin@suse.de>
      Acked-by: default avatarHugh Dickins <hugh@veritas.com>
      Signed-off-by: default avatarAdrian Bunk <bunk@stusta.de>
      921e8ebf
    • Russell King's avatar
      [SERIAL] Fix oops when removing suspended serial port · ef1136fb
      Russell King authored
      A serial card might have been removed when the system is resumed.
      This results in a suspended port being shut down, which results in
      the ports shutdown method being called twice in a row.  This causes
      BUGs.  Avoid this by tracking the suspended state separately from
      the initialised state.
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      Signed-off-by: default avatarAdrian Bunk <bunk@stusta.de>
      ef1136fb
  2. 26 Mar, 2007 8 commits
  3. 25 Mar, 2007 29 commits