Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 22d37b6b authored by David S. Miller's avatar David S. Miller
Browse files

Merge branch 'geneve-vxlan-deps'



Hannes Frederic Sowa says:

====================
net: network drivers should not depend on geneve/vxlan

This patchset removes the dependency of network drivers on vxlan or
geneve, so those don't get autoloaded when the nic driver is loaded.

Also audited the code such that vxlan_get_rx_port and geneve_get_rx_port
are not called without rtnl lock.
====================

Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents 7f348a60 681e683f
Loading
Loading
Loading
Loading
+6 −4
Original line number Original line Diff line number Diff line
@@ -4890,11 +4890,13 @@ static int be_resume(struct be_adapter *adapter)
	if (status)
	if (status)
		return status;
		return status;


	if (netif_running(netdev)) {
	rtnl_lock();
	if (netif_running(netdev))
		status = be_open(netdev);
		status = be_open(netdev);
	rtnl_unlock();

	if (status)
	if (status)
		return status;
		return status;
	}


	netif_device_attach(netdev);
	netif_device_attach(netdev);


+2 −0
Original line number Original line Diff line number Diff line
@@ -2287,8 +2287,10 @@ static void fm10k_io_resume(struct pci_dev *pdev)
	/* reassociate interrupts */
	/* reassociate interrupts */
	fm10k_mbx_request_irq(interface);
	fm10k_mbx_request_irq(interface);


	rtnl_lock();
	if (netif_running(netdev))
	if (netif_running(netdev))
		err = fm10k_open(netdev);
		err = fm10k_open(netdev);
	rtnl_unlock();


	/* final check of hardware state before registering the interface */
	/* final check of hardware state before registering the interface */
	err = err ? : fm10k_hw_ready(interface);
	err = err ? : fm10k_hw_ready(interface);
+2 −0
Original line number Original line Diff line number Diff line
@@ -7192,10 +7192,12 @@ static void ixgbe_service_task(struct work_struct *work)
		return;
		return;
	}
	}
#ifdef CONFIG_IXGBE_VXLAN
#ifdef CONFIG_IXGBE_VXLAN
	rtnl_lock();
	if (adapter->flags2 & IXGBE_FLAG2_VXLAN_REREG_NEEDED) {
	if (adapter->flags2 & IXGBE_FLAG2_VXLAN_REREG_NEEDED) {
		adapter->flags2 &= ~IXGBE_FLAG2_VXLAN_REREG_NEEDED;
		adapter->flags2 &= ~IXGBE_FLAG2_VXLAN_REREG_NEEDED;
		vxlan_get_rx_port(adapter->netdev);
		vxlan_get_rx_port(adapter->netdev);
	}
	}
	rtnl_unlock();
#endif /* CONFIG_IXGBE_VXLAN */
#endif /* CONFIG_IXGBE_VXLAN */
	ixgbe_reset_subtask(adapter);
	ixgbe_reset_subtask(adapter);
	ixgbe_phy_interrupt_subtask(adapter);
	ixgbe_phy_interrupt_subtask(adapter);
+2 −0
Original line number Original line Diff line number Diff line
@@ -1856,6 +1856,7 @@ static void mlx4_en_restart(struct work_struct *work)


	en_dbg(DRV, priv, "Watchdog task called for port %d\n", priv->port);
	en_dbg(DRV, priv, "Watchdog task called for port %d\n", priv->port);


	rtnl_lock();
	mutex_lock(&mdev->state_lock);
	mutex_lock(&mdev->state_lock);
	if (priv->port_up) {
	if (priv->port_up) {
		mlx4_en_stop_port(dev, 1);
		mlx4_en_stop_port(dev, 1);
@@ -1863,6 +1864,7 @@ static void mlx4_en_restart(struct work_struct *work)
			en_err(priv, "Failed restarting port %d\n", priv->port);
			en_err(priv, "Failed restarting port %d\n", priv->port);
	}
	}
	mutex_unlock(&mdev->state_lock);
	mutex_unlock(&mdev->state_lock);
	rtnl_unlock();
}
}


static void mlx4_en_clear_stats(struct net_device *dev)
static void mlx4_en_clear_stats(struct net_device *dev)
+8 −2
Original line number Original line Diff line number Diff line
@@ -3952,8 +3952,14 @@ static pci_ers_result_t qlcnic_82xx_io_error_detected(struct pci_dev *pdev,


static pci_ers_result_t qlcnic_82xx_io_slot_reset(struct pci_dev *pdev)
static pci_ers_result_t qlcnic_82xx_io_slot_reset(struct pci_dev *pdev)
{
{
	return qlcnic_attach_func(pdev) ? PCI_ERS_RESULT_DISCONNECT :
	pci_ers_result_t res;

	rtnl_lock();
	res = qlcnic_attach_func(pdev) ? PCI_ERS_RESULT_DISCONNECT :
					 PCI_ERS_RESULT_RECOVERED;
					 PCI_ERS_RESULT_RECOVERED;
	rtnl_unlock();

	return res;
}
}


static void qlcnic_82xx_io_resume(struct pci_dev *pdev)
static void qlcnic_82xx_io_resume(struct pci_dev *pdev)
Loading