mirror of https://gitee.com/openkylin/linux.git
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-queue
Jeff Kirsher says: ==================== Intel Wired LAN Driver Updates 2015-12-03 This series contains updates to ixgbe, i40e/i40evf, MAINTAINERS and e100.txt Alex provides a fix for ixgbe where enabling SR-IOV and then bringing the interface up was resulting in the PF MAC addresses getting into a bad state. The workaround for this issue is to bring up the interface first and then enable SR-IOV as this will trigger the reset in the existing code. I clean up legacy license stuff in the e100.txt documentation and then update the maintainers/reviewers list for our drivers. Jesse fixes an issue with the i40e/i40evf drivers, where if the driver were to happen to have a mutex held while the i40e_init_adminq() call was called, the init_adminq might inadvertently call mutex_init on a lock that was held which is a violation of the calling semantices. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
commit
f61e2eebc7
|
@ -181,17 +181,3 @@ For general information, go to the Intel support website at:
|
|||
If an issue is identified with the released source code on the supported
|
||||
kernel with a supported adapter, email the specific information related to the
|
||||
issue to e1000-devel@lists.sourceforge.net.
|
||||
|
||||
|
||||
License
|
||||
=======
|
||||
|
||||
This software program is released under the terms of a license agreement
|
||||
between you ('Licensee') and Intel. Do not use or load this software or any
|
||||
associated materials (collectively, the 'Software') until you have carefully
|
||||
read the full terms and conditions of the file COPYING located in this software
|
||||
package. By loading or using the Software, you agree to the terms of this
|
||||
Agreement. If you do not agree with the terms of this Agreement, do not install
|
||||
or use the Software.
|
||||
|
||||
* Other names and brands may be claimed as the property of others.
|
||||
|
|
|
@ -5577,7 +5577,7 @@ R: Jesse Brandeburg <jesse.brandeburg@intel.com>
|
|||
R: Shannon Nelson <shannon.nelson@intel.com>
|
||||
R: Carolyn Wyborny <carolyn.wyborny@intel.com>
|
||||
R: Don Skidmore <donald.c.skidmore@intel.com>
|
||||
R: Matthew Vick <matthew.vick@intel.com>
|
||||
R: Bruce Allan <bruce.w.allan@intel.com>
|
||||
R: John Ronciak <john.ronciak@intel.com>
|
||||
R: Mitch Williams <mitch.a.williams@intel.com>
|
||||
L: intel-wired-lan@lists.osuosl.org
|
||||
|
|
|
@ -567,10 +567,6 @@ i40e_status i40e_init_adminq(struct i40e_hw *hw)
|
|||
goto init_adminq_exit;
|
||||
}
|
||||
|
||||
/* initialize locks */
|
||||
mutex_init(&hw->aq.asq_mutex);
|
||||
mutex_init(&hw->aq.arq_mutex);
|
||||
|
||||
/* Set up register offsets */
|
||||
i40e_adminq_init_regs(hw);
|
||||
|
||||
|
@ -664,8 +660,6 @@ i40e_status i40e_shutdown_adminq(struct i40e_hw *hw)
|
|||
i40e_shutdown_asq(hw);
|
||||
i40e_shutdown_arq(hw);
|
||||
|
||||
/* destroy the locks */
|
||||
|
||||
if (hw->nvm_buff.va)
|
||||
i40e_free_virt_mem(hw, &hw->nvm_buff);
|
||||
|
||||
|
|
|
@ -10295,6 +10295,12 @@ static int i40e_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
|
|||
/* set up a default setting for link flow control */
|
||||
pf->hw.fc.requested_mode = I40E_FC_NONE;
|
||||
|
||||
/* set up the locks for the AQ, do this only once in probe
|
||||
* and destroy them only once in remove
|
||||
*/
|
||||
mutex_init(&hw->aq.asq_mutex);
|
||||
mutex_init(&hw->aq.arq_mutex);
|
||||
|
||||
err = i40e_init_adminq(hw);
|
||||
|
||||
/* provide nvm, fw, api versions */
|
||||
|
@ -10697,7 +10703,6 @@ static void i40e_remove(struct pci_dev *pdev)
|
|||
set_bit(__I40E_DOWN, &pf->state);
|
||||
del_timer_sync(&pf->service_timer);
|
||||
cancel_work_sync(&pf->service_task);
|
||||
i40e_fdir_teardown(pf);
|
||||
|
||||
if (pf->flags & I40E_FLAG_SRIOV_ENABLED) {
|
||||
i40e_free_vfs(pf);
|
||||
|
@ -10740,6 +10745,10 @@ static void i40e_remove(struct pci_dev *pdev)
|
|||
"Failed to destroy the Admin Queue resources: %d\n",
|
||||
ret_code);
|
||||
|
||||
/* destroy the locks only once, here */
|
||||
mutex_destroy(&hw->aq.arq_mutex);
|
||||
mutex_destroy(&hw->aq.asq_mutex);
|
||||
|
||||
/* Clear all dynamic memory lists of rings, q_vectors, and VSIs */
|
||||
i40e_clear_interrupt_scheme(pf);
|
||||
for (i = 0; i < pf->num_alloc_vsi; i++) {
|
||||
|
|
|
@ -551,10 +551,6 @@ i40e_status i40evf_init_adminq(struct i40e_hw *hw)
|
|||
goto init_adminq_exit;
|
||||
}
|
||||
|
||||
/* initialize locks */
|
||||
mutex_init(&hw->aq.asq_mutex);
|
||||
mutex_init(&hw->aq.arq_mutex);
|
||||
|
||||
/* Set up register offsets */
|
||||
i40e_adminq_init_regs(hw);
|
||||
|
||||
|
@ -596,8 +592,6 @@ i40e_status i40evf_shutdown_adminq(struct i40e_hw *hw)
|
|||
i40e_shutdown_asq(hw);
|
||||
i40e_shutdown_arq(hw);
|
||||
|
||||
/* destroy the locks */
|
||||
|
||||
if (hw->nvm_buff.va)
|
||||
i40e_free_virt_mem(hw, &hw->nvm_buff);
|
||||
|
||||
|
|
|
@ -2476,6 +2476,12 @@ static int i40evf_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
|
|||
hw->bus.device = PCI_SLOT(pdev->devfn);
|
||||
hw->bus.func = PCI_FUNC(pdev->devfn);
|
||||
|
||||
/* set up the locks for the AQ, do this only once in probe
|
||||
* and destroy them only once in remove
|
||||
*/
|
||||
mutex_init(&hw->aq.asq_mutex);
|
||||
mutex_init(&hw->aq.arq_mutex);
|
||||
|
||||
INIT_LIST_HEAD(&adapter->mac_filter_list);
|
||||
INIT_LIST_HEAD(&adapter->vlan_filter_list);
|
||||
|
||||
|
@ -2629,6 +2635,10 @@ static void i40evf_remove(struct pci_dev *pdev)
|
|||
if (hw->aq.asq.count)
|
||||
i40evf_shutdown_adminq(hw);
|
||||
|
||||
/* destroy the locks only once, here */
|
||||
mutex_destroy(&hw->aq.arq_mutex);
|
||||
mutex_destroy(&hw->aq.asq_mutex);
|
||||
|
||||
iounmap(hw->hw_addr);
|
||||
pci_release_regions(pdev);
|
||||
|
||||
|
|
|
@ -7920,6 +7920,9 @@ int ixgbe_setup_tc(struct net_device *dev, u8 tc)
|
|||
*/
|
||||
if (netif_running(dev))
|
||||
ixgbe_close(dev);
|
||||
else
|
||||
ixgbe_reset(adapter);
|
||||
|
||||
ixgbe_clear_interrupt_scheme(adapter);
|
||||
|
||||
#ifdef CONFIG_IXGBE_DCB
|
||||
|
|
Loading…
Reference in New Issue