get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/1366/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 1366,
    "url": "https://patches.dpdk.org/api/patches/1366/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/1416474399-16851-4-git-send-email-mukawa@igel.co.jp/",
    "project": {
        "id": 1,
        "url": "https://patches.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<1416474399-16851-4-git-send-email-mukawa@igel.co.jp>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1416474399-16851-4-git-send-email-mukawa@igel.co.jp",
    "date": "2014-11-20T09:06:17",
    "name": "[dpdk-dev,03/25] eal/pci: Replace pci address comparison code by eal_compare_pci_addr",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "29359cf043b31b0b292e1c9aeed6a1b67f17f48c",
    "submitter": {
        "id": 64,
        "url": "https://patches.dpdk.org/api/people/64/?format=api",
        "name": "Tetsuya Mukawa",
        "email": "mukawa@igel.co.jp"
    },
    "delegate": null,
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/1416474399-16851-4-git-send-email-mukawa@igel.co.jp/mbox/",
    "series": [],
    "comments": "https://patches.dpdk.org/api/patches/1366/comments/",
    "check": "pending",
    "checks": "https://patches.dpdk.org/api/patches/1366/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@dpdk.org",
        "Delivered-To": "patchwork@dpdk.org",
        "Received": [
            "from [92.243.14.124] (localhost [IPv6:::1])\n\tby dpdk.org (Postfix) with ESMTP id 4DDB17FA4;\n\tThu, 20 Nov 2014 09:56:56 +0100 (CET)",
            "from mail-pa0-f53.google.com (mail-pa0-f53.google.com\n\t[209.85.220.53]) by dpdk.org (Postfix) with ESMTP id 43ADC7F7C\n\tfor <dev@dpdk.org>; Thu, 20 Nov 2014 09:56:53 +0100 (CET)",
            "by mail-pa0-f53.google.com with SMTP id kq14so2142931pab.26\n\tfor <dev@dpdk.org>; Thu, 20 Nov 2014 01:07:22 -0800 (PST)",
            "from localhost.localdomain (napt.igel.co.jp. [219.106.231.132])\n\tby mx.google.com with ESMTPSA id\n\ta6sm1432407pbu.64.2014.11.20.01.07.19 for <multiple recipients>\n\t(version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128);\n\tThu, 20 Nov 2014 01:07:21 -0800 (PST)"
        ],
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20130820;\n\th=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to\n\t:references;\n\tbh=xHucwkhLR8VTpJTiIuD+FeS/5XyBB0463ovtlghKLak=;\n\tb=ZsaYbgUtVuVFNSEMkHe9NvDScbI9NHko6885vzOeDBAwgAmoN260be4Xt1CBP39ayk\n\tGBi8w48wcfGrRigNir0wJsX7KVHC8/VydZpXfB6RNZiQW+iq0GPi15oMM3LwgMHewfvC\n\tpM2/rL8GUhD/qboifbnEq90TbVnhI3rWX11O7X5Fd4PrM+JLohxa/FU4XWQGJjSOjaQb\n\tYdiJXRYzoFdudCXkGYXNK0CIdPuNWIU2mRr4iusSmIuGoRyVjvX//sYY++rk7PAm2/jX\n\tW+MFEAaaqG6iJcg0q41O2HSX/QGMIRUh9mOGz+GgTW0ephWjtkvDvH2krkAUxE8c/fmv\n\tVh5g==",
        "X-Gm-Message-State": "ALoCoQnFNTy7g2TcSQklJ3Abf+QIG9y2TyjFkaFby3xNl2zgOUk9RsxXjyoxyZ9Vg5aJN1jZiQVT",
        "X-Received": "by 10.70.34.162 with SMTP id a2mr2000858pdj.123.1416474441929;\n\tThu, 20 Nov 2014 01:07:21 -0800 (PST)",
        "From": "Tetsuya Mukawa <mukawa@igel.co.jp>",
        "To": "dev@dpdk.org",
        "Date": "Thu, 20 Nov 2014 18:06:17 +0900",
        "Message-Id": "<1416474399-16851-4-git-send-email-mukawa@igel.co.jp>",
        "X-Mailer": "git-send-email 1.9.1",
        "In-Reply-To": "<1416474399-16851-1-git-send-email-mukawa@igel.co.jp>",
        "References": "<1414572576-21371-1-git-send-email-mukawa@igel.co.jp>\n\t<1416474399-16851-1-git-send-email-mukawa@igel.co.jp>",
        "Cc": "nakajima.yoshihiro@lab.ntt.co.jp, menrigh@brocade.com,\n\tmasutani.hitoshi@lab.ntt.co.jp",
        "Subject": "[dpdk-dev] [PATCH 03/25] eal/pci: Replace pci address comparison\n\tcode by eal_compare_pci_addr",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "patches and discussions about DPDK <dev.dpdk.org>",
        "List-Unsubscribe": "<http://dpdk.org/ml/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://dpdk.org/ml/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<http://dpdk.org/ml/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "This patch replaces pci_addr_comparison() and memcmp() of pci addresses by\neal_compare_pci_addr().\n\nSigned-off-by: Tetsuya Mukawa <mukawa@igel.co.jp>\n---\n lib/librte_eal/bsdapp/eal/eal_pci.c       | 16 +---------------\n lib/librte_eal/common/eal_common_pci.c    |  2 +-\n lib/librte_eal/common/include/rte_pci.h   | 29 +++++++++++++++++++++++++++++\n lib/librte_eal/linuxapp/eal/eal_pci.c     | 16 +---------------\n lib/librte_eal/linuxapp/eal/eal_pci_uio.c |  2 +-\n 5 files changed, 33 insertions(+), 32 deletions(-)",
    "diff": "diff --git a/lib/librte_eal/bsdapp/eal/eal_pci.c b/lib/librte_eal/bsdapp/eal/eal_pci.c\nindex 74ecce7..7eda513 100644\n--- a/lib/librte_eal/bsdapp/eal/eal_pci.c\n+++ b/lib/librte_eal/bsdapp/eal/eal_pci.c\n@@ -270,20 +270,6 @@ pci_uio_map_resource(struct rte_pci_device *dev)\n \treturn (0);\n }\n \n-/* Compare two PCI device addresses. */\n-static int\n-pci_addr_comparison(struct rte_pci_addr *addr, struct rte_pci_addr *addr2)\n-{\n-\tuint64_t dev_addr = (addr->domain << 24) + (addr->bus << 16) + (addr->devid << 8) + addr->function;\n-\tuint64_t dev_addr2 = (addr2->domain << 24) + (addr2->bus << 16) + (addr2->devid << 8) + addr2->function;\n-\n-\tif (dev_addr > dev_addr2)\n-\t\treturn 1;\n-\telse\n-\t\treturn 0;\n-}\n-\n-\n /* Scan one pci sysfs entry, and fill the devices list from it. */\n static int\n pci_scan_one(int dev_pci_fd, struct pci_conf *conf)\n@@ -358,7 +344,7 @@ pci_scan_one(int dev_pci_fd, struct pci_conf *conf)\n \t\tstruct rte_pci_device *dev2 = NULL;\n \n \t\tTAILQ_FOREACH(dev2, &pci_device_list, next) {\n-\t\t\tif (pci_addr_comparison(&dev->addr, &dev2->addr))\n+\t\t\tif (eal_compare_pci_addr(&dev->addr, &dev2->addr))\n \t\t\t\tcontinue;\n \t\t\telse {\n \t\t\t\tTAILQ_INSERT_BEFORE(dev2, dev, next);\ndiff --git a/lib/librte_eal/common/eal_common_pci.c b/lib/librte_eal/common/eal_common_pci.c\nindex f3c7f71..f01f258 100644\n--- a/lib/librte_eal/common/eal_common_pci.c\n+++ b/lib/librte_eal/common/eal_common_pci.c\n@@ -93,7 +93,7 @@ static struct rte_devargs *pci_devargs_lookup(struct rte_pci_device *dev)\n \t\tif (devargs->type != RTE_DEVTYPE_BLACKLISTED_PCI &&\n \t\t\tdevargs->type != RTE_DEVTYPE_WHITELISTED_PCI)\n \t\t\tcontinue;\n-\t\tif (!memcmp(&dev->addr, &devargs->pci.addr, sizeof(dev->addr)))\n+\t\tif (eal_compare_pci_addr(&dev->addr, &devargs->pci.addr))\n \t\t\treturn devargs;\n \t}\n \treturn NULL;\ndiff --git a/lib/librte_eal/common/include/rte_pci.h b/lib/librte_eal/common/include/rte_pci.h\nindex b819539..fe374a8 100644\n--- a/lib/librte_eal/common/include/rte_pci.h\n+++ b/lib/librte_eal/common/include/rte_pci.h\n@@ -261,6 +261,35 @@ eal_parse_pci_DomBDF(const char *input, struct rte_pci_addr *dev_addr)\n }\n #undef GET_PCIADDR_FIELD\n \n+/* Compare two PCI device addresses. */\n+/**\n+ * Utility function to compare two PCI device addresses.\n+ *\n+ * @param addr\n+ *\tThe PCI Bus-Device-Function address to compare\n+ * @param addr2\n+ *\tThe PCI Bus-Device-Function address to compare\n+ * @return\n+ *  0 on equal PCI address.\n+ *  Positive on addr is greater than addr2.\n+ *  Negative on addr is less than addr2.\n+ */\n+static inline int\n+eal_compare_pci_addr(struct rte_pci_addr *addr, struct rte_pci_addr *addr2)\n+{\n+\tuint64_t dev_addr = (addr->domain << 24) + (addr->bus << 16) +\n+\t\t\t\t\t(addr->devid << 8) + addr->function;\n+\tuint64_t dev_addr2 = (addr2->domain << 24) + (addr2->bus << 16) +\n+\t\t\t\t\t(addr2->devid << 8) + addr2->function;\n+\n+\tif (dev_addr > dev_addr2)\n+\t\treturn 1;\n+\telse if (dev_addr < dev_addr2)\n+\t\treturn -1;\n+\telse\n+\t\treturn 0;\n+}\n+\n /**\n  * Probe the PCI bus for registered drivers.\n  *\ndiff --git a/lib/librte_eal/linuxapp/eal/eal_pci.c b/lib/librte_eal/linuxapp/eal/eal_pci.c\nindex ddb0535..78df974 100644\n--- a/lib/librte_eal/linuxapp/eal/eal_pci.c\n+++ b/lib/librte_eal/linuxapp/eal/eal_pci.c\n@@ -186,20 +186,6 @@ error:\n \treturn -1;\n }\n \n-/* Compare two PCI device addresses. */\n-static int\n-pci_addr_comparison(struct rte_pci_addr *addr, struct rte_pci_addr *addr2)\n-{\n-\tuint64_t dev_addr = (addr->domain << 24) + (addr->bus << 16) + (addr->devid << 8) + addr->function;\n-\tuint64_t dev_addr2 = (addr2->domain << 24) + (addr2->bus << 16) + (addr2->devid << 8) + addr2->function;\n-\n-\tif (dev_addr > dev_addr2)\n-\t\treturn 1;\n-\telse\n-\t\treturn 0;\n-}\n-\n-\n /* Scan one pci sysfs entry, and fill the devices list from it. */\n static int\n pci_scan_one(const char *dirname, uint16_t domain, uint8_t bus,\n@@ -292,7 +278,7 @@ pci_scan_one(const char *dirname, uint16_t domain, uint8_t bus,\n \t\tstruct rte_pci_device *dev2 = NULL;\n \n \t\tTAILQ_FOREACH(dev2, &pci_device_list, next) {\n-\t\t\tif (pci_addr_comparison(&dev->addr, &dev2->addr))\n+\t\t\tif (eal_compare_pci_addr(&dev->addr, &dev2->addr) != 0)\n \t\t\t\tcontinue;\n \t\t\telse {\n \t\t\t\tTAILQ_INSERT_BEFORE(dev2, dev, next);\ndiff --git a/lib/librte_eal/linuxapp/eal/eal_pci_uio.c b/lib/librte_eal/linuxapp/eal/eal_pci_uio.c\nindex 7e62266..f0deeba 100644\n--- a/lib/librte_eal/linuxapp/eal/eal_pci_uio.c\n+++ b/lib/librte_eal/linuxapp/eal/eal_pci_uio.c\n@@ -120,7 +120,7 @@ pci_uio_map_secondary(struct rte_pci_device *dev)\n \tTAILQ_FOREACH(uio_res, pci_res_list, next) {\n \n \t\t/* skip this element if it doesn't match our PCI address */\n-\t\tif (memcmp(&uio_res->pci_addr, &dev->addr, sizeof(dev->addr)))\n+\t\tif (eal_compare_pci_addr(&uio_res->pci_addr, &dev->addr))\n \t\t\tcontinue;\n \n \t\tfor (i = 0; i != uio_res->nb_maps; i++) {\n",
    "prefixes": [
        "dpdk-dev",
        "03/25"
    ]
}