• George Anzinger's avatar
    [PATCH] too much timer simplification... · 29c36d50
    George Anzinger authored
    Noted by David Mosberger:
    
     "If someone happens to arm a periodic timer at exactly 256 jiffies (as
      ohci happens to do on platforms with HZ=1024), then you end up getting
      an endless loop of timer activations, causing a machine hang.
    
      The problem is that __run_timers updates base->timer_jiffies _before_
      running the callback routines.  If a callback re-arms the timer at
      exactly 256 jiffies, add_timers() will reinsert the timer into the list
      that we're currently processing, which of course will cause the timer to
      expire immediately again, etc., etc., ad naseum... "
    
    The answer here is to move the whole expired list to a local header and
    to not look back.
    29c36d50
timer.c 30.7 KB