adapter->need_fw_reset = 0;
 
-       /* fall through and release firmware */
+       qlcnic_release_firmware(adapter);
+       return 0;
 
 err_out:
+       QLCWR32(adapter, QLCNIC_CRB_DEV_STATE, QLCNIC_DEV_FAILED);
+       dev_err(&adapter->pdev->dev, "Device state set to failed\n");
        qlcnic_release_firmware(adapter);
        return err;
 }
                goto err_out_iounmap;
 
        err = qlcnic_start_firmware(adapter);
-       if (err)
+       if (err) {
+               dev_err(&pdev->dev, "Loading fw failed.Please Reboot\n");
                goto err_out_decr_ref;
+       }
 
        qlcnic_clear_stats(adapter);
 
                break;
 
        case QLCNIC_DEV_FAILED:
+               dev_err(&adapter->pdev->dev, "Device in failed state.\n");
                qlcnic_api_unlock(adapter);
                return -1;