get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 41027,
    "url": "http://patchwork.dpdk.org/api/patches/41027/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dpdk/patch/20180613093648.6070-1-pablo.de.lara.guarch@intel.com/",
    "project": {
        "id": 1,
        "url": "http://patchwork.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": "<20180613093648.6070-1-pablo.de.lara.guarch@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20180613093648.6070-1-pablo.de.lara.guarch@intel.com",
    "date": "2018-06-13T09:36:48",
    "name": "cryptodev: fix ABI breakage",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "88d8249fc6df26271ea5971dedd224e69a9ee336",
    "submitter": {
        "id": 9,
        "url": "http://patchwork.dpdk.org/api/people/9/?format=api",
        "name": "De Lara Guarch, Pablo",
        "email": "pablo.de.lara.guarch@intel.com"
    },
    "delegate": {
        "id": 22,
        "url": "http://patchwork.dpdk.org/api/users/22/?format=api",
        "username": "pdelarag",
        "first_name": "Pablo",
        "last_name": "de Lara Guarch",
        "email": "pablo.de.lara.guarch@intel.com"
    },
    "mbox": "http://patchwork.dpdk.org/project/dpdk/patch/20180613093648.6070-1-pablo.de.lara.guarch@intel.com/mbox/",
    "series": [
        {
            "id": 107,
            "url": "http://patchwork.dpdk.org/api/series/107/?format=api",
            "web_url": "http://patchwork.dpdk.org/project/dpdk/list/?series=107",
            "date": "2018-06-13T09:36:48",
            "name": "cryptodev: fix ABI breakage",
            "version": 1,
            "mbox": "http://patchwork.dpdk.org/series/107/mbox/"
        }
    ],
    "comments": "http://patchwork.dpdk.org/api/patches/41027/comments/",
    "check": "success",
    "checks": "http://patchwork.dpdk.org/api/patches/41027/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 85BC81EDC7;\n\tWed, 13 Jun 2018 11:36:26 +0200 (CEST)",
            "from mga05.intel.com (mga05.intel.com [192.55.52.43])\n\tby dpdk.org (Postfix) with ESMTP id CEEED1ED67;\n\tWed, 13 Jun 2018 11:36:23 +0200 (CEST)",
            "from fmsmga004.fm.intel.com ([10.253.24.48])\n\tby fmsmga105.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;\n\t13 Jun 2018 02:36:22 -0700",
            "from silpixa00399464.ir.intel.com (HELO\n\tsilpixa00399464.ger.corp.intel.com) ([10.237.222.157])\n\tby fmsmga004.fm.intel.com with ESMTP; 13 Jun 2018 02:36:21 -0700"
        ],
        "X-Amp-Result": "SKIPPED(no attachment in message)",
        "X-Amp-File-Uploaded": "False",
        "X-ExtLoop1": "1",
        "X-IronPort-AV": "E=Sophos;i=\"5.51,218,1526367600\"; d=\"scan'208\";a=\"62772329\"",
        "From": "Pablo de Lara <pablo.de.lara.guarch@intel.com>",
        "To": "declan.doherty@intel.com,\n\tabhinandan.gujjar@intel.com",
        "Cc": "dev@dpdk.org, Pablo de Lara <pablo.de.lara.guarch@intel.com>,\n\tstable@dpdk.org",
        "Date": "Wed, 13 Jun 2018 10:36:48 +0100",
        "Message-Id": "<20180613093648.6070-1-pablo.de.lara.guarch@intel.com>",
        "X-Mailer": "git-send-email 2.17.0",
        "Subject": "[dpdk-dev] [PATCH] cryptodev: fix ABI breakage",
        "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://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": "<https://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": "In 17.08, the crypto operation was restructured,\nand some reserved bytes (5) were added  to have the mempool\npointer aligned to 64 bits, since the structure is expected\nto be aligned to 64 bits, allowing future additions with no\nABI breakage needed.\n\nIn 18.05, a new 2-byte field was added, so the reserved bytes\nwere reduced to 3. However, this field was added after the first 3 bytes\nof the structure, causing it to be placed in an offset of 4 bytes,\nand therefore, forcing the mempool pointer to be placed after 16 bytes,\ninstead of a 8 bytes, causing unintentionally the ABI breakage.\n\nThis commit fixes the breakage, by swapping the reserved bytes\nand the private_data_offset field, so the latter is aligned to 2 bytes\nand the offset of the mempool pointer returns to its original offset,\n8 bytes.\n\nFixes: 54c836846603 (\"cryptodev: set private data for session-less mode\")\nCc: stable@dpdk.org\n\nReported-by: Konstantin Ananyev <konstantin.ananyev@intel.com>\nSigned-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>\n---\n lib/librte_cryptodev/rte_crypto.h | 51 +++++++++++++++++++------------\n 1 file changed, 31 insertions(+), 20 deletions(-)",
    "diff": "diff --git a/lib/librte_cryptodev/rte_crypto.h b/lib/librte_cryptodev/rte_crypto.h\nindex 25404264b..a16be656d 100644\n--- a/lib/librte_cryptodev/rte_crypto.h\n+++ b/lib/librte_cryptodev/rte_crypto.h\n@@ -73,26 +73,37 @@ enum rte_crypto_op_sess_type {\n  * rte_cryptodev_enqueue_burst() / rte_cryptodev_dequeue_burst() .\n  */\n struct rte_crypto_op {\n-\tuint8_t type;\n-\t/**< operation type */\n-\tuint8_t status;\n-\t/**<\n-\t * operation status - this is reset to\n-\t * RTE_CRYPTO_OP_STATUS_NOT_PROCESSED on allocation from mempool and\n-\t * will be set to RTE_CRYPTO_OP_STATUS_SUCCESS after crypto operation\n-\t * is successfully processed by a crypto PMD\n-\t */\n-\tuint8_t sess_type;\n-\t/**< operation session type */\n-\tuint16_t private_data_offset;\n-\t/**< Offset to indicate start of private data (if any). The offset\n-\t * is counted from the start of the rte_crypto_op including IV.\n-\t * The private data may be used by the application to store\n-\t * information which should remain untouched in the library/driver\n-\t */\n-\n-\tuint8_t reserved[3];\n-\t/**< Reserved bytes to fill 64 bits for future additions */\n+\t__extension__\n+\tunion {\n+\t\tuint64_t raw;\n+\t\t__extension__\n+\t\tstruct {\n+\t\t\tuint8_t type;\n+\t\t\t/**< operation type */\n+\t\t\tuint8_t status;\n+\t\t\t/**<\n+\t\t\t * operation status - this is reset to\n+\t\t\t * RTE_CRYPTO_OP_STATUS_NOT_PROCESSED on allocation\n+\t\t\t * from mempool and will be set to\n+\t\t\t * RTE_CRYPTO_OP_STATUS_SUCCESS after crypto operation\n+\t\t\t * is successfully processed by a crypto PMD\n+\t\t\t */\n+\t\t\tuint8_t sess_type;\n+\t\t\t/**< operation session type */\n+\t\t\tuint8_t reserved[3];\n+\t\t\t/**< Reserved bytes to fill 64 bits for\n+\t\t\t * future additions\n+\t\t\t */\n+\t\t\tuint16_t private_data_offset;\n+\t\t\t/**< Offset to indicate start of private data (if any).\n+\t\t\t * The offset is counted from the start of the\n+\t\t\t * rte_crypto_op including IV.\n+\t\t\t * The private data may be used by the application\n+\t\t\t * to store information which should remain untouched\n+\t\t\t * in the library/driver\n+\t\t\t */\n+\t\t};\n+\t};\n \tstruct rte_mempool *mempool;\n \t/**< crypto operation mempool which operation is allocated from */\n \n",
    "prefixes": []
}