be2net: replace udelay() with schedule_timeout() in mbox polling
As mbox polling is done only in process context, it is better to use schedule_timeout() instead of udelay(). Signed-off-by: Sathya Perla <sathyap@serverengines.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
889cd4b2e5
Коммит
f25b03a7bd
|
@ -186,7 +186,7 @@ static int be_mcc_notify_wait(struct be_adapter *adapter)
|
|||
|
||||
static int be_mbox_db_ready_wait(struct be_adapter *adapter, void __iomem *db)
|
||||
{
|
||||
int cnt = 0, wait = 5;
|
||||
int msecs = 0;
|
||||
u32 ready;
|
||||
|
||||
do {
|
||||
|
@ -201,15 +201,14 @@ static int be_mbox_db_ready_wait(struct be_adapter *adapter, void __iomem *db)
|
|||
if (ready)
|
||||
break;
|
||||
|
||||
if (cnt > 4000000) {
|
||||
if (msecs > 4000) {
|
||||
dev_err(&adapter->pdev->dev, "mbox poll timed out\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (cnt > 50)
|
||||
wait = 200;
|
||||
cnt += wait;
|
||||
udelay(wait);
|
||||
set_current_state(TASK_INTERRUPTIBLE);
|
||||
schedule_timeout(msecs_to_jiffies(1));
|
||||
msecs++;
|
||||
} while (true);
|
||||
|
||||
return 0;
|
||||
|
|
Загрузка…
Ссылка в новой задаче