diff options
author | Jianhua Xie <jianhua.xie@freescale.com> | 2014-06-30 11:27:19 (GMT) |
---|---|---|
committer | Richard Schmitt <richard.schmitt@freescale.com> | 2014-08-06 20:18:25 (GMT) |
commit | 1426444953d06d19eb5cd06d40cc82ba1ce7979a (patch) | |
tree | 5bcbf0e7b450e0108b98bcd9224d10ade2908989 /drivers/net/bonding/hw_distribution.c | |
parent | 404731473a7c3ae4a25fb0fd53580f4d41b891b8 (diff) | |
download | linux-fsl-qoriq-1426444953d06d19eb5cd06d40cc82ba1ce7979a.tar.xz |
bonding: correct FM_PCD_KgSchemeDelete() error in LAG
1. Correct FM_PCD_KgSchemeDelete() error in LAG:
In FMD UM, at the chapter Frame Manager PCD Runtime Unit API,
FM_PCD_KgSchemeDelete() is told to be run at run-time, and
FM_PCD_KgSchemeDelete() is allowed only following FM_PCD_Init()
& FM_PCD_KgSchemeSet(). But in HW LAG test codes, even follows
FM_PCD_Init() & FM_PCD_KgSchemeSet(), this API reports errors:
cpu3/3: ! MINOR FM-PCD Error [CPU03,
drivers/net/ethernet/freescale/fman/Peripherals/FM/Pcd/fm_kg.c:983
InvalidateSchemeSw]: Invalid State;
cpu3/3: Trying to delete a scheme that has ports bound tocpu3/3:
cpu3/3: ! MINOR FM-PCD Error [CPU03,
drivers/net/ethernet/freescale/fman/Peripherals/FM/Pcd/fm_kg.c:3046
FM_PCD_KgSchemeDelete]: Invalid State;
cpu3/3: cpu3/3:
KgSchemeDelete(h_Schemes[0]) = c00000002e4c0038 Err.
In order to simply the HW LAG codes, and get rid of this error,
insert FM_PORT_DeletePCD() before FM_PCD_KgSchemeDelete().
2. Adjust multiple schemes order with FM_PCD_KgSchemeSet:
To ensure distribution order, adjust multiple schemes order,
please refer to the chapter "The dist_order Element" of FMCTUG.
Change-Id: I4aeef84e796b624d8625db48c0c3098bf9f81abd
Signed-off-by: Jianhua Xie <jianhua.xie@freescale.com>
Reviewed-on: http://git.am.freescale.net:8181/14202
Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com>
Reviewed-by: Jiafei Pan <Jiafei.Pan@freescale.com>
Reviewed-by: Richard Schmitt <richard.schmitt@freescale.com>
Diffstat (limited to 'drivers/net/bonding/hw_distribution.c')
-rw-r--r-- | drivers/net/bonding/hw_distribution.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/net/bonding/hw_distribution.c b/drivers/net/bonding/hw_distribution.c index 74839c1..7e37bf3 100644 --- a/drivers/net/bonding/hw_distribution.c +++ b/drivers/net/bonding/hw_distribution.c @@ -1534,6 +1534,7 @@ int get_oh_info(void) } poh[i].allocated_pcd_mem = false; + poh[i].applied_pcd = false; available_num_of_oh_ports = ++i; } } |