From: Wyborny, Carolyn Date: Tue, 28 Mar 2017 15:00:48 +0000 (-0700) Subject: i40e: fix for queue timing delays X-Git-Tag: v4.1.12-117.0_27200813_3~306 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=f772fafd0116fa5e8c58495fb04bcc6acda90815;p=users%2Fjedix%2Flinux-maple.git i40e: fix for queue timing delays This patch adds a delay to Rx queue disables to accommodate HW needs. v2: Added missing check for disable only, additional details on the need for the ugly delay and fixed spacing on comment. Change-ID: I2864ca667ce5dcc2cc44f8718113b719742a46a1 Signed-off-by: Carolyn Wyborny Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher Orabug: 26785018 (cherry picked from commit d08a9f6cd1c8fc58fd57724f45841f77e49e1fa3) Signed-off-by: Jack Vogel Reviewed-by: Kyle Fortin --- diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c index 458d295767b0..6072622e067f 100644 --- a/drivers/net/ethernet/intel/i40e/i40e_main.c +++ b/drivers/net/ethernet/intel/i40e/i40e_main.c @@ -4130,6 +4130,12 @@ static int i40e_vsi_control_rx(struct i40e_vsi *vsi, bool enable) } } + /* Due to HW errata, on Rx disable only, the register can indicate done + * before it really is. Needs 50ms to be sure + */ + if (!enable) + mdelay(50); + return ret; }