i40e: Issue "Stop LLDP" command for firmware older than v4.3
authorNeerav Parikh <neerav.parikh@intel.com>
Sun, 14 Dec 2014 01:55:11 +0000 (01:55 +0000)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Fri, 16 Jan 2015 12:37:49 +0000 (04:37 -0800)
Disable firmware LLDP agent for NICs with firmware version lower than
v4.3. Added a message when driver disables the firmware LLDP agent on
such NICs.

Change-ID: Ia8abf89439c70cb50e23db82753d7d282265506b
Signed-off-by: Neerav Parikh <neerav.parikh@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/i40e/i40e_main.c

index 0cc02665a8e32908bdd02ce718d8663c77afce07..d7efc1cd0732f5832b65adb58818d7e1255a3c90 100644 (file)
@@ -9245,6 +9245,16 @@ static int i40e_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
                goto err_configure_lan_hmc;
        }
 
+       /* Disable LLDP for NICs that have firmware versions lower than v4.3.
+        * Ignore error return codes because if it was already disabled via
+        * hardware settings this will fail
+        */
+       if (((pf->hw.aq.fw_maj_ver == 4) && (pf->hw.aq.fw_min_ver < 3)) ||
+           (pf->hw.aq.fw_maj_ver < 4)) {
+               dev_info(&pdev->dev, "Stopping firmware LLDP agent.\n");
+               i40e_aq_stop_lldp(hw, true, NULL);
+       }
+
        i40e_get_mac_addr(hw, hw->mac.addr);
        if (!is_valid_ether_addr(hw->mac.addr)) {
                dev_info(&pdev->dev, "invalid MAC address %pM\n", hw->mac.addr);