get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 99820,
    "url": "https://patches.dpdk.org/api/patches/99820/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20210927134231.11177-4-srikanth.k@oneconvergence.com/",
    "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": "<20210927134231.11177-4-srikanth.k@oneconvergence.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20210927134231.11177-4-srikanth.k@oneconvergence.com",
    "date": "2021-09-27T13:42:23",
    "name": "[03/11] bus/vmbus: handle mapping of device resources",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "b49d0712effb8ad829e183b208503572d7644b59",
    "submitter": {
        "id": 2368,
        "url": "https://patches.dpdk.org/api/people/2368/?format=api",
        "name": "Srikanth Kaka",
        "email": "srikanth.k@oneconvergence.com"
    },
    "delegate": {
        "id": 1,
        "url": "https://patches.dpdk.org/api/users/1/?format=api",
        "username": "tmonjalo",
        "first_name": "Thomas",
        "last_name": "Monjalon",
        "email": "thomas@monjalon.net"
    },
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/20210927134231.11177-4-srikanth.k@oneconvergence.com/mbox/",
    "series": [
        {
            "id": 19194,
            "url": "https://patches.dpdk.org/api/series/19194/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=19194",
            "date": "2021-09-27T13:42:20",
            "name": "add FreeBSD support to VMBUS & NetVSC PMDs",
            "version": 1,
            "mbox": "https://patches.dpdk.org/series/19194/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/99820/comments/",
    "check": "success",
    "checks": "https://patches.dpdk.org/api/patches/99820/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@inbox.dpdk.org",
        "Delivered-To": "patchwork@inbox.dpdk.org",
        "Received": [
            "from mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id AE369A0C46;\n\tMon, 27 Sep 2021 17:00:49 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id A9D1A41192;\n\tMon, 27 Sep 2021 16:58:33 +0200 (CEST)",
            "from mail-pj1-f54.google.com (mail-pj1-f54.google.com\n [209.85.216.54]) by mails.dpdk.org (Postfix) with ESMTP id 50287410DA\n for <dev@dpdk.org>; Mon, 27 Sep 2021 15:43:07 +0200 (CEST)",
            "by mail-pj1-f54.google.com with SMTP id v19so12488427pjh.2\n for <dev@dpdk.org>; Mon, 27 Sep 2021 06:43:07 -0700 (PDT)",
            "from srikanth-ThinkPad-T450.domain.name ([223.178.22.200])\n by smtp.gmail.com with ESMTPSA id b3sm16960665pfo.23.2021.09.27.06.43.04\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Mon, 27 Sep 2021 06:43:06 -0700 (PDT)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=oneconvergence.com; s=google;\n h=from:to:cc:subject:date:message-id:in-reply-to:references\n :mime-version:content-transfer-encoding;\n bh=qphklSi75ISsDBXC9paON1aCROjJrp9WEVfCh5Z5KOI=;\n b=V1rKmKiH1ytXAY4IHK0hfCnpYkku0WrlsEnBoqtnWoAZVoz5ogG6odtFYbp5ouWiw/\n Srz8rDFuFg/RoKLUPeKL3WPpUN/A06k3la6AQfPW9yrhA8xWzPlfYZdynhVtDYJROwRt\n 6KeHQ+QdXKF5+b/bEpMpVz7XcwrHxx2jPq3kk=",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20210112;\n h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to\n :references:mime-version:content-transfer-encoding;\n bh=qphklSi75ISsDBXC9paON1aCROjJrp9WEVfCh5Z5KOI=;\n b=MFgX2bhY+Tui4RPsMcZMEqNQ6VeO4jq9H2WYN4UNfZSiSKHtwTNGEjgbvuWOJGNasg\n Z1pBssFyssmI4MSYt0PwZHk44foWLBSfbyWhRh6v+6Fscvp6t7quyOfyusjMYvB6tXK5\n gHOTLH3uTMsgFveWsaD/oikvCBLY+imkvjGQ2sm9u+lgxtgmAhJDs9rBL2Tn7XhVdz2P\n bWwZ8w2juGHM3FTv2XEzKIRUnQjD0ABI+m8fZ+yoRjKT+b1BX9t515uOZoLnmlbOGiEW\n RKG2bHPgMKt9jFezOb6xH9l0EWLBKXE0Wt5CN7OrudMa3uwVmQk7VVyxzTHhCR+QEvKP\n VcXA==",
        "X-Gm-Message-State": "AOAM533iRdKJLacLh2IwwsaJz7EK99fJ3j0qMEOfyawmegFpCAyWAnVd\n 263HRTCvLBZHTD1hHejexfAn9A==",
        "X-Google-Smtp-Source": "\n ABdhPJy+1E0aBhjnodUmUldy8b+o37Ks7jDNuMZfcsPW1jxoROVKqzXGneunJAvTmcirVRiGDkbKSw==",
        "X-Received": "by 2002:a17:90b:3890:: with SMTP id\n mu16mr20444986pjb.78.1632750186543;\n Mon, 27 Sep 2021 06:43:06 -0700 (PDT)",
        "From": "Srikanth Kaka <srikanth.k@oneconvergence.com>",
        "To": "Stephen Hemminger <sthemmin@microsoft.com>, Long Li <longli@microsoft.com>",
        "Cc": "dev@dpdk.org, Vag Singh <vag.singh@oneconvergence.com>,\n Anand Thulasiram <avelu@juniper.net>,\n Srikanth Kaka <srikanth.k@oneconvergence.com>",
        "Date": "Mon, 27 Sep 2021 19:12:23 +0530",
        "Message-Id": "<20210927134231.11177-4-srikanth.k@oneconvergence.com>",
        "X-Mailer": "git-send-email 2.30.2",
        "In-Reply-To": "<20210927134231.11177-1-srikanth.k@oneconvergence.com>",
        "References": "<20210927134231.11177-1-srikanth.k@oneconvergence.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "X-Mailman-Approved-At": "Mon, 27 Sep 2021 16:58:07 +0200",
        "Subject": "[dpdk-dev] [PATCH 03/11] bus/vmbus: handle mapping of device\n resources",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "All resource values are published by HV_UIO driver as sysctl key\nvalue pairs and they are read at a later point of the code flow\n\nSigned-off-by: Srikanth Kaka <srikanth.k@oneconvergence.com>\nSigned-off-by: Vag Singh <vag.singh@oneconvergence.com>\nSigned-off-by: Anand Thulasiram <avelu@juniper.net>\n---\n drivers/bus/vmbus/freebsd/vmbus_bus.c | 127 --------------------------\n 1 file changed, 127 deletions(-)",
    "diff": "diff --git a/drivers/bus/vmbus/freebsd/vmbus_bus.c b/drivers/bus/vmbus/freebsd/vmbus_bus.c\nindex 8eb428a154..9b23b1131c 100644\n--- a/drivers/bus/vmbus/freebsd/vmbus_bus.c\n+++ b/drivers/bus/vmbus/freebsd/vmbus_bus.c\n@@ -55,142 +55,15 @@ parse_sysfs_uuid(const char *filename, rte_uuid_t uu)\n \treturn 0;\n }\n \n-static int\n-get_sysfs_string(const char *filename, char *buf, size_t buflen)\n-{\n-\tchar *cp;\n-\tFILE *f;\n-\n-\tf = fopen(filename, \"r\");\n-\tif (f == NULL) {\n-\t\tVMBUS_LOG(ERR, \"cannot open sysfs value %s:%s\",\n-\t\t\t  filename, strerror(errno));\n-\t\treturn -1;\n-\t}\n-\n-\tif (fgets(buf, buflen, f) == NULL) {\n-\t\tVMBUS_LOG(ERR, \"cannot read sysfs value %s\",\n-\t\t\t\tfilename);\n-\t\tfclose(f);\n-\t\treturn -1;\n-\t}\n-\tfclose(f);\n-\n-\t/* remove trailing newline */\n-\tcp = memchr(buf, '\\n', buflen);\n-\tif (cp)\n-\t\t*cp = '\\0';\n-\n-\treturn 0;\n-}\n-\n-static int\n-vmbus_get_uio_dev(const struct rte_vmbus_device *dev,\n-\t\t  char *dstbuf, size_t buflen)\n-{\n-\tchar dirname[PATH_MAX];\n-\tunsigned int uio_num;\n-\tstruct dirent *e;\n-\tDIR *dir;\n-\n-\t/* Assume recent kernel where uio is in uio/uioX */\n-\tsnprintf(dirname, sizeof(dirname),\n-\t\t SYSFS_VMBUS_DEVICES \"/%s/uio\", dev->device.name);\n-\n-\tdir = opendir(dirname);\n-\tif (dir == NULL)\n-\t\treturn -1; /* Not a UIO device */\n-\n-\t/* take the first file starting with \"uio\" */\n-\twhile ((e = readdir(dir)) != NULL) {\n-\t\tconst int prefix_len = 3;\n-\t\tchar *endptr;\n-\n-\t\tif (strncmp(e->d_name, \"uio\", prefix_len) != 0)\n-\t\t\tcontinue;\n-\n-\t\t/* try uio%d */\n-\t\terrno = 0;\n-\t\tuio_num = strtoull(e->d_name + prefix_len, &endptr, 10);\n-\t\tif (errno == 0 && endptr != (e->d_name + prefix_len)) {\n-\t\t\tsnprintf(dstbuf, buflen, \"%s/uio%u\", dirname, uio_num);\n-\t\t\tbreak;\n-\t\t}\n-\t}\n-\tclosedir(dir);\n-\n-\tif (e == NULL)\n-\t\treturn -1;\n-\n-\treturn uio_num;\n-}\n-\n-/* Check map names with kernel names */\n-static const char *map_names[VMBUS_MAX_RESOURCE] = {\n-\t[HV_TXRX_RING_MAP] = \"txrx_rings\",\n-\t[HV_INT_PAGE_MAP]  = \"int_page\",\n-\t[HV_MON_PAGE_MAP]  = \"monitor_page\",\n-\t[HV_RECV_BUF_MAP]  = \"recv:\",\n-\t[HV_SEND_BUF_MAP]  = \"send:\",\n-};\n-\n-\n /* map the resources of a vmbus device in virtual memory */\n int\n rte_vmbus_map_device(struct rte_vmbus_device *dev)\n {\n-\tchar uioname[PATH_MAX], filename[PATH_MAX];\n-\tchar dirname[PATH_MAX], mapname[64];\n-\tint i;\n-\n-\tdev->uio_num = vmbus_get_uio_dev(dev, uioname, sizeof(uioname));\n \tif (dev->uio_num < 0) {\n \t\tVMBUS_LOG(DEBUG, \"Not managed by UIO driver, skipped\");\n \t\treturn 1;\n \t}\n \n-\t/* Extract resource value */\n-\tfor (i = 0; i < VMBUS_MAX_RESOURCE; i++) {\n-\t\tstruct rte_mem_resource *res = &dev->resource[i];\n-\t\tunsigned long len, gpad = 0;\n-\t\tchar *cp;\n-\n-\t\tsnprintf(dirname, sizeof(dirname),\n-\t\t\t \"%s/maps/map%d\", uioname, i);\n-\n-\t\tsnprintf(filename, sizeof(filename),\n-\t\t\t \"%s/name\", dirname);\n-\n-\t\tif (get_sysfs_string(filename, mapname, sizeof(mapname)) < 0) {\n-\t\t\tVMBUS_LOG(ERR, \"could not read %s\", filename);\n-\t\t\treturn -1;\n-\t\t}\n-\n-\t\tif (strncmp(map_names[i], mapname, strlen(map_names[i])) != 0) {\n-\t\t\tVMBUS_LOG(ERR,\n-\t\t\t\t\"unexpected resource %s (expected %s)\",\n-\t\t\t\tmapname, map_names[i]);\n-\t\t\treturn -1;\n-\t\t}\n-\n-\t\tsnprintf(filename, sizeof(filename),\n-\t\t\t \"%s/size\", dirname);\n-\t\tif (eal_parse_sysfs_value(filename, &len) < 0) {\n-\t\t\tVMBUS_LOG(ERR,\n-\t\t\t\t\"could not read %s\", filename);\n-\t\t\treturn -1;\n-\t\t}\n-\t\tres->len = len;\n-\n-\t\t/* both send and receive buffers have gpad in name */\n-\t\tcp = memchr(mapname, ':', sizeof(mapname));\n-\t\tif (cp)\n-\t\t\tgpad = strtoul(cp+1, NULL, 0);\n-\n-\t\t/* put the GPAD value in physical address */\n-\t\tres->phys_addr = gpad;\n-\t}\n-\n \treturn vmbus_uio_map_resource(dev);\n }\n \n",
    "prefixes": [
        "03/11"
    ]
}