get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 79066,
    "url": "https://patches.dpdk.org/api/patches/79066/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20200928231437.414489-1-thomas@monjalon.net/",
    "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": "<20200928231437.414489-1-thomas@monjalon.net>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20200928231437.414489-1-thomas@monjalon.net",
    "date": "2020-09-28T23:14:08",
    "name": "[v3,00/29] cleanup ethdev close operation",
    "commit_ref": null,
    "pull_url": null,
    "state": null,
    "archived": false,
    "hash": null,
    "submitter": {
        "id": 685,
        "url": "https://patches.dpdk.org/api/people/685/?format=api",
        "name": "Thomas Monjalon",
        "email": "thomas@monjalon.net"
    },
    "delegate": null,
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/20200928231437.414489-1-thomas@monjalon.net/mbox/",
    "series": [],
    "comments": "https://patches.dpdk.org/api/patches/79066/comments/",
    "check": "pending",
    "checks": "https://patches.dpdk.org/api/patches/79066/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 dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 9FE37A04C0;\n\tTue, 29 Sep 2020 01:14:47 +0200 (CEST)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id C88DA1D70D;\n\tTue, 29 Sep 2020 01:14:44 +0200 (CEST)",
            "from out2-smtp.messagingengine.com (out2-smtp.messagingengine.com\n [66.111.4.26]) by dpdk.org (Postfix) with ESMTP id 744DF1B69F\n for <dev@dpdk.org>; Tue, 29 Sep 2020 01:14:43 +0200 (CEST)",
            "from compute7.internal (compute7.nyi.internal [10.202.2.47])\n by mailout.nyi.internal (Postfix) with ESMTP id BECD55C012C;\n Mon, 28 Sep 2020 19:14:41 -0400 (EDT)",
            "from mailfrontend2 ([10.202.2.163])\n by compute7.internal (MEProxy); Mon, 28 Sep 2020 19:14:41 -0400",
            "from xps.monjalon.net (184.203.134.77.rev.sfr.net [77.134.203.184])\n by mail.messagingengine.com (Postfix) with ESMTPA id B87B1306467E;\n Mon, 28 Sep 2020 19:14:40 -0400 (EDT)"
        ],
        "DKIM-Signature": [
            "v=1; a=rsa-sha256; c=relaxed/relaxed; d=monjalon.net; h=\n from:to:cc:subject:date:message-id:in-reply-to:references\n :mime-version:content-transfer-encoding; s=fm2; bh=u2afKzAl2Vkis\n uDDAcEG4OCnCIwr6bKAGYMY639eD/I=; b=glAgt5uH20BKz33qDMx1uCYEyxo9n\n XcQrlc+lY1xxGUpsqNgzLbihVeNglIDzFIkxLbTf8DxFrbWCtPJwUP7u4pRPAD+V\n ekAU0hDG5c627kQSztJOaaoXJNnCPD9I7XoznHtLAXLW3Vfc2wRLtvigWfZ199Py\n Fk7xeKFgzpiAYq3Mp12M4p8I7POlG203tllzNgVLMWyy67gkaZ19jVA95NKwMADJ\n TE9PflCNUznzLTK+j7qaub5GsKe7LvKkwaTa8LflrdGgO4H6DdyylwTGFc9WptD4\n EHmoQlVOcMEnQZthfIy3Wl85dfuag2qSHyYgn9QjvxbMUlcb/AsYL/kJQ==",
            "v=1; a=rsa-sha256; c=relaxed/relaxed; d=\n messagingengine.com; h=cc:content-transfer-encoding:date:from\n :in-reply-to:message-id:mime-version:references:subject:to\n :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=\n fm3; bh=u2afKzAl2VkisuDDAcEG4OCnCIwr6bKAGYMY639eD/I=; b=M1rmdWSi\n S3vUQTTjl3DlFMl6NK46Zv7lNn8f6qhY+HXoBhP3ZBcRBf43iVVFnd4dmcGWfc3R\n kGyN+52cSJ7dMddKXiIlEgWUbfDtps+sK+EZMi3CabFWgkP87eir7A8r5vMmf9eF\n 481J8wPI5Pn3wzTAimAnzwZP1qadbaxgMjX4sjYigkl06aXJonCchdxs+HvCdsrF\n o5yAZChKprJ+dxDQ4GJ7g9wwiXjkZvEjwuJ8EOHeUBWxFH8xWtx1h5o+2FmoTaE6\n 54B/mSkCV3Zp/IKD+y2+apIONlGDwLETxx9TV0fCIlNc14jRdE8bZHzc4SJ4OD5J\n CIq3VfX36XnHLQ=="
        ],
        "X-ME-Sender": "<xms:YW5yX4s3nrF8xfVEhefezj5ox4ZxaqfEnxd9Nojvz4rA-D6QVW2Dhw>\n <xme:YW5yX1ekXszvXKti1XbfaKyBxTmh4TF8_q7UGswh4q2hP_EaV4haqEUiyzmM225NC\n 0O79yAF88qROLcQfQ>",
        "X-ME-Proxy-Cause": "\n gggruggvucftvghtrhhoucdtuddrgedujedrvdejgddulecutefuodetggdotefrodftvf\n curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu\n uegrihhlohhuthemuceftddtnecunecujfgurhephffvufffkffojghfggfgsedtkeertd\n ertddtnecuhfhrohhmpefvhhhomhgrshcuofhonhhjrghlohhnuceothhhohhmrghssehm\n ohhnjhgrlhhonhdrnhgvtheqnecuggftrfgrthhtvghrnhepvdehgfeivdejgedtveehfe\n fhteelfefgieevgfffveefjeegtdfguedthedtgeevnecukfhppeejjedrudefgedrvddt\n fedrudekgeenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhroh\n hmpehthhhomhgrshesmhhonhhjrghlohhnrdhnvght",
        "X-ME-Proxy": "<xmx:YW5yXzx7hvWmzx20Vix3t-44ZaZy1M1O8u6A-AIm6R2rZSeVwWhGnw>\n <xmx:YW5yX7PMLUXs7627ue0JYTmRYc_wPLwAqPLjNEEXd8wUi4mYcmEXcg>\n <xmx:YW5yX4--sMWIhZHTwC6Ekl5THkz3dNFtcEn-QyYsSNa1Z_uN3rtyUA>\n <xmx:YW5yX9FD2WiLWJMNYn3tRBbeF9erLCgiSd0IaGKqjQT6ASsHz5qWJA>",
        "From": "Thomas Monjalon <thomas@monjalon.net>",
        "To": "dev@dpdk.org",
        "Cc": "ferruh.yigit@intel.com,\n\tarybchenko@solarflare.com",
        "Date": "Tue, 29 Sep 2020 01:14:08 +0200",
        "Message-Id": "<20200928231437.414489-1-thomas@monjalon.net>",
        "X-Mailer": "git-send-email 2.28.0",
        "In-Reply-To": "<20200913220711.3768597-1-thomas@monjalon.net>",
        "References": "<20200913220711.3768597-1-thomas@monjalon.net>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[dpdk-dev] [PATCH v3 00/29] cleanup ethdev close operation",
        "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 <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": "This is the end of a process started two years ago,\nto have a close which reliably releases an ethdev port\nwithout the need of removing the device (which can have more ports).\n\nUnfortunately, some drivers might be broken because did not follow\nthe migration recommendations. We cannot wait more,\nthis should be merged before the 20.11-rc1 release.\n\n\nv3:\n  - integrate NXP patches for dpaa, dpaa2, enetc and pfe\n  - fix crash in rte_eth_dev_release_port() because of early memset 0\n\nv2 (big thanks to Ferruh for the reviews):\n  - rebase on top of cxgbe updates\n  - integrate updated patches for tap, bnx2x, qede\n  - return 0 in atlantic PMD\n  - fix failsafe mutex free\n  - remove useless check in pcap\n  - fix testpmd port state transition\n  - add primary process check\n  - reset more pointers in rte_eth_dev_release_port()\n  - remove dev_started reset in rte_eth_dev_close()\n  - return int from rte_eth_dev_close()\n\nNote for future: fix old memory leak when releasing port,\ni.e. free callbacks link_intr_cbs, post_rx_burst_cbs, pre_tx_burst_cbs.\n\nThe last 3 patches are optional changes to ethdev close/release\nwhich were requested by Ferruh but may take longer to be accepted:\n  - memset 0\n  - keep start state\n  - int return\n\n\nRasesh Mody (2):\n  net/bnx2x: release port upon close\n  net/qede: release port upon close\n\nSachin Saxena (4):\n  net/dpaa: release port upon close\n  net/dpaa2: release port upon close\n  net/enetc: release port upon close\n  net/pfe: release port upon close\n\nThomas Monjalon (22):\n  ethdev: reset device and interrupt pointers on release\n  ethdev: allow drivers to return error on close\n  net/af_packet: release port upon close\n  net/atlantic: release port upon close\n  net/axgbe: release port upon close\n  net/bonding: release port upon close\n  net/failsafe: release port upon close\n  net/mlx4: release port upon close\n  net/null: release port upon close\n  net/octeontx: release port upon close\n  net/pcap: release port upon close\n  net/ring: release port upon close\n  net/softnic: release port upon close\n  ethdev: remove old close behaviour\n  drivers/net: accept removing device without any port\n  drivers/net: check process type in close operation\n  drivers/net: remove redundant MAC addresses freeing\n  app/testpmd: reset port status on close notification\n  app/testpmd: align behaviour of multi-port detach\n  ethdev: remove forcing stopped state upon close\n  ethdev: reset all when releasing a port\n  ethdev: allow close function to return an error\n\nYunjian Wang (1):\n  net/tap: release port upon close\n\n MAINTAINERS                               |   6 +-\n app/test-pmd/config.c                     |   7 +-\n app/test-pmd/testpmd.c                    |  53 +++------\n app/test/virtual_pmd.c                    |   6 +-\n doc/guides/rel_notes/deprecation.rst      |   7 --\n doc/guides/rel_notes/release_20_11.rst    |   4 +-\n drivers/net/af_packet/rte_eth_af_packet.c |  58 +++++-----\n drivers/net/af_xdp/rte_eth_af_xdp.c       |   9 +-\n drivers/net/ark/ark_ethdev.c              |  17 ++-\n drivers/net/atlantic/atl_ethdev.c         |  62 ++++-------\n drivers/net/avp/avp_ethdev.c              |  10 +-\n drivers/net/axgbe/axgbe_ethdev.c          |  17 +--\n drivers/net/bnx2x/bnx2x_ethdev.c          |  16 ++-\n drivers/net/bnxt/bnxt_ethdev.c            |  16 ++-\n drivers/net/bnxt/bnxt_reps.c              |  11 +-\n drivers/net/bnxt/bnxt_reps.h              |   2 +-\n drivers/net/bonding/eth_bond_private.h    |   2 +-\n drivers/net/bonding/rte_eth_bond_pmd.c    |  33 +++---\n drivers/net/cxgbe/cxgbe_ethdev.c          |  18 ++--\n drivers/net/cxgbe/cxgbe_main.c            |   2 -\n drivers/net/cxgbe/cxgbe_pfvf.h            |   2 +-\n drivers/net/cxgbe/cxgbevf_ethdev.c        |   5 +-\n drivers/net/cxgbe/cxgbevf_main.c          |   2 -\n drivers/net/dpaa/dpaa_ethdev.c            | 124 ++++++++++------------\n drivers/net/dpaa2/dpaa2_ethdev.c          |  96 +++++++----------\n drivers/net/e1000/em_ethdev.c             |  18 ++--\n drivers/net/e1000/igb_ethdev.c            |  36 +++----\n drivers/net/ena/ena_ethdev.c              |  20 ++--\n drivers/net/enetc/enetc_ethdev.c          |  17 +--\n drivers/net/enic/enic_ethdev.c            |   9 +-\n drivers/net/enic/enic_vf_representor.c    |   8 +-\n drivers/net/failsafe/failsafe.c           |  24 +----\n drivers/net/failsafe/failsafe_ether.c     |   6 +-\n drivers/net/failsafe/failsafe_ops.c       |  67 ++++++++----\n drivers/net/failsafe/failsafe_private.h   |   1 +\n drivers/net/fm10k/fm10k_ethdev.c          |  22 +---\n drivers/net/hinic/hinic_pmd_ethdev.c      |  22 ++--\n drivers/net/hns3/hns3_ethdev.c            |  15 +--\n drivers/net/hns3/hns3_ethdev_vf.c         |  16 +--\n drivers/net/i40e/i40e_ethdev.c            |  16 +--\n drivers/net/i40e/i40e_ethdev_vf.c         |  17 ++-\n drivers/net/iavf/iavf_ethdev.c            |  18 ++--\n drivers/net/ice/ice_dcf_ethdev.c          |  12 +--\n drivers/net/ice/ice_ethdev.c              |  21 ++--\n drivers/net/igc/igc_ethdev.c              |  17 ++-\n drivers/net/ionic/ionic_ethdev.c          |  17 ++-\n drivers/net/ipn3ke/ipn3ke_ethdev.c        |   6 +-\n drivers/net/ipn3ke/ipn3ke_representor.c   |   7 +-\n drivers/net/ixgbe/ixgbe_ethdev.c          |  33 ++----\n drivers/net/kni/rte_eth_kni.c             |  25 ++---\n drivers/net/liquidio/lio_ethdev.c         |  11 +-\n drivers/net/memif/rte_eth_memif.c         |  11 +-\n drivers/net/mlx4/mlx4.c                   |   7 +-\n drivers/net/mlx5/linux/mlx5_os.c          |   2 -\n drivers/net/mlx5/mlx5.c                   |  16 +--\n drivers/net/mlx5/mlx5.h                   |   2 +-\n drivers/net/mvneta/mvneta_ethdev.c        |  15 +--\n drivers/net/mvpp2/mrvl_ethdev.c           |  15 +--\n drivers/net/netvsc/hn_ethdev.c            |  19 ++--\n drivers/net/netvsc/hn_var.h               |   2 +-\n drivers/net/netvsc/hn_vf.c                |   7 +-\n drivers/net/nfb/nfb_ethdev.c              |  11 +-\n drivers/net/nfp/nfp_net.c                 |  11 +-\n drivers/net/null/rte_eth_null.c           |  26 +++--\n drivers/net/octeontx/octeontx_ethdev.c    |  17 ++-\n drivers/net/octeontx2/otx2_ethdev.c       |   8 +-\n drivers/net/pcap/rte_eth_pcap.c           |  31 +++---\n drivers/net/pfe/pfe_ethdev.c              |  51 ++++-----\n drivers/net/qede/qede_ethdev.c            |  20 ++--\n drivers/net/ring/rte_eth_ring.c           |  53 +++++----\n drivers/net/sfc/sfc_ethdev.c              |  35 +++---\n drivers/net/softnic/rte_eth_softnic.c     |  67 ++++++------\n drivers/net/szedata2/rte_eth_szedata2.c   |  23 ++--\n drivers/net/tap/rte_eth_tap.c             |  52 +++++----\n drivers/net/thunderx/nicvf_ethdev.c       |  11 +-\n drivers/net/vhost/rte_eth_vhost.c         |  15 +--\n drivers/net/virtio/virtio_ethdev.c        |  17 ++-\n drivers/net/virtio/virtio_user_ethdev.c   |   4 +-\n drivers/net/vmxnet3/vmxnet3_ethdev.c      |  16 ++-\n lib/librte_ethdev/rte_ethdev.c            |  32 ++----\n lib/librte_ethdev/rte_ethdev.h            |  13 +--\n lib/librte_ethdev/rte_ethdev_driver.h     |   2 +-\n lib/librte_ethdev/rte_ethdev_pci.h        |  14 +--\n 83 files changed, 763 insertions(+), 928 deletions(-)",
    "diff": null,
    "prefixes": [
        "v3",
        "00/29"
    ]
}