1. 07 Jan, 2009 39 commits
  2. 06 Jan, 2009 1 commit
    • Michael Buesch's avatar
      parport: ieee1284: use del_timer_sync() in parport_wait_event() · f59abb16
      Michael Buesch authored
      Use del_timer_sync() instead of del_timer() to make sure the timer won't
      be running when we return from parport_wait_event(), because this would
      crash due to destruction of timer_list.
      
      This is untested and just based on a code review.  Just think about the
      following sequence of events:
      
      - add_timer()
      
      - down_interruptible() is interrupted by a signal.
      
      - we enter the timer callback handler on another CPU.
      
      - del_timer(), but the timer callback is still running.
      
      - eturn from parport_wait_even, which destroys the automatic variable
        "timer" while the callback is running on another CPU.
      
      [akpm@linux-foundation.org: coding-style fixes]
      Signed-off-by: default avatarMichael Buesch <mb@bu3sch.de>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      f59abb16