|
@@ -1037,6 +1037,7 @@ static void dc_shutdown(struct hfi1_devdata *);
|
|
|
static void dc_start(struct hfi1_devdata *);
|
|
|
static int qos_rmt_entries(struct hfi1_devdata *dd, unsigned int *mp,
|
|
|
unsigned int *np);
|
|
|
+static void remove_full_mgmt_pkey(struct hfi1_pportdata *ppd);
|
|
|
|
|
|
/*
|
|
|
* Error interrupt table entry. This is used as input to the interrupt
|
|
@@ -6961,6 +6962,8 @@ void handle_link_down(struct work_struct *work)
|
|
|
}
|
|
|
|
|
|
reset_neighbor_info(ppd);
|
|
|
+ if (ppd->mgmt_allowed)
|
|
|
+ remove_full_mgmt_pkey(ppd);
|
|
|
|
|
|
/* disable the port */
|
|
|
clear_rcvctrl(ppd->dd, RCV_CTRL_RCV_PORT_ENABLE_SMASK);
|
|
@@ -7069,6 +7072,12 @@ static void add_full_mgmt_pkey(struct hfi1_pportdata *ppd)
|
|
|
(void)hfi1_set_ib_cfg(ppd, HFI1_IB_CFG_PKEYS, 0);
|
|
|
}
|
|
|
|
|
|
+static void remove_full_mgmt_pkey(struct hfi1_pportdata *ppd)
|
|
|
+{
|
|
|
+ ppd->pkeys[2] = 0;
|
|
|
+ (void)hfi1_set_ib_cfg(ppd, HFI1_IB_CFG_PKEYS, 0);
|
|
|
+}
|
|
|
+
|
|
|
/*
|
|
|
* Convert the given link width to the OPA link width bitmask.
|
|
|
*/
|