• Chuck Ebbert's avatar
    [WATCHDOG] softdog-timer-running-oops.patch · 1cc77248
    Chuck Ebbert authored
    The softdog watchdog timer has a bug that can create an oops:
    
    1.  Load the module without the nowayout option.
    2.  Open the driver and close it without writing 'V' before close.
    3.  Unload the module.  The timer will continue to run...
    4.  Oops happens when timer fires.
    
    Reported Sun, 10 Oct 2004, by Michael Schierl <schierlm@gmx.de>
    
    Fix is easy: always take a reference on the module on open.
    Release it only when the device is closed and no timer is running.
    Tested on 2.6.13-rc6 using the soft_noboot option.  While the
    timer is running and the device is closed, the module use count
    stays at 1.  After the timer fires, it drops to 0.  Repeatedly
    opening and closing the driver caused no problems.  Please apply.
    Signed-off-by: default avatarChuck Ebbert <76306.1226@compuserve.com>
    Signed-off-by: default avatarWim Van Sebroeck <wim@iguana.be>
    1cc77248
softdog.c 7.17 KB