|
@@ -2156,15 +2156,17 @@ static void ibmvfc_handle_async(struct ibmvfc_async_crq *crq,
|
|
case IBMVFC_AE_LINK_UP:
|
|
case IBMVFC_AE_LINK_UP:
|
|
case IBMVFC_AE_RESUME:
|
|
case IBMVFC_AE_RESUME:
|
|
vhost->events_to_log |= IBMVFC_AE_LINKUP;
|
|
vhost->events_to_log |= IBMVFC_AE_LINKUP;
|
|
- ibmvfc_init_host(vhost, 1);
|
|
|
|
|
|
+ vhost->delay_init = 1;
|
|
|
|
+ __ibmvfc_reset_host(vhost);
|
|
break;
|
|
break;
|
|
case IBMVFC_AE_SCN_FABRIC:
|
|
case IBMVFC_AE_SCN_FABRIC:
|
|
|
|
+ case IBMVFC_AE_SCN_DOMAIN:
|
|
vhost->events_to_log |= IBMVFC_AE_RSCN;
|
|
vhost->events_to_log |= IBMVFC_AE_RSCN;
|
|
- ibmvfc_init_host(vhost, 1);
|
|
|
|
|
|
+ vhost->delay_init = 1;
|
|
|
|
+ __ibmvfc_reset_host(vhost);
|
|
break;
|
|
break;
|
|
case IBMVFC_AE_SCN_NPORT:
|
|
case IBMVFC_AE_SCN_NPORT:
|
|
case IBMVFC_AE_SCN_GROUP:
|
|
case IBMVFC_AE_SCN_GROUP:
|
|
- case IBMVFC_AE_SCN_DOMAIN:
|
|
|
|
vhost->events_to_log |= IBMVFC_AE_RSCN;
|
|
vhost->events_to_log |= IBMVFC_AE_RSCN;
|
|
case IBMVFC_AE_ELS_LOGO:
|
|
case IBMVFC_AE_ELS_LOGO:
|
|
case IBMVFC_AE_ELS_PRLO:
|
|
case IBMVFC_AE_ELS_PRLO:
|
|
@@ -3619,7 +3621,7 @@ static void ibmvfc_do_work(struct ibmvfc_host *vhost)
|
|
if (vhost->delay_init) {
|
|
if (vhost->delay_init) {
|
|
vhost->delay_init = 0;
|
|
vhost->delay_init = 0;
|
|
spin_unlock_irqrestore(vhost->host->host_lock, flags);
|
|
spin_unlock_irqrestore(vhost->host->host_lock, flags);
|
|
- ssleep(5);
|
|
|
|
|
|
+ ssleep(15);
|
|
return;
|
|
return;
|
|
} else
|
|
} else
|
|
vhost->job_step(vhost);
|
|
vhost->job_step(vhost);
|