enic: do not call enic_change_mtu in enic_probe
authorGovindarajulu Varadarajan <gvaradar@cisco.com>
Mon, 30 Jul 2018 16:56:54 +0000 (09:56 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 15 Sep 2018 07:43:01 +0000 (09:43 +0200)
commit cb5c6568867325f9905e80c96531d963bec8e5ea upstream.

In commit ab123fe071c9 ("enic: handle mtu change for vf properly")
ASSERT_RTNL() is added to _enic_change_mtu() to prevent it from being
called without rtnl held. enic_probe() calls enic_change_mtu()
without rtnl held. At this point netdev is not registered yet.
Remove call to enic_change_mtu and assign the mtu to netdev->mtu.

Fixes: ab123fe071c9 ("enic: handle mtu change for vf properly")
Signed-off-by: Govindarajulu Varadarajan <gvaradar@cisco.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Cc: Ben Hutchings <ben.hutchings@codethink.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/ethernet/cisco/enic/enic_main.c

index f7e7b79..f314be0 100644 (file)
@@ -2681,7 +2681,6 @@ static int enic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
         */
 
        enic->port_mtu = enic->config.mtu;
-       (void)enic_change_mtu(netdev, enic->port_mtu);
 
        err = enic_set_mac_addr(netdev, enic->mac_addr);
        if (err) {
@@ -2731,6 +2730,7 @@ static int enic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
                netdev->features |= NETIF_F_HIGHDMA;
 
        netdev->priv_flags |= IFF_UNICAST_FLT;
+       netdev->mtu = enic->port_mtu;
 
        err = register_netdev(netdev);
        if (err) {