• Ashutosh Dixit's avatar
    misc: mic: Fix crash when MIC reset is invoked in RESET_FAILED state · f38e87e8
    Ashutosh Dixit authored
    This patch fixes the following crash seen when MIC reset is invoked in
    RESET_FAILED state due to device_del being called a second time on an
    already deleted device:
    
    [<ffffffff813b2295>] device_del+0x45/0x1d0
    [<ffffffff813b243e>] device_unregister+0x1e/0x60
    [<ffffffffa040f1c2>] scif_unregister_device+0x12/0x20 [scif_bus]
    [<ffffffffa042f75a>] cosm_stop+0xaa/0xe0 [mic_cosm]
    [<ffffffffa042f844>] cosm_reset_trigger_work+0x14/0x20 [mic_cosm]
    
    The fix consists in realizing that because cosm_reset changes the
    state to MIC_RESETTING, cosm_stop needs the previous state, before it
    changed to MIC_RESETTING, to decide whether a hw_ops->stop had
    previously been issued. This is now provided in a new cosm_device
    member cdev->prev_state.
    Reviewed-by: default avatarSudeep Dutt <sudeep.dutt@intel.com>
    Signed-off-by: default avatarAshutosh Dixit <ashutosh.dixit@intel.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    f38e87e8
cosm_main.c 9.62 KB