|
@@ -1266,13 +1266,18 @@ mptspi_dv_renegotiate(struct _MPT_SCSI_HOST *hd)
|
|
|
static int
|
|
|
mptspi_ioc_reset(MPT_ADAPTER *ioc, int reset_phase)
|
|
|
{
|
|
|
- struct _MPT_SCSI_HOST *hd = shost_priv(ioc->sh);
|
|
|
int rc;
|
|
|
|
|
|
rc = mptscsih_ioc_reset(ioc, reset_phase);
|
|
|
|
|
|
- if (reset_phase == MPT_IOC_POST_RESET)
|
|
|
+ /* only try to do a renegotiation if we're properly set up
|
|
|
+ * if we get an ioc fault on bringup, ioc->sh will be NULL */
|
|
|
+ if (reset_phase == MPT_IOC_POST_RESET &&
|
|
|
+ ioc->sh) {
|
|
|
+ struct _MPT_SCSI_HOST *hd = shost_priv(ioc->sh);
|
|
|
+
|
|
|
mptspi_dv_renegotiate(hd);
|
|
|
+ }
|
|
|
|
|
|
return rc;
|
|
|
}
|