Skip to content

Commit

Permalink
ibmvnic: Process crqs after enabling interrupts
Browse files Browse the repository at this point in the history
Soon after registering a CRQ it is possible that we get a fail over or
maybe a CRQ_INIT from the VIOS while interrupts were disabled.

Look for any such CRQs after enabling interrupts.

Otherwise we can intermittently fail to bring up ibmvnic adapters during
boot, specially in kexec/kdump kernels.

Fixes: 032c5e8 ("Driver for IBM System i/p VNIC protocol")
Reported-by: Vaishnavi Bhat <[email protected]>
Signed-off-by: Sukadev Bhattiprolu <[email protected]>
Reviewed-by: Dany Madden <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
  • Loading branch information
sukadev authored and davem330 committed Nov 1, 2021
1 parent 8878e46 commit 6e20d00
Showing 1 changed file with 3 additions and 0 deletions.
3 changes: 3 additions & 0 deletions drivers/net/ethernet/ibm/ibmvnic.c
Original file line number Diff line number Diff line change
Expand Up @@ -5412,6 +5412,9 @@ static int init_crq_queue(struct ibmvnic_adapter *adapter)
crq->cur = 0;
spin_lock_init(&crq->lock);

/* process any CRQs that were queued before we enabled interrupts */
tasklet_schedule(&adapter->tasklet);

return retrc;

req_irq_failed:
Expand Down

0 comments on commit 6e20d00

Please sign in to comment.