1. 08 8月, 2005 12 次提交
  2. 07 8月, 2005 8 次提交
  3. 06 8月, 2005 13 次提交
  4. 05 8月, 2005 7 次提交
    • L
      a866a5f4
    • L
    • P
      [PATCH] rtc: msleep() cannot be used from interrupt · 403fe5ae
      Petr Vandrovec 提交于
      Since the beginning of July my Opteron box was randomly crashing and
      being rebooted by hardware watchdog.  Today it finally did it in front
      of me, and this patch will hopefully fix it.
      
      The problem is that at the end of June (the 28th, to be exact: commit
      47f176fd, "[PATCH] Using msleep()
      instead of HZ") rtc_get_rtc_time was converted to use msleep() instead
      of busy waiting.  But rtc_get_rtc_time is used by hpet_rtc_interrupt,
      and scheduling is not allowed during interrupt.  So I'm reverting this
      part of original change, replacing msleep() back with busy loop.
      
      The original code was busy waiting for up to 20ms, but on my hardware in
      the worst case update-in-progress bit was asserted for at most 363
      passes through loop (on 2GHz dual Opteron), much less than even one
      jiffie, not even talking about 20ms.  So I changed code to just wait
      only as long as necessary.  Otherwise when RTC was set to generate
      8192Hz timer, it stopped doing anything for 20ms (160 pulses were
      skipped!) from time to time, and this is rather suboptimal as far as I
      can tell.
      Signed-off-by: NPetr Vandrovec <vandrove@vc.cvut.cz>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      403fe5ae
    • D
      [IPV4]: Fix memory leak during fib_info hash expansion. · b7656e7f
      David S. Miller 提交于
      When we grow the tables, we forget to free the olds ones
      up.
      
      Noticed by Yan Zheng.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      b7656e7f
    • S
      [PATCH] __vm_enough_memory() signedness fix · 2f60f8d3
      Simon Derr 提交于
      We have found what seems to be a small bug in __vm_enough_memory() when
      sysctl_overcommit_memory is set to OVERCOMMIT_NEVER.
      
      When this bug occurs the systems fails to boot, with /sbin/init whining
      about fork() returning ENOMEM.
      
      We hunted down the problem to this:
      
      The deferred update mecanism used in vm_acct_memory(), on a SMP system,
      allows the vm_committed_space counter to have a negative value.
      
      This should not be a problem since this counter is known to be inaccurate.
      
      But in __vm_enough_memory() this counter is compared to the `allowed'
      variable, which is an unsigned long.  This comparison is broken since it
      will consider the negative values of vm_committed_space to be huge positive
      values, resulting in a memory allocation failure.
      
      Signed-off-by: <Jean-Marc.Saffroy@ext.bull.net>
      Signed-off-by: <Simon.Derr@bull.net>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      2f60f8d3
    • H
      [PATCH] tcp: fix TSO cwnd caching bug · b68e9f85
      Herbert Xu 提交于
      tcp_write_xmit caches the cwnd value indirectly in cwnd_quota.  When
      tcp_transmit_skb reduces the cwnd because of tcp_enter_cwr, the cached
      value becomes invalid.
      
      This patch ensures that the cwnd value is always reread after each
      tcp_transmit_skb call.
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      Cc: "David S. Miller" <davem@davemloft.net>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      b68e9f85
    • D
      [PATCH] tcp: fix TSO sizing bugs · 846998ae
      David S. Miller 提交于
      MSS changes can be lost since we preemptively initialize the tso_segs count
      for an SKB before we %100 commit to sending it out.
      
      So, by the time we send it out, the tso_size information can be stale due
      to PMTU events.  This mucks up all of the logic in our send engine, and can
      even result in the BUG() triggering in tcp_tso_should_defer().
      
      Another problem we have is that we're storing the tp->mss_cache, not the
      SACK block normalized MSS, as the tso_size.  That's wrong too.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      Cc: Herbert Xu <herbert@gondor.apana.org.au>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      846998ae