Skip to content
  • 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