Patch "[PATCH 023/135] fm10k: reinitialize queuing scheme after calling" has been added to the 4.4-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
[PATCH 023/135] fm10k: reinitialize queuing scheme after calling
to the 4.4-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
0023-fm10k-reinitialize-queuing-scheme-after-calling-init.patch
and it can be found in the queue-4.4 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
5c571b333ac3ff510b59a843675b450e72dc8543Mon Sep 17 00:00:00 2001
From: Jacob Keller <[email protected]>
Date: Fri, 16 Oct 2015 10:56:59 -0700
Subject: [PATCH 023/135] fm10k: reinitialize queuing scheme after calling
init_hw
[ Upstream commit 875328e4bce696e85edcda3c4b0ec80fd525e3a3 ]
The init_hw function may fail, and in the case of VFs, it might change the number of maximum queues available. Thus, for every flow which checks init_hw, we need to ensure that we clear the queue scheme before, and initialize it after. The fm10k_io_slot_reset path will end up triggering a reset so fm10k_reinit needs this change. The fm10k_io_error_detected and fm10k_io_resume also need to properly clear and reinitialize the queue scheme.
--- drivers/net/ethernet/intel/fm10k/fm10k_pci.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+)
drivers/net/ethernet/intel/fm10k/fm10k_pci.c +18 -0
@@ -159,6 +159,9 @@ static void fm10k_reinit(struct fm10k_infm10k_mbx_free_irq (interface); +/* free interrupts */ +fm10k_clear_queueing_scheme (interface); +/* delay any future reset requests */ interface->last_reset = jiffies + (10 *HZ );
@@ -175,6 +178,12 @@ static void fm10k_reinit(struct fm10k_in goto reinit_err; } + err =fm10k_init_queueing_scheme (interface); +if (err) { +dev_err (&interface->pdev->dev,"init_queueing_scheme failed: %d\n" , err); + goto reinit_err; + } +/* reassociate interrupts */ fm10k_mbx_request_irq (interface);
@@ -2205,6 +2214,9 @@ static pci_ers_result_t fm10k_io_error_dif (netif_running (netdev))fm10k_close (netdev); +/* free interrupts */ +fm10k_clear_queueing_scheme (interface); +fm10k_mbx_free_irq (interface);pci_disable_device (pdev);
@@ -2277,6 +2289,12 @@ static void fm10k_io_resume(struct pci_d/* reset statistics starting values */ hw->mac.ops.rebind_hw_stats (hw, &interface->stats); + err =fm10k_init_queueing_scheme (interface); +if (err) { +dev_err (&interface->pdev->dev,"init_queueing_scheme failed: %d\n" , err); +return ; + } +/* reassociate interrupts */ fm10k_mbx_request_irq (interface);
Patches currently in stable-queue which might be from [email protected] are
queue-4.4/0022-fm10k-always-check-init_hw-for-errors.patch queue-4.4/0021-fm10k-reset-max_queues-on-init_hw_vf-failure.patch queue-4.4/0023-fm10k-reinitialize-queuing-scheme-after-calling-init.patch queue-4.4/0018-fm10k-do-not-assume-VF-always-has-1-queue.patch queue-4.4/0019-fm10k-Correct-MTU-for-jumbo-frames.patch