From patchwork Sat Nov 5 07:54:13 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Kirsher, Jeffrey T" X-Patchwork-Id: 691534 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3t9rZw6fdfz9vDx for ; Sat, 5 Nov 2016 18:54:48 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754072AbcKEHy3 (ORCPT ); Sat, 5 Nov 2016 03:54:29 -0400 Received: from mga05.intel.com ([192.55.52.43]:25789 "EHLO mga05.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751774AbcKEHy0 (ORCPT ); Sat, 5 Nov 2016 03:54:26 -0400 Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga105.fm.intel.com with ESMTP; 05 Nov 2016 00:54:24 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.31,595,1473145200"; d="scan'208";a="27691357" Received: from jtkirshe-linux.jf.intel.com ([134.134.3.176]) by fmsmga006.fm.intel.com with ESMTP; 05 Nov 2016 00:54:24 -0700 From: Jeff Kirsher To: davem@davemloft.net Cc: Mark Rustad , netdev@vger.kernel.org, nhorman@redhat.com, sassmann@redhat.com, jogreene@redhat.com, guru.anbalagane@oracle.com, Jeff Kirsher Subject: [net-next 07/15] ixgbe: Handle previously-freed msix_entries Date: Sat, 5 Nov 2016 00:54:13 -0700 Message-Id: <1478332461-43147-8-git-send-email-jeffrey.t.kirsher@intel.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1478332461-43147-1-git-send-email-jeffrey.t.kirsher@intel.com> References: <1478332461-43147-1-git-send-email-jeffrey.t.kirsher@intel.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Mark Rustad The msix_entries memory can be freed by a previous suspend or remove, so don't crash on close when it isn't there. Signed-off-by: Mark Rustad Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher --- drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c index 5e1f57c..de634f0 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c @@ -3070,6 +3070,9 @@ static void ixgbe_free_irq(struct ixgbe_adapter *adapter) return; } + if (!adapter->msix_entries) + return; + for (vector = 0; vector < adapter->num_q_vectors; vector++) { struct ixgbe_q_vector *q_vector = adapter->q_vector[vector]; struct msix_entry *entry = &adapter->msix_entries[vector];