|
@@ -10510,16 +10510,18 @@ int set_link_state(struct hfi1_pportdata *ppd, u32 state)
|
|
|
ppd->remote_link_down_reason = 0;
|
|
|
}
|
|
|
|
|
|
- ret1 = set_physical_link_state(dd, PLS_DISABLED);
|
|
|
- if (ret1 != HCMD_SUCCESS) {
|
|
|
- dd_dev_err(dd,
|
|
|
- "Failed to transition to Disabled link state, return 0x%x\n",
|
|
|
- ret1);
|
|
|
- ret = -EINVAL;
|
|
|
- break;
|
|
|
+ if (!dd->dc_shutdown) {
|
|
|
+ ret1 = set_physical_link_state(dd, PLS_DISABLED);
|
|
|
+ if (ret1 != HCMD_SUCCESS) {
|
|
|
+ dd_dev_err(dd,
|
|
|
+ "Failed to transition to Disabled link state, return 0x%x\n",
|
|
|
+ ret1);
|
|
|
+ ret = -EINVAL;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ dc_shutdown(dd);
|
|
|
}
|
|
|
ppd->host_link_state = HLS_DN_DISABLE;
|
|
|
- dc_shutdown(dd);
|
|
|
break;
|
|
|
case HLS_DN_OFFLINE:
|
|
|
if (ppd->host_link_state == HLS_DN_DISABLE)
|