From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pd0-f176.google.com (mail-pd0-f176.google.com [209.85.192.176]) by dpdk.org (Postfix) with ESMTP id CE7FAB36F for ; Fri, 18 Jul 2014 18:14:22 +0200 (CEST) Received: by mail-pd0-f176.google.com with SMTP id y10so5242246pdj.35 for ; Fri, 18 Jul 2014 09:15:16 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:message-id:user-agent:date:from:to:cc:subject :references:mime-version:content-type:content-disposition; bh=G/1EsBvDGx2hH+zAY50MOZ3eLAPwuRWH4qZ/1v5kOAo=; b=OvJuWhCj5IBo1PcAb+wkI4YtUObSIfU7uTOzkigYrpR8mgAmBAVGg3gRIWyE2gwvz8 XB2DVkNkDz+MIhV0zvf/UzgDjetIE896hmzX3P5Zaar9Ho90FBBTTsRbQqq77RURMZGY //N5B2f0JZ3SNjbJIijnRWYJgS9UxlsiKTb1PDl5dGlGaMzeWJA1UkLxAJVbC/uDbiFo wU8lXu4BmpJYyY8pJZ8sE5h9pPKCRFume6Hwb2RyVFZeHHRiZA3r86Ksf52SmYEFBuXo lt651GHfA4krWZN2IX6tO/ARXlny2O8UURGWEuRwtchviJOBNC3NjzQKnjaEB9XiaOhK eCYg== X-Gm-Message-State: ALoCoQmZGYVVuySa3VjcUAp16Wul+erHGhEz/QbxGVTqG03qTPveIE9OF9ehrwGSjrDslpiXjwUl X-Received: by 10.68.69.4 with SMTP id a4mr6318862pbu.113.1405700115808; Fri, 18 Jul 2014 09:15:15 -0700 (PDT) Received: from localhost (static-50-53-66-61.bvtn.or.frontiernet.net. [50.53.66.61]) by mx.google.com with ESMTPSA id uj2sm24670398pab.14.2014.07.18.09.15.14 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 18 Jul 2014 09:15:15 -0700 (PDT) Message-Id: <20140718161517.820761505@networkplumber.org> User-Agent: quilt/0.63-1 Date: Fri, 18 Jul 2014 09:14:51 -0700 From: Stephen Hemminger To: Thomas Monjalon References: <20140718161447.020882834@networkplumber.org> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-15 Content-Disposition: inline; filename=igb_uio-msix-vector.patch Cc: dev@dpdk.org Subject: [dpdk-dev] [PATCH 04/10] igb_uio: msix cleanups X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jul 2014 16:14:23 -0000 Since only one MSI-X entry is ever defined, there is no need to put it as an array in the driver private data structure. One msix_entry can just be put on the stack and initialized there. Also remove the unused backport defines related to MSI-X. I suspect this code was just inherited from some other project and never cleaned up. Signed-off-by: Stephen Hemminger --- a/lib/librte_eal/linuxapp/igb_uio/igb_uio.c 2014-07-18 08:38:29.291724950 -0700 +++ b/lib/librte_eal/linuxapp/igb_uio/igb_uio.c 2014-07-18 08:42:06.460487465 -0700 @@ -37,19 +37,6 @@ #endif #include -/** - * MSI-X related macros, copy from linux/pci_regs.h in kernel 2.6.39, - * but none of them in kernel 2.6.35. - */ -#ifndef PCI_MSIX_ENTRY_SIZE -#define PCI_MSIX_ENTRY_SIZE 16 -#define PCI_MSIX_ENTRY_LOWER_ADDR 0 -#define PCI_MSIX_ENTRY_UPPER_ADDR 4 -#define PCI_MSIX_ENTRY_DATA 8 -#define PCI_MSIX_ENTRY_VECTOR_CTRL 12 -#define PCI_MSIX_ENTRY_CTRL_MASKBIT 1 -#endif - #ifdef RTE_PCI_CONFIG #define PCI_SYS_FILE_BUF_SIZE 10 #define PCI_DEV_CAP_REG 0xA4 @@ -59,8 +46,6 @@ #define PCI_DEV_CTRL_EXT_TAG_MASK (1 << PCI_DEV_CTRL_EXT_TAG_SHIFT) #endif -#define IGBUIO_NUM_MSI_VECTORS 1 - /** * A structure describing the private information for a uio device. */ @@ -69,8 +54,6 @@ struct rte_uio_pci_dev { struct pci_dev *pdev; spinlock_t lock; /* spinlock for accessing PCI config space or msix data in multi tasks/isr */ enum rte_intr_mode mode; - struct msix_entry \ - msix_entries[IGBUIO_NUM_MSI_VECTORS]; /* pointer to the msix vectors to be allocated later */ }; static char *intr_mode = NULL; @@ -546,6 +529,7 @@ static int igbuio_pci_probe(struct pci_dev *dev, const struct pci_device_id *id) { struct rte_uio_pci_dev *udev; + struct msix_entry msix_entry; udev = kzalloc(sizeof(struct rte_uio_pci_dev), GFP_KERNEL); if (!udev) @@ -602,12 +586,8 @@ igbuio_pci_probe(struct pci_dev *dev, co /* check if it need to try msix first */ if (igbuio_intr_mode_preferred == RTE_INTR_MODE_MSIX) { - int vector; - - for (vector = 0; vector < IGBUIO_NUM_MSI_VECTORS; vector ++) - udev->msix_entries[vector].entry = vector; - - if (pci_enable_msix(udev->pdev, udev->msix_entries, IGBUIO_NUM_MSI_VECTORS) == 0) { + msix_entry.entry = 0; + if (pci_enable_msix(dev, &msix_entry, 1) == 0) { udev->mode = RTE_INTR_MODE_MSIX; } else { @@ -618,7 +598,7 @@ igbuio_pci_probe(struct pci_dev *dev, co switch (udev->mode) { case RTE_INTR_MODE_MSIX: udev->info.irq_flags = 0; - udev->info.irq = udev->msix_entries[0].vector; + udev->info.irq = msix_entry.vector; break; case RTE_INTR_MODE_MSI: break;