if (ret)
                return ret;
 
+       INIT_WORK(&oct->tx_timeout_task, octep_tx_timeout_task);
+       INIT_WORK(&oct->ctrl_mbox_task, octep_ctrl_mbox_task);
+       INIT_DELAYED_WORK(&oct->intr_poll_task, octep_intr_poll_task);
+       oct->poll_non_ioq_intr = true;
+       queue_delayed_work(octep_wq, &oct->intr_poll_task,
+                          msecs_to_jiffies(OCTEP_INTR_POLL_TIME_MSECS));
+
        atomic_set(&oct->hb_miss_cnt, 0);
        INIT_DELAYED_WORK(&oct->hb_task, octep_hb_timeout_task);
 
                goto err_octep_config;
        }
 
-       octep_ctrl_net_get_info(octep_dev, OCTEP_CTRL_NET_INVALID_VFID,
-                               &octep_dev->conf->fw_info);
+       err = octep_ctrl_net_get_info(octep_dev, OCTEP_CTRL_NET_INVALID_VFID,
+                                     &octep_dev->conf->fw_info);
+       if (err) {
+               dev_err(&pdev->dev, "Failed to get firmware info\n");
+               goto register_dev_err;
+       }
        dev_info(&octep_dev->pdev->dev, "Heartbeat interval %u msecs Heartbeat miss count %u\n",
                 octep_dev->conf->fw_info.hb_interval,
                 octep_dev->conf->fw_info.hb_miss_count);
        queue_delayed_work(octep_wq, &octep_dev->hb_task,
                           msecs_to_jiffies(octep_dev->conf->fw_info.hb_interval));
 
-       INIT_WORK(&octep_dev->tx_timeout_task, octep_tx_timeout_task);
-       INIT_WORK(&octep_dev->ctrl_mbox_task, octep_ctrl_mbox_task);
-       INIT_DELAYED_WORK(&octep_dev->intr_poll_task, octep_intr_poll_task);
-       octep_dev->poll_non_ioq_intr = true;
-       queue_delayed_work(octep_wq, &octep_dev->intr_poll_task,
-                          msecs_to_jiffies(OCTEP_INTR_POLL_TIME_MSECS));
-
        netdev->netdev_ops = &octep_netdev_ops;
        octep_set_ethtool_ops(netdev);
        netif_carrier_off(netdev);