* |                              |                    | 0x302d,0x3033  |
  * |                              |                    | 0x3036,0x3038  |
  * |                              |                    | 0x303a                |
- * | DPC Thread                   |       0x4022       | 0x4002,0x4013  |
+ * | DPC Thread                   |       0x4023       | 0x4002,0x4013  |
  * | Async Events                 |       0x5087       | 0x502b-0x502f  |
  * |                              |                    | 0x5047,0x5052  |
  * |                              |                    | 0x5084,0x5075 |
 
 #define FX00_RESET_RECOVERY    23
 #define FX00_TARGET_SCAN       24
 #define FX00_CRITEMP_RECOVERY  25
+#define FX00_HOST_INFO_RESEND  26
 
        uint32_t        device_flags;
 #define SWITCH_FOUND           BIT_0
 
                        ha->mr.fw_critemp_timer_tick--;
                }
        }
+       if (ha->mr.host_info_resend) {
+               /*
+                * Incomplete host info might be sent to firmware
+                * durinng system boot - info should be resend
+                */
+               if (ha->mr.hinfo_resend_timer_tick == 0) {
+                       ha->mr.host_info_resend = false;
+                       set_bit(FX00_HOST_INFO_RESEND, &vha->dpc_flags);
+                       ha->mr.hinfo_resend_timer_tick =
+                           QLAFX00_HINFO_RESEND_INTERVAL;
+                       qla2xxx_wake_dpc(vha);
+               } else {
+                       ha->mr.hinfo_resend_timer_tick--;
+               }
+       }
+
 }
 
 /*
                            p_sysid->sysname, SYSNAME_LENGTH);
                        strncpy(phost_info->nodename,
                            p_sysid->nodename, NODENAME_LENGTH);
+                       if (!strcmp(phost_info->nodename, "(none)"))
+                               ha->mr.host_info_resend = true;
                        strncpy(phost_info->release,
                            p_sysid->release, RELEASE_LENGTH);
                        strncpy(phost_info->version,
 
        uint32_t old_aenmbx0_state;
        uint32_t critical_temperature;
        bool extended_io_enabled;
+       bool host_info_resend;
+       uint8_t hinfo_resend_timer_tick;
 };
 
 #define QLAFX00_EXTENDED_IO_EN_MASK    0x20
 #define QLAFX00_RESET_INTERVAL         120     /* number of seconds */
 #define QLAFX00_MAX_RESET_INTERVAL     600     /* number of seconds */
 #define QLAFX00_CRITEMP_INTERVAL       60      /* number of seconds */
+#define QLAFX00_HINFO_RESEND_INTERVAL  60      /* number of seconds */
 
 #define QLAFX00_CRITEMP_THRSHLD                80      /* Celsius degrees */
 
 
                ha->mr.fw_reset_timer_tick = QLAFX00_RESET_INTERVAL;
                ha->mr.fw_critemp_timer_tick = QLAFX00_CRITEMP_INTERVAL;
                ha->mr.fw_hbt_en = 1;
+               ha->mr.host_info_resend = false;
+               ha->mr.hinfo_resend_timer_tick = QLAFX00_HINFO_RESEND_INTERVAL;
        }
 
        ql_dbg_pci(ql_dbg_init, pdev, 0x001e,
                                ql_dbg(ql_dbg_dpc, base_vha, 0x401f,
                                    "ISPFx00 Target Scan End\n");
                        }
+                       if (test_and_clear_bit(FX00_HOST_INFO_RESEND,
+                               &base_vha->dpc_flags)) {
+                               ql_dbg(ql_dbg_dpc, base_vha, 0x4023,
+                                   "ISPFx00 Host Info resend scheduled\n");
+                               qlafx00_fx_disc(base_vha,
+                                   &base_vha->hw->mr.fcport,
+                                   FXDISC_REG_HOST_INFO);
+                       }
                }
 
                if (test_and_clear_bit(ISP_ABORT_NEEDED,