Show a cover letter.

GET /api/covers/78925/?format=api
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 78925,
    "url": "http://patches.dpdk.org/api/covers/78925/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/cover/20200927234249.3198780-1-thomas@monjalon.net/",
    "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": "<20200927234249.3198780-1-thomas@monjalon.net>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20200927234249.3198780-1-thomas@monjalon.net",
    "date": "2020-09-27T23:42:24",
    "name": "[v2,00/25] cleanup ethdev close operation",
    "submitter": {
        "id": 685,
        "url": "http://patches.dpdk.org/api/people/685/?format=api",
        "name": "Thomas Monjalon",
        "email": "thomas@monjalon.net"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/cover/20200927234249.3198780-1-thomas@monjalon.net/mbox/",
    "series": [
        {
            "id": 12533,
            "url": "http://patches.dpdk.org/api/series/12533/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=12533",
            "date": "2020-09-27T23:42:24",
            "name": "cleanup ethdev close operation",
            "version": 2,
            "mbox": "http://patches.dpdk.org/series/12533/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/covers/78925/comments/",
    "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 4AF9AA04C0;\n\tMon, 28 Sep 2020 01:43:03 +0200 (CEST)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 4DD651D5ED;\n\tMon, 28 Sep 2020 01:43:01 +0200 (CEST)",
            "from out5-smtp.messagingengine.com (out5-smtp.messagingengine.com\n [66.111.4.29]) by dpdk.org (Postfix) with ESMTP id 13C481D5E5\n for <dev@dpdk.org>; Mon, 28 Sep 2020 01:42:58 +0200 (CEST)",
            "from compute7.internal (compute7.nyi.internal [10.202.2.47])\n by mailout.nyi.internal (Postfix) with ESMTP id 72DE05C00F7;\n Sun, 27 Sep 2020 19:42:57 -0400 (EDT)",
            "from mailfrontend1 ([10.202.2.162])\n by compute7.internal (MEProxy); Sun, 27 Sep 2020 19:42:57 -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 88B53328005D;\n Sun, 27 Sep 2020 19:42:56 -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=LVmIdqSN9+E5V\n xPwBFNAW8JQuj9Q6X3oRT/aCw7OyB0=; b=KaWwggwYOdUz95/GJBFQGJCyxunFZ\n OTCl/luq6X7VHq2HrgatiKCXigCsboKGJKlGvHR4e28D6mARKPl7KVoPMu9ypIlt\n Ji1CeKhgLbpJX1zJ/qYDqPbVGWgBm0dwsYYQoVa6zTl6loehx5R6QOYokU7jTAek\n SHqCLxfSJ0CSXfxj1OR/n4lhuIA5qXzPxiE2c9wFaeiqdXgEuPqKDnD/0w0SjdkZ\n /VkoCUKviuWKKjaWKy6xIMHkwS9GsEc4KpwHPS+xDl1jzO/uE8gLxn1pHHjnTEaS\n +3z5zcELvTckmRBbjVzV87V2ROZgR3eHAwyQO6xaiSbZc8ikZdSbx00CQ==",
            "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=LVmIdqSN9+E5VxPwBFNAW8JQuj9Q6X3oRT/aCw7OyB0=; b=VXvMtd4l\n PiryzhYs5J3s/OcXLMGeuv6Bysmt+OLkJ0c7TAQiJ2sTaOH0gbpSJTYOX9HhkbBs\n LreYRkpMp7OzPoFPignRmf4rmVmYJo9f7VnVUWn9I15hQq1ajae6qncuwZigmI10\n lwktPuLyaHdzR4YiPlSk/b0j7HFRhiXt6B/IfNKaLYIa/ER9X5LRhOYMhC/UzNfU\n 4fQpHgkMJotfB5pehnR7m1MtdlRjBaXhC5LhvyPh9hn0t/kqoeHruHs+5Qe6K6En\n Fi0ZoyMj6xsDo1L5O5MxWtBGBHhcllLT/5i2iUN9v4Z4FrOZhiM681MCdmk75cWU\n /bcy3eoKSmJH1g=="
        ],
        "X-ME-Sender": "<xms:gSNxX-ydsifaJGKZUCV43F2Ff3dzGQ1apUhjQFuKngXm4B1Vp82Xcw>\n <xme:gSNxX6Rhdeb6qGBnblg9Z9lsqXWJCRbbgtkyq9ZM_1PfUqarLLm51Vge-uUHOdSDx\n Lz4sARN6JwwxbiDBQ>",
        "X-ME-Proxy-Cause": "\n gggruggvucftvghtrhhoucdtuddrgedujedrvdehgddvhecutefuodetggdotefrodftvf\n curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu\n uegrihhlohhuthemuceftddtnecunecujfgurhephffvufffkffojghfggfgsedtkeertd\n ertddtnecuhfhrohhmpefvhhhomhgrshcuofhonhhjrghlohhnuceothhhohhmrghssehm\n ohhnjhgrlhhonhdrnhgvtheqnecuggftrfgrthhtvghrnhepvdehgfeivdejgedtveehfe\n fhteelfefgieevgfffveefjeegtdfguedthedtgeevnecukfhppeejjedrudefgedrvddt\n fedrudekgeenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhroh\n hmpehthhhomhgrshesmhhonhhjrghlohhnrdhnvght",
        "X-ME-Proxy": "<xmx:gSNxXwVDRMimGZPSecAZ0NTKB6nUtz20KTtY9vRNWXzw9Q_Qv9af3Q>\n <xmx:gSNxX0hzxvx8O5wskssDmrXE_jHQxNjbRb6akXugSU1GnaTuEE0T7A>\n <xmx:gSNxXwCKtd6VTCCcOb3hFlCVavgv8SLYfy6h-WjRz5nQGlBJB5CxXw>\n <xmx:gSNxX7rbcikSCxi1mDHQLKK8NZsdH62O1HuHAwRcGcTAohHSj3i42w>",
        "From": "Thomas Monjalon <thomas@monjalon.net>",
        "To": "dev@dpdk.org",
        "Cc": "ferruh.yigit@intel.com,\n\tarybchenko@solarflare.com",
        "Date": "Mon, 28 Sep 2020 01:42:24 +0200",
        "Message-Id": "<20200927234249.3198780-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 v2 00/25] 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\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\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                               | 14 ++---\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            | 11 ++--\n drivers/net/dpaa2/dpaa2_ethdev.c          | 13 +++--\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          |  7 ++-\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              | 17 +++---\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            | 31 +++--------\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, 669 insertions(+), 789 deletions(-)"
}