diff --git a/drivers/net/netxen/netxen_nic_main.c b/drivers/net/netxen/netxen_nic_main.c
index de67e42a29712aae4eb4ce9ec132afe21325600e..008657423f8e009b99db08b9d26fa4e7c5b7b661 100644
--- a/drivers/net/netxen/netxen_nic_main.c
+++ b/drivers/net/netxen/netxen_nic_main.c
@@ -754,8 +754,10 @@ netxen_start_firmware(struct netxen_adapter *adapter, int request_fw)
 		netxen_request_firmware(adapter);
 
 	err = netxen_need_fw_reset(adapter);
-	if (err <= 0)
+	if (err < 0)
 		return err;
+	if (err == 0)
+		goto wait_init;
 
 	if (first_boot != 0x55555555) {
 		NXWR32(adapter, CRB_CMDPEG_STATE, 0);