i40e: Driver prints log message on link speed change
authorFilip Sadowski <filip.sadowski@intel.com>
Tue, 8 Nov 2016 21:05:13 +0000 (13:05 -0800)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Wed, 7 Dec 2016 04:25:13 +0000 (20:25 -0800)
This patch makes the driver log link speed change. Before applying the
patch link messages were printed only on state change. Now message is
printed when link is brought up or down and when speed changes.

Change-ID: Ifbee14b4b16c24967450b3cecac6e8351dcc8f74
Signed-off-by: Filip Sadowski <filip.sadowski@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/i40e/i40e.h
drivers/net/ethernet/intel/i40e/i40e_main.c

index 4cb8fb3dcb34fdb9baf8d25ff374c89c9cdce4ba..06e3c230483f6e2587172807818e3699a6549edc 100644 (file)
@@ -596,6 +596,7 @@ struct i40e_vsi {
        u16 veb_idx;            /* index of VEB parent */
        struct kobject *kobj;   /* sysfs object */
        bool current_isup;      /* Sync 'link up' logging */
+       enum i40e_aq_link_speed current_speed;  /* Sync link speed logging */
 
        void *priv;     /* client driver data reference. */
 
index 5777e49ee9e440625d2dbe36caf5578d91787810..4534d41fa3407668b8726a1d0f159247041dcada 100644 (file)
@@ -5225,12 +5225,16 @@ out:
  */
 void i40e_print_link_message(struct i40e_vsi *vsi, bool isup)
 {
+       enum i40e_aq_link_speed new_speed;
        char *speed = "Unknown";
        char *fc = "Unknown";
 
-       if (vsi->current_isup == isup)
+       new_speed = vsi->back->hw.phy.link_info.link_speed;
+
+       if ((vsi->current_isup == isup) && (vsi->current_speed == new_speed))
                return;
        vsi->current_isup = isup;
+       vsi->current_speed = new_speed;
        if (!isup) {
                netdev_info(vsi->netdev, "NIC Link is Down\n");
                return;