net: thunderx: Reduce mbox wait response time.
authorGeetha sowjanya <gakula@marvell.com>
Mon, 2 Mar 2020 09:59:01 +0000 (15:29 +0530)
committerDavid S. Miller <davem@davemloft.net>
Mon, 2 Mar 2020 19:13:58 +0000 (11:13 -0800)
Replace msleep() with usleep_range() as internally it uses hrtimers.
This will put a cap on maximum wait time.

Signed-off-by: Geetha sowjanya <gakula@marvell.com>
Signed-off-by: Sunil Goutham <sgoutham@marvell.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/cavium/thunder/nicvf_main.c

index 0169572..b4b3336 100644 (file)
@@ -126,8 +126,7 @@ static void nicvf_write_to_mbx(struct nicvf *nic, union nic_mbx *mbx)
 
 int nicvf_send_msg_to_pf(struct nicvf *nic, union nic_mbx *mbx)
 {
-       int timeout = NIC_MBOX_MSG_TIMEOUT;
-       int sleep = 10;
+       unsigned long timeout;
        int ret = 0;
 
        mutex_lock(&nic->rx_mode_mtx);
@@ -137,6 +136,7 @@ int nicvf_send_msg_to_pf(struct nicvf *nic, union nic_mbx *mbx)
 
        nicvf_write_to_mbx(nic, mbx);
 
+       timeout = jiffies + msecs_to_jiffies(NIC_MBOX_MSG_TIMEOUT);
        /* Wait for previous message to be acked, timeout 2sec */
        while (!nic->pf_acked) {
                if (nic->pf_nacked) {
@@ -146,11 +146,10 @@ int nicvf_send_msg_to_pf(struct nicvf *nic, union nic_mbx *mbx)
                        ret = -EINVAL;
                        break;
                }
-               msleep(sleep);
+               usleep_range(8000, 10000);
                if (nic->pf_acked)
                        break;
-               timeout -= sleep;
-               if (!timeout) {
+               if (time_after(jiffies, timeout)) {
                        netdev_err(nic->netdev,
                                   "PF didn't ACK to mbox msg 0x%02x from VF%d\n",
                                   (mbx->msg.msg & 0xFF), nic->vf_id);