* [Intel-wired-lan] [PATCH] i40e: Fix configure TCs after initial DCB disable
@ 2016-09-20 14:10 Dave Ertman
2016-09-21 19:28 ` Bynoe, Ronald J
0 siblings, 1 reply; 2+ messages in thread
From: Dave Ertman @ 2016-09-20 14:10 UTC (permalink / raw)
To: intel-wired-lan
in commit a036244c068612a43fa8c0f33a0eb4daa4d8dba0 a fix
was put into place to avoid a kernel panic when a non-
supported traffic class configuration was put into place
and then lldp was enabled/disabled on the link partner
switch. This fix caused it to be necessary to
unload/reload the driver to reenable DCB once a supported
TC config was in place.
The root cause of the original panic was that the function
i40e_pf_get_default_tc was allowing for a default TC other
than TC 0, and only TC 0 is supported as a default.
This patch removes the get_default_tc function and replaces
it with a #define since there is only one TC supported as
a default.
Change-Id: I448371974e946386d0a7718d73668b450b7c72ef
Signed-off-by: Dave Ertman <david.m.ertman@intel.com>
---
drivers/net/ethernet/intel/i40e/i40e.h | 1 +
drivers/net/ethernet/intel/i40e/i40e_main.c | 31 ++++-------------------------
2 files changed, 5 insertions(+), 27 deletions(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e.h b/drivers/net/ethernet/intel/i40e/i40e.h
index 19103a6..b37956e 100644
--- a/drivers/net/ethernet/intel/i40e/i40e.h
+++ b/drivers/net/ethernet/intel/i40e/i40e.h
@@ -92,6 +92,7 @@
#define I40E_AQ_LEN 256
#define I40E_AQ_WORK_LIMIT 66 /* max number of VFs + a little */
#define I40E_MAX_USER_PRIORITY 8
+#define I40E_DEFAULT_TRAFFIC_CLASS BIT(0)
#define I40E_DEFAULT_MSG_ENABLE 4
#define I40E_QUEUE_WAIT_RETRY_LIMIT 10
#define I40E_INT_NAME_STR_LEN (IFNAMSIZ + 16)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
index 61b0fc4..4c9d6b9 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -4643,29 +4643,6 @@ static u8 i40e_pf_get_num_tc(struct i40e_pf *pf)
}
/**
- * i40e_pf_get_default_tc - Get bitmap for first enabled TC
- * @pf: PF being queried
- *
- * Return a bitmap for first enabled traffic class for this PF.
- **/
-static u8 i40e_pf_get_default_tc(struct i40e_pf *pf)
-{
- u8 enabled_tc = pf->hw.func_caps.enabled_tcmap;
- u8 i = 0;
-
- if (!enabled_tc)
- return 0x1; /* TC0 */
-
- /* Find the first enabled TC */
- for (i = 0; i < I40E_MAX_TRAFFIC_CLASS; i++) {
- if (enabled_tc & BIT(i))
- break;
- }
-
- return BIT(i);
-}
-
-/**
* i40e_pf_get_pf_tc_map - Get bitmap for enabled traffic classes
* @pf: PF being queried
*
@@ -4675,7 +4652,7 @@ static u8 i40e_pf_get_tc_map(struct i40e_pf *pf)
{
/* If DCB is not enabled for this PF then just return default TC */
if (!(pf->flags & I40E_FLAG_DCB_ENABLED))
- return i40e_pf_get_default_tc(pf);
+ return I40E_DEFAULT_TRAFFIC_CLASS;
/* SFP mode we want PF to be enabled for all TCs */
if (!(pf->flags & I40E_FLAG_MFP_ENABLED))
@@ -4685,7 +4662,7 @@ static u8 i40e_pf_get_tc_map(struct i40e_pf *pf)
if (pf->hw.func_caps.iscsi)
return i40e_get_iscsi_tc_map(pf);
else
- return i40e_pf_get_default_tc(pf);
+ return I40E_DEFAULT_TRAFFIC_CLASS;
}
/**
@@ -5031,7 +5008,7 @@ static void i40e_dcb_reconfigure(struct i40e_pf *pf)
if (v == pf->lan_vsi)
tc_map = i40e_pf_get_tc_map(pf);
else
- tc_map = i40e_pf_get_default_tc(pf);
+ tc_map = I40E_DEFAULT_TRAFFIC_CLASS;
#ifdef I40E_FCOE
if (pf->vsi[v]->type == I40E_VSI_FCOE)
tc_map = i40e_get_fcoe_tc_map(pf);
@@ -5719,7 +5696,7 @@ static int i40e_handle_lldp_event(struct i40e_pf *pf,
u8 type;
/* Not DCB capable or capability disabled */
- if (!(pf->flags & I40E_FLAG_DCB_ENABLED))
+ if (!(pf->flags & I40E_FLAG_DCB_CAPABLE))
return ret;
/* Ignore if event is not for Nearest Bridge */
--
2.7.4
^ permalink raw reply related [flat|nested] 2+ messages in thread
* [Intel-wired-lan] [PATCH] i40e: Fix configure TCs after initial DCB disable
2016-09-20 14:10 [Intel-wired-lan] [PATCH] i40e: Fix configure TCs after initial DCB disable Dave Ertman
@ 2016-09-21 19:28 ` Bynoe, Ronald J
0 siblings, 0 replies; 2+ messages in thread
From: Bynoe, Ronald J @ 2016-09-21 19:28 UTC (permalink / raw)
To: intel-wired-lan
On Tue, 2016-09-20 at 07:10 -0700, Dave Ertman wrote:
> in commit a036244c068612a43fa8c0f33a0eb4daa4d8dba0 a fix
> was put into place to avoid a kernel panic when a non-
> supported traffic class configuration was put into place
> and then lldp was enabled/disabled on the link partner
> switch.??This fix caused it to be necessary to
> unload/reload the driver to reenable DCB once a supported
> TC config was in place.
>
> The root cause of the original panic was that the function
> i40e_pf_get_default_tc was allowing for a default TC other
> than TC 0, and only TC 0 is supported as a default.
>
> This patch removes the get_default_tc function and replaces
> it with a #define since there is only one TC supported as
> a default.
>
> Change-Id: I448371974e946386d0a7718d73668b450b7c72ef
> Signed-off-by: Dave Ertman <david.m.ertman@intel.com>
> ---
> ?drivers/net/ethernet/intel/i40e/i40e.h??????|??1 +
> ?drivers/net/ethernet/intel/i40e/i40e_main.c | 31 ++++---------------
> ----------
> ?2 files changed, 5 insertions(+), 27 deletions(-)
Tested-by: Ronald Bynoe <ronald.j.bynoe@intel.com>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2016-09-21 19:28 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-09-20 14:10 [Intel-wired-lan] [PATCH] i40e: Fix configure TCs after initial DCB disable Dave Ertman
2016-09-21 19:28 ` Bynoe, Ronald J
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox