icnss: Set crash state for PDR

For PDR, the crashed state should be set to invoke driver's
PDR/SSR routine rather than the remove routine.

CRs-Fixed: 2082279
Change-Id: I5f5d51c530c563d93eeaf183ee10ac558f5d5a1a
Signed-off-by: Sameer Thalappil <sameert@codeaurora.org>
This commit is contained in:
Sameer Thalappil 2017-07-25 13:24:48 -07:00
parent 6a7013d43d
commit ddbc617f58

View file

@ -2518,21 +2518,22 @@ static int icnss_service_notifier_notify(struct notifier_block *nb,
if (event_data == NULL) if (event_data == NULL)
return notifier_from_errno(-ENOMEM); return notifier_from_errno(-ENOMEM);
event_data->crashed = true;
if (state == NULL) { if (state == NULL) {
event_data->crashed = true;
priv->stats.recovery.root_pd_crash++; priv->stats.recovery.root_pd_crash++;
goto event_post; goto event_post;
} }
switch (*state) { switch (*state) {
case ROOT_PD_WDOG_BITE: case ROOT_PD_WDOG_BITE:
event_data->crashed = true;
event_data->wdog_bite = true; event_data->wdog_bite = true;
priv->stats.recovery.root_pd_crash++; priv->stats.recovery.root_pd_crash++;
break; break;
case ROOT_PD_SHUTDOWN: case ROOT_PD_SHUTDOWN:
cause = ICNSS_ROOT_PD_SHUTDOWN; cause = ICNSS_ROOT_PD_SHUTDOWN;
priv->stats.recovery.root_pd_shutdown++; priv->stats.recovery.root_pd_shutdown++;
event_data->crashed = false;
break; break;
case USER_PD_STATE_CHANGE: case USER_PD_STATE_CHANGE:
if (test_bit(ICNSS_HOST_TRIGGERED_PDR, &priv->state)) { if (test_bit(ICNSS_HOST_TRIGGERED_PDR, &priv->state)) {
@ -2544,7 +2545,6 @@ static int icnss_service_notifier_notify(struct notifier_block *nb,
} }
break; break;
default: default:
event_data->crashed = true;
priv->stats.recovery.root_pd_crash++; priv->stats.recovery.root_pd_crash++;
break; break;
} }