]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
Do not execute i40e_macaddr_init if the macaddr is default
authorSowmini Varadhan <sowmini.varadhan@oracle.com>
Thu, 3 Dec 2015 02:59:19 +0000 (18:59 -0800)
committerAllen Pais <allen.pais@oracle.com>
Fri, 4 Dec 2015 06:57:21 +0000 (12:27 +0530)
Orabug 22302847

If the macaddr is not from Open Firmwre or IDPROM (i.e., defaults
macaddr was used) then do not call i40e_macaddr_init again, else
you will get a driver init failure like this:

[ 8127.050926] WARNING: CPU: 18 PID: 878 at kernel/irq/manage.c:1346
+__free_irq+0x9f/0x230()
[ 8127.050927] Trying to free already-free IRQ 177
 :
[ 8127.051005]  [<ffffffff810dd7ef>] __free_irq+0x9f/0x230
[ 8127.051006]  [<ffffffff810dda1d>] free_irq+0x4d/0xb0
[ 8127.051013]  [<ffffffffa043ddd0>] i40e_clear_interrupt_scheme+0xb0/0xc0
+[i40e]
[ 8127.051018]  [<ffffffffa044b538>] i40e_probe.part.64+0x1018/0x1320 [i40e]
[ 8127.051023]  [<ffffffff813dfc2f>] ? acpi_ut_remove_reference+0x2f/0x33
[ 8127.051026]  [<ffffffff813dc79a>] ? acpi_rs_get_prt_method_data+0x50/0x6d
[ 8127.051029]  [<ffffffff8170b2b6>] ? mutex_lock+0x16/0x37
[ 8127.051034]  [<ffffffff81057e3e>] ? mp_map_pin_to_irq+0xee/0x250
[ 8127.051035]  [<ffffffff81058044>] ? mp_map_gsi_to_irq+0xa4/0xd0
[ 8127.051038]  [<ffffffff8104e404>] ? acpi_register_gsi_ioapic+0x54/0x1d0
[ 8127.051043]  [<ffffffff815c577e>] ? pci_conf1_read+0xbe/0x120
[ 8127.051045]  [<ffffffff815c99e3>] ? raw_pci_read+0x23/0x40
[ 8127.051048]  [<ffffffff813676f0>] ? pci_bus_read_config_word+0xa0/0xb0
[ 8127.051053]  [<ffffffff813709f0>] ? do_pci_enable_device+0xf0/0x120
[ 8127.051057]  [<ffffffffa044b862>] i40e_probe+0x22/0x30 [i40e]
                                     :
(cherry picked from commit 05cc3e25f20a1264f3045bcfbb810f7bc94e736d)

drivers/net/ethernet/intel/i40e/i40e_main.c

index 29d80fd5085559e81b9dec5fe709c303b1ec3c7f..36d55f0bff97f8bce02f6eea935a1c048bfe2572 100644 (file)
@@ -8865,9 +8865,11 @@ struct i40e_vsi *i40e_vsi_setup(struct i40e_pf *pf, u8 type,
                ret = i40e_config_netdev(vsi);
                if (ret)
                        goto err_netdev;
+#if defined(CONFIG_SPARC) || defined(CONFIG_OF)
                ret = i40e_macaddr_init(vsi, pf->hw.mac.addr);
                if (ret)
                        goto err_netdev;
+#endif
                ret = register_netdev(vsi->netdev);
                if (ret)
                        goto err_netdev;