From patchwork Fri Oct 18 17:12:29 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander Gordeev X-Patchwork-Id: 284833 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 849D72C00F8 for ; Sat, 19 Oct 2013 17:45:51 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751279Ab3JSGpu (ORCPT ); Sat, 19 Oct 2013 02:45:50 -0400 Received: from 221-186-24-89.in-addr.arpa ([89.24.186.221]:13398 "EHLO dhcp-26-207.brq.redhat.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1750960Ab3JSGpt (ORCPT ); Sat, 19 Oct 2013 02:45:49 -0400 Received: from dhcp-26-207.brq.redhat.com (localhost [127.0.0.1]) by dhcp-26-207.brq.redhat.com (8.14.5/8.14.5) with ESMTP id r9IHE2pO004835; Fri, 18 Oct 2013 19:14:02 +0200 Received: (from agordeev@localhost) by dhcp-26-207.brq.redhat.com (8.14.5/8.14.5/Submit) id r9IHE1dN004834; Fri, 18 Oct 2013 19:14:01 +0200 From: Alexander Gordeev To: linux-kernel@vger.kernel.org Cc: Alexander Gordeev , Bjorn Helgaas , Michael Ellerman , Benjamin Herrenschmidt , Tejun Heo , Ben Hutchings , David Laight , Mark Lord , "H. Peter Anvin" , linux-pci@vger.kernel.org Subject: [PATCH RFC v2 29/29] vmxnet3: Make use of pcim_enable_msix_range() interface Date: Fri, 18 Oct 2013 19:12:29 +0200 Message-Id: <75788c5da384b16633fdab43d37a277aa92f38fd.1382103786.git.agordeev@redhat.com> X-Mailer: git-send-email 1.7.7.6 In-Reply-To: References: Sender: linux-pci-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pci@vger.kernel.org Signed-off-by: Alexander Gordeev --- drivers/net/vmxnet3/vmxnet3_drv.c | 40 +++++++++--------------------------- 1 files changed, 10 insertions(+), 30 deletions(-) diff --git a/drivers/net/vmxnet3/vmxnet3_drv.c b/drivers/net/vmxnet3/vmxnet3_drv.c index d33802c..e552d2b 100644 --- a/drivers/net/vmxnet3/vmxnet3_drv.c +++ b/drivers/net/vmxnet3/vmxnet3_drv.c @@ -2735,39 +2735,19 @@ vmxnet3_read_mac_addr(struct vmxnet3_adapter *adapter, u8 *mac) */ static int -vmxnet3_acquire_msix_vectors(struct vmxnet3_adapter *adapter, - int vectors) +vmxnet3_acquire_msix_vectors(struct vmxnet3_adapter *adapter, int vectors) { - int err = -EINVAL, vector_threshold; - vector_threshold = VMXNET3_LINUX_MIN_MSIX_VECT; - - while (vectors >= vector_threshold) { - err = pci_enable_msix(adapter->pdev, adapter->intr.msix_entries, - vectors); - if (!err) { - adapter->intr.num_intrs = vectors; - return 0; - } else if (err < 0) { - dev_err(&adapter->netdev->dev, - "Failed to enable MSI-X, error: %d\n", err); - return err; - } else if (err < vector_threshold) { - dev_info(&adapter->pdev->dev, - "Number of MSI-Xs which can be allocated " - "is lower than min threshold required.\n"); - return -ENOSPC; - } else { - /* If fails to enable required number of MSI-x vectors - * try enabling minimum number of vectors required. - */ - dev_err(&adapter->netdev->dev, - "Failed to enable %d MSI-X, trying %d instead\n", - vectors, vector_threshold); - vectors = vector_threshold; - } + vectors = pcim_enable_msix_range(adapter->pdev, + adapter->intr.msix_entries, vectors, + VMXNET3_LINUX_MIN_MSIX_VECT); + if (vectors < 0) { + dev_err(&adapter->netdev->dev, + "Failed to enable MSI-X, error: %d\n", vectors); + return vectors; } - return err; + adapter->intr.num_intrs = vectors; + return 0; }