You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
qlge: Fix occasional loopback test failure.
On some servers we see the cleaning of the RX queue finish before all the loopback packets are sent out. This delay allows the queues to settle before checking for successful completion. Also, delay completion so link has time to come back up. Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
801e9096c5
commit
aa13bd6ef4
@@ -503,7 +503,8 @@ static int ql_run_loopback_test(struct ql_adapter *qdev)
|
||||
return -EPIPE;
|
||||
atomic_inc(&qdev->lb_count);
|
||||
}
|
||||
|
||||
/* Give queue time to settle before testing results. */
|
||||
msleep(2);
|
||||
ql_clean_lb_rx_ring(&qdev->rx_ring[0], 128);
|
||||
return atomic_read(&qdev->lb_count) ? -EIO : 0;
|
||||
}
|
||||
@@ -536,6 +537,10 @@ static void ql_self_test(struct net_device *ndev,
|
||||
data[0] = 0;
|
||||
}
|
||||
clear_bit(QL_SELFTEST, &qdev->flags);
|
||||
/* Give link time to come up after
|
||||
* port configuration changes.
|
||||
*/
|
||||
msleep_interruptible(4 * 1000);
|
||||
} else {
|
||||
netif_err(qdev, drv, qdev->ndev,
|
||||
"is down, Loopback test will fail.\n");
|
||||
|
||||
Reference in New Issue
Block a user