On Fri, Mar 20, 2026 at 06:05:41AM +0100, Aleksandr Loktionov wrote:
> From: Lukasz Czapnik <[email protected]>
> 
> When DCBX is disabled in firmware the driver falls back to software LLDP
> mode and applies a default DCB configuration via ice_dcb_sw_dflt_cfg().
> This function properly initializes local_dcbx_cfg with valid parameters
> including etscfg.maxtcs from hardware capabilities. However,
> desired_dcbx_cfg was never initialized in this path.
> 
> All DCB netlink functions (ice_dcbnl_setpfc, ice_dcbnl_setets, etc.)
> use desired_dcbx_cfg as the base configuration for user-requested changes.
> When desired_dcbx_cfg remains uninitialized with etscfg.maxtcs=0, the
> firmware rejects the configuration for 4+ port NICs, causing DCB
> configuration commands to fail.
> 
> It is not a problem for 1 or 2 port NICs where we support 8 TCs - in
> that case FW accepts maxtc=0, treating it as 8.
> 
> Fix it by copying local_dcbx_cfg (which was freshly initialized) into
> desired_dcbx_cfg after the default config is applied.
> 
> Fixes: b94b013eb626 ("ice: Implement DCBNL support")
> Signed-off-by: Lukasz Czapnik <[email protected]>
> Signed-off-by: Aleksandr Loktionov <[email protected]>

Reviewed-by: Simon Horman <[email protected]>

Reply via email to