Commit 2abad79a authored by Andy Shevchenko's avatar Andy Shevchenko Committed by David S. Miller

qla3xxx: don't allow never end busy loop

The counter variable wasn't increased at all which may stuck under
certain circumstances.
Signed-off-by: default avatarAndy Shevchenko <andy.shevchenko@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 627d2cc0
...@@ -146,10 +146,7 @@ static int ql_wait_for_drvr_lock(struct ql3_adapter *qdev) ...@@ -146,10 +146,7 @@ static int ql_wait_for_drvr_lock(struct ql3_adapter *qdev)
{ {
int i = 0; int i = 0;
while (i < 10) { do {
if (i)
ssleep(1);
if (ql_sem_lock(qdev, if (ql_sem_lock(qdev,
QL_DRVR_SEM_MASK, QL_DRVR_SEM_MASK,
(QL_RESOURCE_BITS_BASE_CODE | (qdev->mac_index) (QL_RESOURCE_BITS_BASE_CODE | (qdev->mac_index)
...@@ -158,7 +155,8 @@ static int ql_wait_for_drvr_lock(struct ql3_adapter *qdev) ...@@ -158,7 +155,8 @@ static int ql_wait_for_drvr_lock(struct ql3_adapter *qdev)
"driver lock acquired\n"); "driver lock acquired\n");
return 1; return 1;
} }
} ssleep(1);
} while (++i < 10);
netdev_err(qdev->ndev, "Timed out waiting for driver lock...\n"); netdev_err(qdev->ndev, "Timed out waiting for driver lock...\n");
return 0; return 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment