}
 
 /* VF -> PF mailbox communication */
-
 static void nicvf_write_to_mbx(struct nicvf *nic, union nic_mbx *mbx)
 {
        u64 *msg = (u64 *)mbx;
 */
 static int nicvf_check_pf_ready(struct nicvf *nic)
 {
-       int timeout = 5000, sleep = 20;
        union nic_mbx mbx = {};
 
        mbx.msg.msg = NIC_MBOX_MSG_READY;
-
-       nic->pf_ready_to_rcv_msg = false;
-
-       nicvf_write_to_mbx(nic, &mbx);
-
-       while (!nic->pf_ready_to_rcv_msg) {
-               msleep(sleep);
-               if (nic->pf_ready_to_rcv_msg)
-                       break;
-               timeout -= sleep;
-               if (!timeout) {
-                       netdev_err(nic->netdev,
-                                  "PF didn't respond to READY msg\n");
-                       return 0;
-               }
+       if (nicvf_send_msg_to_pf(nic, &mbx)) {
+               netdev_err(nic->netdev,
+                          "PF didn't respond to READY msg\n");
+               return 0;
        }
+
        return 1;
 }
 
        netdev_dbg(nic->netdev, "Mbox message: msg: 0x%x\n", mbx.msg.msg);
        switch (mbx.msg.msg) {
        case NIC_MBOX_MSG_READY:
-               nic->pf_ready_to_rcv_msg = true;
+               nic->pf_acked = true;
                nic->vf_id = mbx.nic_cfg.vf_id & 0x7F;
                nic->tns_mode = mbx.nic_cfg.tns_mode & 0x7F;
                nic->node = mbx.nic_cfg.node_id;
        case NIC_MBOX_MSG_BGX_STATS:
                nicvf_read_bgx_stats(nic, &mbx.bgx_stats);
                nic->pf_acked = true;
-               nic->bgx_stats_acked = true;
                break;
        case NIC_MBOX_MSG_BGX_LINK_CHANGE:
                nic->pf_acked = true;
 {
        int stat = 0;
        union nic_mbx mbx = {};
-       int timeout;
 
        if (!netif_running(nic->netdev))
                return;
        /* Rx stats */
        mbx.bgx_stats.rx = 1;
        while (stat < BGX_RX_STATS_COUNT) {
-               nic->bgx_stats_acked = 0;
                mbx.bgx_stats.idx = stat;
-               nicvf_send_msg_to_pf(nic, &mbx);
-               timeout = 0;
-               while ((!nic->bgx_stats_acked) && (timeout < 10)) {
-                       msleep(2);
-                       timeout++;
-               }
+               if (nicvf_send_msg_to_pf(nic, &mbx))
+                       return;
                stat++;
        }
 
        /* Tx stats */
        mbx.bgx_stats.rx = 0;
        while (stat < BGX_TX_STATS_COUNT) {
-               nic->bgx_stats_acked = 0;
                mbx.bgx_stats.idx = stat;
-               nicvf_send_msg_to_pf(nic, &mbx);
-               timeout = 0;
-               while ((!nic->bgx_stats_acked) && (timeout < 10)) {
-                       msleep(2);
-                       timeout++;
-               }
+               if (nicvf_send_msg_to_pf(nic, &mbx))
+                       return;
                stat++;
        }
 }