| From bb8414d058ba1c5a49749428f167cd8a28a9a879 Mon Sep 17 00:00:00 2001 |
| From: Alexander Duyck <aduyck@mirantis.com> |
| Date: Tue, 27 Oct 2015 16:59:12 -0700 |
| Subject: [PATCH 024/135] fm10k: Cleanup MSI-X interrupts in case of failure |
| |
| [ Upstream commit 587731e684dcf3522215194a02357d26b9bc7277 ] |
| |
| If the q_vector allocation fails we should free the resources associated |
| with the MSI-X vector table. |
| |
| Signed-off-by: Alexander Duyck <aduyck@mirantis.com> |
| Reviewed-by: Bruce Allan <bruce.w.allan@intel.com> |
| Tested-by: Krishneil Singh <Krishneil.k.singh@intel.com> |
| Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> |
| Signed-off-by: Sasha Levin <alexander.levin@verizon.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/net/ethernet/intel/fm10k/fm10k_main.c | 4 +++- |
| 1 file changed, 3 insertions(+), 1 deletion(-) |
| |
| --- a/drivers/net/ethernet/intel/fm10k/fm10k_main.c |
| +++ b/drivers/net/ethernet/intel/fm10k/fm10k_main.c |
| @@ -1970,8 +1970,10 @@ int fm10k_init_queueing_scheme(struct fm |
| |
| /* Allocate memory for queues */ |
| err = fm10k_alloc_q_vectors(interface); |
| - if (err) |
| + if (err) { |
| + fm10k_reset_msix_capability(interface); |
| return err; |
| + } |
| |
| /* Map rings to devices, and map devices to physical queues */ |
| fm10k_assign_rings(interface); |