|
@@ -125,6 +125,7 @@ static const u16 bnxt_async_events_arr[] = {
|
|
|
HWRM_ASYNC_EVENT_CMPL_EVENT_ID_LINK_STATUS_CHANGE,
|
|
|
HWRM_ASYNC_EVENT_CMPL_EVENT_ID_PF_DRVR_UNLOAD,
|
|
|
HWRM_ASYNC_EVENT_CMPL_EVENT_ID_PORT_CONN_NOT_ALLOWED,
|
|
|
+ HWRM_ASYNC_EVENT_CMPL_EVENT_ID_VF_CFG_CHANGE,
|
|
|
HWRM_ASYNC_EVENT_CMPL_EVENT_ID_LINK_SPEED_CFG_CHANGE,
|
|
|
};
|
|
|
|
|
@@ -1358,6 +1359,11 @@ static int bnxt_async_event_process(struct bnxt *bp,
|
|
|
set_bit(BNXT_HWRM_PORT_MODULE_SP_EVENT, &bp->sp_event);
|
|
|
break;
|
|
|
}
|
|
|
+ case HWRM_ASYNC_EVENT_CMPL_EVENT_ID_VF_CFG_CHANGE:
|
|
|
+ if (BNXT_PF(bp))
|
|
|
+ goto async_event_process_exit;
|
|
|
+ set_bit(BNXT_RESET_TASK_SILENT_SP_EVENT, &bp->sp_event);
|
|
|
+ break;
|
|
|
default:
|
|
|
netdev_err(bp->dev, "unhandled ASYNC event (id 0x%x)\n",
|
|
|
event_id);
|
|
@@ -5738,6 +5744,9 @@ static void bnxt_sp_task(struct work_struct *work)
|
|
|
if (test_and_clear_bit(BNXT_RESET_TASK_SP_EVENT, &bp->sp_event))
|
|
|
bnxt_reset(bp, false);
|
|
|
|
|
|
+ if (test_and_clear_bit(BNXT_RESET_TASK_SILENT_SP_EVENT, &bp->sp_event))
|
|
|
+ bnxt_reset(bp, true);
|
|
|
+
|
|
|
if (test_and_clear_bit(BNXT_HWRM_PORT_MODULE_SP_EVENT, &bp->sp_event))
|
|
|
bnxt_get_port_module_status(bp);
|
|
|
|