| From e98ebc7380c28a0cca2fbb3f2ebb08eabcc88fa2 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Thu, 6 Feb 2020 01:20:00 -0800 |
| Subject: ice: Fix switch between FW and SW LLDP |
| |
| From: Dave Ertman <david.m.ertman@intel.com> |
| |
| [ Upstream commit 53977ee47410885e7d4eee87d2c811a48a275150 ] |
| |
| When switching between FW and SW LLDP mode, the |
| number of configured TLV apps in the driver's |
| DCB configuration is getting out of synch with |
| what lldpad thinks is configured. This is causing |
| a problem when shutting down lldpad. The cleanup |
| is trying to delete TLV apps that are not defined |
| in the kernel. |
| |
| Since the driver is keeping an accurate account |
| of the apps defined, use the drivers number of |
| apps to determine if there is an app to delete. |
| If the number of apps is <= 1, then do not |
| attempt to delete. |
| |
| Signed-off-by: Dave Ertman <david.m.ertman@intel.com> |
| Tested-by: Andrew Bowers <andrewx.bowers@intel.com> |
| Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/net/ethernet/intel/ice/ice_dcb_nl.c | 10 +++++----- |
| 1 file changed, 5 insertions(+), 5 deletions(-) |
| |
| diff --git a/drivers/net/ethernet/intel/ice/ice_dcb_nl.c b/drivers/net/ethernet/intel/ice/ice_dcb_nl.c |
| index d870c1aedc170..926c9772f0860 100644 |
| --- a/drivers/net/ethernet/intel/ice/ice_dcb_nl.c |
| +++ b/drivers/net/ethernet/intel/ice/ice_dcb_nl.c |
| @@ -713,13 +713,13 @@ static int ice_dcbnl_delapp(struct net_device *netdev, struct dcb_app *app) |
| return -EINVAL; |
| |
| mutex_lock(&pf->tc_mutex); |
| - ret = dcb_ieee_delapp(netdev, app); |
| - if (ret) |
| - goto delapp_out; |
| - |
| old_cfg = &pf->hw.port_info->local_dcbx_cfg; |
| |
| - if (old_cfg->numapps == 1) |
| + if (old_cfg->numapps <= 1) |
| + goto delapp_out; |
| + |
| + ret = dcb_ieee_delapp(netdev, app); |
| + if (ret) |
| goto delapp_out; |
| |
| new_cfg = &pf->hw.port_info->desired_dcbx_cfg; |
| -- |
| 2.20.1 |
| |