diff options
Diffstat (limited to 'drivers/message/fusion/mptspi.c')
| -rw-r--r-- | drivers/message/fusion/mptspi.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/message/fusion/mptspi.c b/drivers/message/fusion/mptspi.c index 25bcfcf36f2e..1effca4e40e1 100644 --- a/drivers/message/fusion/mptspi.c +++ b/drivers/message/fusion/mptspi.c | |||
| @@ -1266,13 +1266,18 @@ mptspi_dv_renegotiate(struct _MPT_SCSI_HOST *hd) | |||
| 1266 | static int | 1266 | static int |
| 1267 | mptspi_ioc_reset(MPT_ADAPTER *ioc, int reset_phase) | 1267 | mptspi_ioc_reset(MPT_ADAPTER *ioc, int reset_phase) |
| 1268 | { | 1268 | { |
| 1269 | struct _MPT_SCSI_HOST *hd = shost_priv(ioc->sh); | ||
| 1270 | int rc; | 1269 | int rc; |
| 1271 | 1270 | ||
| 1272 | rc = mptscsih_ioc_reset(ioc, reset_phase); | 1271 | rc = mptscsih_ioc_reset(ioc, reset_phase); |
| 1273 | 1272 | ||
| 1274 | if (reset_phase == MPT_IOC_POST_RESET) | 1273 | /* only try to do a renegotiation if we're properly set up |
| 1274 | * if we get an ioc fault on bringup, ioc->sh will be NULL */ | ||
| 1275 | if (reset_phase == MPT_IOC_POST_RESET && | ||
| 1276 | ioc->sh) { | ||
| 1277 | struct _MPT_SCSI_HOST *hd = shost_priv(ioc->sh); | ||
| 1278 | |||
| 1275 | mptspi_dv_renegotiate(hd); | 1279 | mptspi_dv_renegotiate(hd); |
| 1280 | } | ||
| 1276 | 1281 | ||
| 1277 | return rc; | 1282 | return rc; |
| 1278 | } | 1283 | } |
