]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
fm10k: force link to remain down for at least a second on resume events
authorJacob Keller <jacob.e.keller@intel.com>
Tue, 7 Jun 2016 23:09:00 +0000 (16:09 -0700)
committerChuck Anderson <chuck.anderson@oracle.com>
Sun, 26 Feb 2017 06:04:26 +0000 (22:04 -0800)
When we resume from an AER recovery with many active VFs, the PF sees
many spurious link up and link down events. Prevent this by delaying
link down for at least one second after the resume event.

Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Tested-by: Krishneil Singh <Krishneil.k.singh@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Orabug: 25394529
(cherry picked from commit 0356b23bcc347d4020f2883ad083ab54e573e214)
Signed-off-by: Jack Vogel <jack.vogel@oracle.com>
drivers/net/ethernet/intel/fm10k/fm10k_pci.c

index 4751e664ae84839b2029d7de45d4640e25e4c857..1c416cfb4cbc9047e21fd5eeefcc6aafe072a7a4 100644 (file)
@@ -2260,6 +2260,10 @@ static int fm10k_handle_resume(struct fm10k_intfc *interface)
        interface->host_ready = false;
        fm10k_watchdog_host_not_ready(interface);
 
+       /* force link to stay down for a second to prevent link flutter */
+       interface->link_down_event = jiffies + (HZ);
+       set_bit(__FM10K_LINK_DOWN, &interface->state);
+
        /* clear the service task disable bit to allow service task to start */
        clear_bit(__FM10K_SERVICE_DISABLE, &interface->state);
        fm10k_service_event_schedule(interface);