diff options
| author | Dan Carpenter <dan.carpenter@oracle.com> | 2015-12-15 13:12:29 +0300 |
|---|---|---|
| committer | Luis Henriques <luis.henriques@canonical.com> | 2016-01-25 10:43:50 +0000 |
| commit | df3f4f7cb4f412941f6cfe96295ca85a965e04ee (patch) | |
| tree | 15ca7b228f9e921edebc91e6736b614557583932 | |
| parent | 504507b13779118a9cd10787c1822f861d32b269 (diff) | |
amd-xgbe: fix a couple timeout loops
commit c7557e6a56510ff6636d40ad4ff64a3ef7d9e197 upstream.
At the end of the loop we test "if (!count)" but because "count--" is
a post-op then the loop will end with count set to -1. I have fixed
this by changing it to --count.
Fixes: c5aa9e3b8156 ('amd-xgbe: Initial AMD 10GbE platform driver')
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
| -rw-r--r-- | drivers/net/ethernet/amd/xgbe/xgbe-dev.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-dev.c b/drivers/net/ethernet/amd/xgbe/xgbe-dev.c index 002293b0819d..7038ff66807b 100644 --- a/drivers/net/ethernet/amd/xgbe/xgbe-dev.c +++ b/drivers/net/ethernet/amd/xgbe/xgbe-dev.c @@ -1296,7 +1296,7 @@ static int xgbe_exit(struct xgbe_prv_data *pdata) usleep_range(10, 15); /* Poll Until Poll Condition */ - while (count-- && XGMAC_IOREAD_BITS(pdata, DMA_MR, SWR)) + while (--count && XGMAC_IOREAD_BITS(pdata, DMA_MR, SWR)) usleep_range(500, 600); if (!count) @@ -1317,7 +1317,7 @@ static int xgbe_flush_tx_queues(struct xgbe_prv_data *pdata) /* Poll Until Poll Condition */ for (i = 0; i < pdata->hw_feat.tx_q_cnt; i++) { count = 2000; - while (count-- && XGMAC_MTL_IOREAD_BITS(pdata, i, + while (--count && XGMAC_MTL_IOREAD_BITS(pdata, i, MTL_Q_TQOMR, FTQ)) usleep_range(500, 600); |
