FAILED: patch "[PATCH] ice: Recognize 860 as iSCSI port in CEE mode" failed to apply to 5.11-stable tree
Subsystems (3)
[email protected]
maintainerThe patch below does not apply to the 5.11-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From aeac8ce864d9c0836e12ed5b5cc80f62f3cccb7c Mon Sep 17 00:00:00 2001
From: Chinh T Cao <[email protected]>
Date: Fri, 26 Feb 2021 13:19:25 -0800
Subject: [PATCH] ice: Recognize 860 as iSCSI port in CEE mode
iSCSI can use both TCP ports 860 and 3260. However, in our current implementation, the ice_aqc_opc_get_cee_dcb_cfg (0x0A07) AQ command doesn't provide a way to communicate the protocol port number to the AQ's caller. Thus, we assume that 3260 is the iSCSI port number at the AQ's caller layer.
Rely on the dcbx-willing mode, desired QoS and remote QoS configuration to determine which port number that iSCSI will use.
drivers/net/ethernet/intel/ice/ice_dcb.c +29 -9
@@ -738,22 +738,27 @@ ice_aq_get_cee_dcb_cfg(struct ice_hw *hw,/** * ice_cee_to_dcb_cfg * @cee_cfg: pointer to CEE configuration struct -* @dcbcfg: DCB configuration struct +* @pi: port information structure * * Convert CEE configuration from firmware to DCB configuration */ static void ice_cee_to_dcb_cfg (struct ice_aqc_get_cee_dcb_cfg_resp *cee_cfg, -struct ice_dcbx_cfg *dcbcfg) +struct ice_port_info *pi) {u32 status, tlv_status =le32_to_cpu (cee_cfg->tlv_status);u32 ice_aqc_cee_status_mask, ice_aqc_cee_status_shift; +u8 i, j, err, sync, oper, app_index, ice_app_sel_type;u16 app_prio =le16_to_cpu (cee_cfg->oper_app_prio); -u8 i, err, sync, oper, app_index, ice_app_sel_type;u16 ice_aqc_cee_app_mask, ice_aqc_cee_app_shift; +struct ice_dcbx_cfg *cmp_dcbcfg, *dcbcfg;u16 ice_app_prot_id_type; -/* CEE PG data to ETS config */ + dcbcfg = &pi->qos_cfg.local_dcbx_cfg; + dcbcfg->dcbx_mode =ICE_DCBX_MODE_CEE ; + dcbcfg->tlv_status = tlv_status; + +/* CEE PG data */ dcbcfg->etscfg.maxtcs = cee_cfg->oper_num_tc;/* Note that the FW creates the oper_prio_tc nibbles reversed
@@ -780,10 +785,16 @@ ice_cee_to_dcb_cfg(struct ice_aqc_get_cee_dcb_cfg_resp *cee_cfg, } } -/* CEE PFC data to ETS config */ +/* CEE PFC data */ dcbcfg->pfc.pfcena = cee_cfg->oper_pfc_en; dcbcfg->pfc.pfccap =ICE_MAX_TRAFFIC_CLASS ; +/* CEE APP TLV data */ +if (dcbcfg->app_mode ==ICE_DCBX_APPS_NON_WILLING ) + cmp_dcbcfg = &pi->qos_cfg.desired_dcbx_cfg; +else + cmp_dcbcfg = &pi->qos_cfg.remote_dcbx_cfg; + app_index =0 ;for (i =0 ; i <3 ; i++) {if (i ==0 ) {
@@ -802,6 +813,18 @@ ice_cee_to_dcb_cfg(struct ice_aqc_get_cee_dcb_cfg_resp *cee_cfg, ice_aqc_cee_app_shift =ICE_AQC_CEE_APP_ISCSI_S ; ice_app_sel_type =ICE_APP_SEL_TCPIP ; ice_app_prot_id_type =ICE_APP_PROT_ID_ISCSI ; + +for (j =0 ; j < cmp_dcbcfg->numapps; j++) { +u16 prot_id = cmp_dcbcfg->app[j].prot_id; +u8 sel = cmp_dcbcfg->app[j].selector; + +if (sel ==ICE_APP_SEL_TCPIP && + (prot_id ==ICE_APP_PROT_ID_ISCSI || + prot_id ==ICE_APP_PROT_ID_ISCSI_860 )) { + ice_app_prot_id_type = prot_id; +break ; + } + } }else {/* FIP APP */ ice_aqc_cee_status_mask =ICE_AQC_CEE_FIP_STATUS_M ;
@@ -892,11 +915,8 @@ enum ice_status ice_get_dcb_cfg(struct ice_port_info *pi) ret =ice_aq_get_cee_dcb_cfg (pi->hw, &cee_cfg,NULL );if (!ret) {/* CEE mode */ - dcbx_cfg = &pi->qos_cfg.local_dcbx_cfg; - dcbx_cfg->dcbx_mode =ICE_DCBX_MODE_CEE ; - dcbx_cfg->tlv_status =le32_to_cpu (cee_cfg.tlv_status); -ice_cee_to_dcb_cfg (&cee_cfg, dcbx_cfg); ret =ice_get_ieee_or_cee_dcb_cfg (pi,ICE_DCBX_MODE_CEE ); +ice_cee_to_dcb_cfg (&cee_cfg, pi); }else if (pi->hw->adminq.sq_last_status ==ICE_AQ_RC_ENOENT ) {/* CEE mode not enabled try querying IEEE data */ dcbx_cfg = &pi->qos_cfg.local_dcbx_cfg;
drivers/net/ethernet/intel/ice/ice_type.h +1 -0
@@ -535,6 +535,7 @@ struct ice_dcb_app_priority_table {#define ICE_TLV_STATUS_ERR 0x4#define ICE_APP_PROT_ID_FCOE 0x8906#define ICE_APP_PROT_ID_ISCSI 0x0cbc +#define ICE_APP_PROT_ID_ISCSI_860 0x035c#define ICE_APP_PROT_ID_FIP 0x8914#define ICE_APP_SEL_ETHTYPE 0x1#define ICE_APP_SEL_TCPIP 0x2