Skip to content

Commit 017892c

Browse files
jallen93davem330
authored andcommitted
ibmvnic: Handle failover after failed init crq
Handle case where phyp sends a failover after failing to send the init crq. Signed-off-by: John Allen <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent d944c3d commit 017892c

File tree

2 files changed

+11
-2
lines changed

2 files changed

+11
-2
lines changed

drivers/net/ethernet/ibm/ibmvnic.c

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3167,6 +3167,8 @@ static void ibmvnic_handle_crq(union ibmvnic_crq *crq,
31673167
switch (gen_crq->cmd) {
31683168
case IBMVNIC_CRQ_INIT:
31693169
dev_info(dev, "Partner initialized\n");
3170+
adapter->from_passive_init = true;
3171+
complete(&adapter->init_done);
31703172
break;
31713173
case IBMVNIC_CRQ_INIT_COMPLETE:
31723174
dev_info(dev, "Partner initialization complete\n");
@@ -3481,11 +3483,18 @@ static int ibmvnic_init(struct ibmvnic_adapter *adapter)
34813483
return rc;
34823484
}
34833485

3486+
adapter->from_passive_init = false;
3487+
34843488
init_completion(&adapter->init_done);
34853489
ibmvnic_send_crq_init(adapter);
34863490
if (!wait_for_completion_timeout(&adapter->init_done, timeout)) {
34873491
dev_err(dev, "Initialization sequence timed out\n");
3488-
release_crq_queue(adapter);
3492+
return -1;
3493+
}
3494+
3495+
if (adapter->from_passive_init) {
3496+
adapter->state = VNIC_OPEN;
3497+
adapter->from_passive_init = false;
34893498
return -1;
34903499
}
34913500

drivers/net/ethernet/ibm/ibmvnic.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1031,5 +1031,5 @@ struct ibmvnic_adapter {
10311031
struct list_head rwi_list;
10321032
struct work_struct ibmvnic_reset;
10331033
bool resetting;
1034-
bool napi_enabled;
1034+
bool napi_enabled, from_passive_init;
10351035
};

0 commit comments

Comments
 (0)