summaryrefslogtreecommitdiff
path: root/drivers/net/bonding/hw_distribution.c
diff options
context:
space:
mode:
authorJianhua Xie <jianhua.xie@freescale.com>2014-06-30 11:27:19 (GMT)
committerRichard Schmitt <richard.schmitt@freescale.com>2014-08-06 20:18:25 (GMT)
commit1426444953d06d19eb5cd06d40cc82ba1ce7979a (patch)
tree5bcbf0e7b450e0108b98bcd9224d10ade2908989 /drivers/net/bonding/hw_distribution.c
parent404731473a7c3ae4a25fb0fd53580f4d41b891b8 (diff)
downloadlinux-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.c1
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;
}
}