• A
    e1000: rework driver hardware reset locking · 2db10a08
    Auke Kok 提交于
    After studying the driver mac reset code it was found that there
    were multiple race conditions possible to reset the unit twice or
    bring it e1000_up() double. This fixes all occurences where the
    driver needs to reset the mac.
    
    We also remove irq requesting/releasing into _open and _close so
    that while the device is _up we will never touch the irq's. This fixes
    the double free irq bug that people saw.
    
    To make sure that the watchdog task doesn't cause another race we let
    it run as a non-scheduled task.
    Signed-off-by: NJesse Brandeburg <jesse.brandeburg@intel.com>
    Signed-off-by: NAuke Kok <auke-jan.h.kok@intel.com>
    2db10a08
e1000_main.c 131.9 KB