get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 54603,
    "url": "http://patches.dpdk.org/api/patches/54603/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/1560152324-20538-24-git-send-email-arybchenko@solarflare.com/",
    "project": {
        "id": 1,
        "url": "http://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": "<1560152324-20538-24-git-send-email-arybchenko@solarflare.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1560152324-20538-24-git-send-email-arybchenko@solarflare.com",
    "date": "2019-06-10T07:38:38",
    "name": "[23/29] net/sfc/base: support data path with EVB module",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "feb45023f7c4a672a87b2a1cee42aaf7abaa50d8",
    "submitter": {
        "id": 607,
        "url": "http://patches.dpdk.org/api/people/607/?format=api",
        "name": "Andrew Rybchenko",
        "email": "arybchenko@solarflare.com"
    },
    "delegate": {
        "id": 319,
        "url": "http://patches.dpdk.org/api/users/319/?format=api",
        "username": "fyigit",
        "first_name": "Ferruh",
        "last_name": "Yigit",
        "email": "ferruh.yigit@amd.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/1560152324-20538-24-git-send-email-arybchenko@solarflare.com/mbox/",
    "series": [
        {
            "id": 4965,
            "url": "http://patches.dpdk.org/api/series/4965/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=4965",
            "date": "2019-06-10T07:38:19",
            "name": "net/sfc/base: update base driver",
            "version": 1,
            "mbox": "http://patches.dpdk.org/series/4965/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/54603/comments/",
    "check": "fail",
    "checks": "http://patches.dpdk.org/api/patches/54603/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 [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 08DDE1BF29;\n\tMon, 10 Jun 2019 09:39:34 +0200 (CEST)",
            "from dispatch1-us1.ppe-hosted.com (dispatch1-us1.ppe-hosted.com\n\t[67.231.154.164]) by dpdk.org (Postfix) with ESMTP id E56D11BE99\n\tfor <dev@dpdk.org>; Mon, 10 Jun 2019 09:38:58 +0200 (CEST)",
            "from webmail.solarflare.com (webmail.solarflare.com\n\t[12.187.104.26])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby mx1-us1.ppe-hosted.com (PPE Hosted ESMTP Server) with ESMTPS id\n\t088AC140058\n\tfor <dev@dpdk.org>; Mon, 10 Jun 2019 07:38:58 +0000 (UTC)",
            "from ocex03.SolarFlarecom.com (10.20.40.36) by\n\tocex03.SolarFlarecom.com (10.20.40.36) with Microsoft SMTP Server\n\t(TLS) id 15.0.1395.4; Mon, 10 Jun 2019 00:38:51 -0700",
            "from opal.uk.solarflarecom.com (10.17.10.1) by\n\tocex03.SolarFlarecom.com (10.20.40.36) with Microsoft SMTP Server\n\t(TLS) id\n\t15.0.1395.4 via Frontend Transport; Mon, 10 Jun 2019 00:38:51 -0700",
            "from ukv-loginhost.uk.solarflarecom.com\n\t(ukv-loginhost.uk.solarflarecom.com [10.17.10.39])\n\tby opal.uk.solarflarecom.com (8.13.8/8.13.8) with ESMTP id\n\tx5A7coI4008853; Mon, 10 Jun 2019 08:38:50 +0100",
            "from ukv-loginhost.uk.solarflarecom.com (localhost [127.0.0.1])\n\tby ukv-loginhost.uk.solarflarecom.com (Postfix) with ESMTP id\n\t25B581627D7; Mon, 10 Jun 2019 08:38:50 +0100 (BST)"
        ],
        "X-Virus-Scanned": "Proofpoint Essentials engine",
        "From": "Andrew Rybchenko <arybchenko@solarflare.com>",
        "To": "<dev@dpdk.org>",
        "CC": "Gautam Dawar <gdawar@solarflare.com>",
        "Date": "Mon, 10 Jun 2019 08:38:38 +0100",
        "Message-ID": "<1560152324-20538-24-git-send-email-arybchenko@solarflare.com>",
        "X-Mailer": "git-send-email 1.8.3.1",
        "In-Reply-To": "<1560152324-20538-1-git-send-email-arybchenko@solarflare.com>",
        "References": "<1560152324-20538-1-git-send-email-arybchenko@solarflare.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain",
        "X-TM-AS-Product-Ver": "SMEX-12.5.0.1300-8.5.1010-24664.003",
        "X-TM-AS-Result": "No-2.929100-4.000000-10",
        "X-TMASE-MatchedRID": "OquRQqK4bvG6bGUitkk6tYS/TV9k6ppAi+LM40HvEjr3auHSPFNajIe+\n\tCwLSDva2Du0z8LaZf3yZ0xXMuWZYFNoA6mgeU1rtqjZ865FPtpqUJUL9rlPx4tEsTITobgNENyJ\n\tPoNqwWLIpYtwcKJmmRlO9V994jC9DwdU14NatZIacVWc2a+/ju0tc8DbogbSED0EafLhpb0gS99\n\tdUV0LYkuOrxWvuBMZu7CR1KwTNxSdhjejNb4SeB2WnA2xO92Up+kAbwAcaQfFWw5sMt9VCxON7x\n\tqD5/++ZQbq9uSe08OpWbn2uBjV4xgHFuf1kmWogRaPXfvn+kep9LQinZ4QefPcjNeVeWlqY+gtH\n\tj7OwNO2W79Uq8KMo9Uz/wcOHb2bGqGYUFOKhurQoIKfFuIeds1eyeqidy0ZiSjWXaFNWo97RIq4\n\tmU0GbMWjrKElOTVbkWFZUY3B6E0DU8fVtbXthftpAu0sLxpSoQ8G+yYJYYdZRZDsGiXQioBjm28\n\tf1HLY3",
        "X-TM-AS-User-Approved-Sender": "No",
        "X-TM-AS-User-Blocked-Sender": "No",
        "X-TMASE-Result": "10--2.929100-4.000000",
        "X-TMASE-Version": "SMEX-12.5.0.1300-8.5.1010-24664.003",
        "X-MDID": "1560152338-w4ihaGNWQTOs",
        "Subject": "[dpdk-dev] [PATCH 23/29] net/sfc/base: support data path with EVB\n\tmodule",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n\t<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\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "From: Gautam Dawar <gdawar@solarflare.com>\n\nef10_nic_init() allocates a vAdaptor for the physical port in current\nflow. In case of SR-IOV, this vAdaptor must be created for the PF as the\nvSwitch is allocated on the physical port. So, the call to\nefx_mcdi_vadaptor_alloc() should be avoided in ef10_nic_init() in SR-IOV\nflow. To achieve this, for SR-IOV use case, the vSwitch is created\nbefore NIC initialization and its handle is used to prevent vAdaptor\nallocation in ef10_nic_init(). This approach has been taken to minimize\nthe changes in NIC initilization flow.\n\nThis is also the case with Linux driver where vSwitch creation happens\nbefore NIC initialization.\n\nAlso, when DMA queues need to be allocated for Tx/Rx functionality\n(MC_CMD_INIT_RXQ / MC_CMD_INIT_TXQ), the correct vPort is selected\nbased on efx_vswitch_t property of efx_nic_t structure - vport\ncorresponding to PF in case of SR-IOV use case and EVB_PORT_ID_ASSIGNED\nfor physical port.\n\nSigned-off-by: Gautam Dawar <gdawar@solarflare.com>\nSigned-off-by: Andrew Rybchenko <arybchenko@solarflare.com>\n---\n drivers/net/sfc/base/ef10_filter.c |  3 +--\n drivers/net/sfc/base/ef10_nic.c    | 18 ++++++++++++++----\n drivers/net/sfc/base/ef10_rx.c     |  4 ++--\n drivers/net/sfc/base/ef10_tx.c     |  2 +-\n 4 files changed, 18 insertions(+), 9 deletions(-)",
    "diff": "diff --git a/drivers/net/sfc/base/ef10_filter.c b/drivers/net/sfc/base/ef10_filter.c\nindex 9c09a0d..e4f8de5 100644\n--- a/drivers/net/sfc/base/ef10_filter.c\n+++ b/drivers/net/sfc/base/ef10_filter.c\n@@ -202,8 +202,7 @@\n \t\tgoto fail1;\n \t}\n \n-\tMCDI_IN_SET_DWORD(req, FILTER_OP_EXT_IN_PORT_ID,\n-\t    EVB_PORT_ID_ASSIGNED);\n+\tMCDI_IN_SET_DWORD(req, FILTER_OP_EXT_IN_PORT_ID, enp->en_vport_id);\n \tMCDI_IN_SET_DWORD(req, FILTER_OP_EXT_IN_MATCH_FIELDS,\n \t    match_flags);\n \tif (spec->efs_dmaq_id == EFX_FILTER_SPEC_RX_DMAQ_ID_DROP) {\ndiff --git a/drivers/net/sfc/base/ef10_nic.c b/drivers/net/sfc/base/ef10_nic.c\nindex 0cf9ddd..a647daa 100644\n--- a/drivers/net/sfc/base/ef10_nic.c\n+++ b/drivers/net/sfc/base/ef10_nic.c\n@@ -233,8 +233,6 @@\n \t\tMC_CMD_VADAPTOR_ALLOC_OUT_LEN);\n \tefx_rc_t rc;\n \n-\tEFSYS_ASSERT3U(enp->en_vport_id, ==, EVB_PORT_ID_NULL);\n-\n \treq.emr_cmd = MC_CMD_VADAPTOR_ALLOC;\n \treq.emr_in_buf = payload;\n \treq.emr_in_length = MC_CMD_VADAPTOR_ALLOC_IN_LEN;\n@@ -2517,9 +2515,21 @@\n {\n \tuint32_t i;\n \tefx_rc_t rc;\n+\tboolean_t do_vadaptor_free = B_TRUE;\n \n-\t(void) efx_mcdi_vadaptor_free(enp, enp->en_vport_id);\n-\tenp->en_vport_id = 0;\n+#if EFSYS_OPT_EVB\n+\tif (enp->en_vswitchp != NULL) {\n+\t\t/*\n+\t\t * For SR-IOV the vAdaptor is freed with the vswitch,\n+\t\t * so do not free it here.\n+\t\t */\n+\t\tdo_vadaptor_free = B_FALSE;\n+\t}\n+#endif\n+\tif (do_vadaptor_free != B_FALSE) {\n+\t\t(void) efx_mcdi_vadaptor_free(enp, enp->en_vport_id);\n+\t\tenp->en_vport_id = EVB_PORT_ID_NULL;\n+\t}\n \n \t/* Unlink piobufs from extra VIs in WC mapping */\n \tif (enp->en_arch.ef10.ena_piobuf_count > 0) {\ndiff --git a/drivers/net/sfc/base/ef10_rx.c b/drivers/net/sfc/base/ef10_rx.c\nindex 27514c1..10eace4 100644\n--- a/drivers/net/sfc/base/ef10_rx.c\n+++ b/drivers/net/sfc/base/ef10_rx.c\n@@ -106,7 +106,7 @@\n \t    INIT_RXQ_EXT_IN_FLAG_WANT_OUTER_CLASSES, want_outer_classes,\n \t    INIT_RXQ_EXT_IN_FLAG_NO_CONT_EV, no_cont_ev);\n \tMCDI_IN_SET_DWORD(req, INIT_RXQ_EXT_IN_OWNER_ID, 0);\n-\tMCDI_IN_SET_DWORD(req, INIT_RXQ_EXT_IN_PORT_ID, EVB_PORT_ID_ASSIGNED);\n+\tMCDI_IN_SET_DWORD(req, INIT_RXQ_EXT_IN_PORT_ID, enp->en_vport_id);\n \n \tif (es_bufs_per_desc > 0) {\n \t\tMCDI_IN_SET_DWORD(req,\n@@ -233,7 +233,7 @@\n \treq.emr_out_length = MC_CMD_RSS_CONTEXT_ALLOC_OUT_LEN;\n \n \tMCDI_IN_SET_DWORD(req, RSS_CONTEXT_ALLOC_IN_UPSTREAM_PORT_ID,\n-\t    EVB_PORT_ID_ASSIGNED);\n+\t\tenp->en_vport_id);\n \tMCDI_IN_SET_DWORD(req, RSS_CONTEXT_ALLOC_IN_TYPE, context_type);\n \n \t/*\ndiff --git a/drivers/net/sfc/base/ef10_tx.c b/drivers/net/sfc/base/ef10_tx.c\nindex 6a90816..90f4803 100644\n--- a/drivers/net/sfc/base/ef10_tx.c\n+++ b/drivers/net/sfc/base/ef10_tx.c\n@@ -82,7 +82,7 @@\n \t    INIT_TXQ_IN_FLAG_TIMESTAMP, 0);\n \n \tMCDI_IN_SET_DWORD(req, INIT_TXQ_IN_OWNER_ID, 0);\n-\tMCDI_IN_SET_DWORD(req, INIT_TXQ_IN_PORT_ID, EVB_PORT_ID_ASSIGNED);\n+\tMCDI_IN_SET_DWORD(req, INIT_TXQ_IN_PORT_ID, enp->en_vport_id);\n \n \tdma_addr = MCDI_IN2(req, efx_qword_t, INIT_TXQ_IN_DMA_ADDR);\n \taddr = EFSYS_MEM_ADDR(esmp);\n",
    "prefixes": [
        "23/29"
    ]
}