| From b2cd55a5c087f10730a2d04b0a05f391be72e0ef Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Fri, 21 Jan 2022 18:59:20 -0800 |
| Subject: ibmvnic: don't spin in tasklet |
| |
| From: Sukadev Bhattiprolu <sukadev@linux.ibm.com> |
| |
| [ Upstream commit 48079e7fdd0269d66b1d7d66ae88bd03162464ad ] |
| |
| ibmvnic_tasklet() continuously spins waiting for responses to all |
| capability requests. It does this to avoid encountering an error |
| during initialization of the vnic. However if there is a bug in the |
| VIOS and we do not receive a response to one or more queries the |
| tasklet ends up spinning continuously leading to hard lock ups. |
| |
| If we fail to receive a message from the VIOS it is reasonable to |
| timeout the login attempt rather than spin indefinitely in the tasklet. |
| |
| Fixes: 249168ad07cd ("ibmvnic: Make CRQ interrupt tasklet wait for all capabilities crqs") |
| Signed-off-by: Sukadev Bhattiprolu <sukadev@linux.ibm.com> |
| Reviewed-by: Dany Madden <drt@linux.ibm.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/net/ethernet/ibm/ibmvnic.c | 6 ------ |
| 1 file changed, 6 deletions(-) |
| |
| diff --git a/drivers/net/ethernet/ibm/ibmvnic.c b/drivers/net/ethernet/ibm/ibmvnic.c |
| index acd488310bbce..682a440151a87 100644 |
| --- a/drivers/net/ethernet/ibm/ibmvnic.c |
| +++ b/drivers/net/ethernet/ibm/ibmvnic.c |
| @@ -5491,12 +5491,6 @@ static void ibmvnic_tasklet(struct tasklet_struct *t) |
| ibmvnic_handle_crq(crq, adapter); |
| crq->generic.first = 0; |
| } |
| - |
| - /* remain in tasklet until all |
| - * capabilities responses are received |
| - */ |
| - if (!adapter->wait_capability) |
| - done = true; |
| } |
| /* if capabilities CRQ's were sent in this tasklet, the following |
| * tasklet must wait until all responses are received |
| -- |
| 2.34.1 |
| |