get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 44186,
    "url": "http://patches.dpdk.org/api/patches/44186/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/1536033560-21541-12-git-send-email-ajoseph@caviumnetworks.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": "<1536033560-21541-12-git-send-email-ajoseph@caviumnetworks.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1536033560-21541-12-git-send-email-ajoseph@caviumnetworks.com",
    "date": "2018-09-04T03:58:58",
    "name": "[v2,11/33] crypto/octeontx: add global resource init",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "7a6b92527ce2e01bc65ea862de96389a21e60e63",
    "submitter": {
        "id": 891,
        "url": "http://patches.dpdk.org/api/people/891/?format=api",
        "name": "Anoob Joseph",
        "email": "ajoseph@caviumnetworks.com"
    },
    "delegate": {
        "id": 6690,
        "url": "http://patches.dpdk.org/api/users/6690/?format=api",
        "username": "akhil",
        "first_name": "akhil",
        "last_name": "goyal",
        "email": "gakhil@marvell.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/1536033560-21541-12-git-send-email-ajoseph@caviumnetworks.com/mbox/",
    "series": [
        {
            "id": 1164,
            "url": "http://patches.dpdk.org/api/series/1164/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=1164",
            "date": "2018-09-04T03:58:47",
            "name": "Adding Cavium's OcteonTX crypto PMD",
            "version": 2,
            "mbox": "http://patches.dpdk.org/series/1164/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/44186/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/44186/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 155EB5B32;\n\tTue,  4 Sep 2018 06:03:23 +0200 (CEST)",
            "from NAM01-SN1-obe.outbound.protection.outlook.com\n\t(mail-sn1nam01on0082.outbound.protection.outlook.com [104.47.32.82])\n\tby dpdk.org (Postfix) with ESMTP id 690FD2C55\n\tfor <dev@dpdk.org>; Tue,  4 Sep 2018 06:03:08 +0200 (CEST)",
            "from ajoseph83.caveonetworks.com.com (115.113.156.2) by\n\tBYAPR07MB4902.namprd07.prod.outlook.com (2603:10b6:a02:ef::25) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n\t15.20.1101.15; Tue, 4 Sep 2018 04:02:30 +0000"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com;\n\th=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n\tbh=B+jfvW/tphfxK2WAByrrj4CRyIP4H7pcPAsx1d9brF4=;\n\tb=FP5raG6byal2KSp6SvkhbwhPepmidWimvw+O2xTGX/HvPaqh6+OxyRIhbwrYT1+KVikRq1EBgGzAxckcxxMKh0U8pHLTMZpBY1Adh5k3eLef30jfQJmR8lG6kc9bQGgFnhSeouT+GQwYfzAFfhIekU1akv3kIZtLJk+j3jDawKw=",
        "Authentication-Results": "spf=none (sender IP is )\n\tsmtp.mailfrom=Anoob.Joseph@cavium.com; ",
        "From": "Anoob Joseph <ajoseph@caviumnetworks.com>",
        "To": "Akhil Goyal <akhil.goyal@nxp.com>,\n\tPablo de Lara <pablo.de.lara.guarch@intel.com>,\n\tThomas Monjalon <thomas@monjalon.net>",
        "Cc": "Murthy NSSR <nidadavolu.murthy@caviumnetworks.com>,\n\tJerin Jacob <jerin.jacob@caviumnetworks.com>,\n\tNarayana Prasad <narayanaprasad.athreya@caviumnetworks.com>,\n\tdev@dpdk.org, Ankur Dwivedi <ankur.dwivedi@caviumnetworks.com>,\n\tAnoob Joseph <anoob.joseph@caviumnetworks.com>,\n\tNithin Dabilpuram <nithin.dabilpuram@caviumnetworks.com>,\n\tRagothaman Jayaraman <rjayaraman@caviumnetworks.com>,\n\tSrisivasubramanian S <ssrinivasan@caviumnetworks.com>,\n\tTejasree Kondoj <kondoj.tejasree@caviumnetworks.com>",
        "Date": "Tue,  4 Sep 2018 09:28:58 +0530",
        "Message-Id": "<1536033560-21541-12-git-send-email-ajoseph@caviumnetworks.com>",
        "X-Mailer": "git-send-email 2.7.4",
        "In-Reply-To": "<1536033560-21541-1-git-send-email-ajoseph@caviumnetworks.com>",
        "References": "<1528476325-15585-1-git-send-email-anoob.joseph@caviumnetworks.com>\n\t<1536033560-21541-1-git-send-email-ajoseph@caviumnetworks.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain",
        "X-Originating-IP": "[115.113.156.2]",
        "X-ClientProxiedBy": "BMXPR01CA0023.INDPRD01.PROD.OUTLOOK.COM\n\t(2603:1096:b00:d::33) To BYAPR07MB4902.namprd07.prod.outlook.com\n\t(2603:10b6:a02:ef::25)",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-Office365-Filtering-Correlation-Id": "02d4ec1a-2e43-47e9-a1bc-08d6121b3e9e",
        "X-Microsoft-Antispam": "BCL:0; PCL:0;\n\tRULEID:(7020095)(4652040)(8989137)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(5600074)(711020)(2017052603328)(7153060)(7193020);\n\tSRVR:BYAPR07MB4902; ",
        "X-Microsoft-Exchange-Diagnostics": [
            "1; BYAPR07MB4902;\n\t3:2j5vgcfagvJEd0eOhQn2O7YehKXOr1ZyOu7OxpAE4tXT1CbMaKR6f4ryaGN9hUdkSZgSF0RxXqqEFWDFUDvrnIabNlwLaaNkQNcyNzSsabyasbBxlNJwZVm2LJLT4VdQtpgHtRWVPCaIULSDLzOJBS9zkpDUDGHq7G6MEckhp5TV9FWDCk5ESUK8xX+1NiWYle8qWxUunpzWR5ud1zgovVqpmvwE74kBsjNuSApHYzHdgXk2aRZ42vvEW3Nygs+3;\n\t25:d+PklkNjiC4T6i6yWP8dds+XobN9W3cxzNJZDm2C76NxD1gGy9QOI+JepqfhhNX2fLpskALTpnx/JfWrRDkuOsGA2vQnnHf9+fr2yVjC4HbmJjatG68jFzW/KuW2zPfZFy5PLkdGRF6286M6fG1JaRMvKtf3+msMP/zqDXRL+39Xd7P0raS23O4Cp7xb268hp9Lq7+cKxdVu/oBymNyxUD8X27Nq35hYOMAgvjy6G7ufUtVvnUe5NR7+tJOaLpCCk1C6NZwC2OJ2RmlrAJlbv3m01OmGdBAKzqbbOnv+wr9R01BtasyudOJNN0HK6yotLpnULJv/42x8cLfIys+obQ==;\n\t31:kX6UysNM8QToLOY4yXnXt2AgNXnrF1yndHkmAD0MuDxUVXM2IGkdatOCF+qgjNzjNc+3GtrDgHd+AmUCaz0U7ecTxz5o77VA8v5JV7MEHUMSiDLQOoUSWgYIIzetimm3TJw9+dafl0JT8RefHNUd9O6ydi17cZA67l6AoLfDSCO1koYoL9j+G7BiiexX7jTsXO99H3Hjdkb2sEHw2hQ/e6lkI/0qhEpIBe0mnMj93W8=",
            "1; BYAPR07MB4902;\n\t20:AKeS0QTdbYA61hXD4a+6fBstBRQmf6q6aVW5R1QHMhgFFvvjRldtfs+d3eCUCdU/iay10vODIuQ1ilESINqiOzhtR5hVZm97lMwpXt/9lUGg/OGvaE4aIQZTyxit1MCYpNxi9/OmjCjT2bY6C4fyQD4LptNec3ScLRkhaA5nWpVjxfHPJtvUROtIidP2ibc+n0SnLT+N4x0CnCrRKASj3/DKt1RoX2NwC3a+nFqhw/SD1X57o3XT3R2xnUQ1J0K4K3b9SMrd1UYUec9qNwsO7ICNQ2Yw86Io64itdfwWe7/5Dw4S1B8z0TrjrXmSiLecHoP3Srq1OMmlS3d87THYJHQ1W/qClGRHPi3FuU9zPg227fmTsymsTZ3Qrv7w41w7hrfVvbTT7m0fHITLl9SIsKXex7x7+7K5zBGuHPYiopRkbnkgIjaNBY+JlaA6txwdPhmbQ+ES+wVSjtICqnfhD6r6iZY33kRLmaLvdUdVywUNy7CT3DKGUPbQhSa+NK4+3qUrquMumNeT1iw0pKqCEjnqxob8fhp8iey7mZ1IqkOL0HlFQ3+2r/V0GUkKC12n8piiSrsTnPEKzSdVIxcrukV6TopO35Y/kOW5d2Meenk=;\n\t4:rJdUoHRVuPOJ4P+mIb+Yz/ahbTrVWFaeFz5oVTRdzeIrq9MX9IGkZPejrUFcULlkCk2IbAL2FHf0Oc5fGFMx7BVLTzXBtY1h+FRGz50IOXKRB45QWR7rurV0ePv4FPPv3zAjDcOEw7e1qGyCrb7ortoWXEW7z6ZFgv1ksiuLBNeRe5nBKdKIS53CjDuNVVczHXLb0lemK1tQ650pWodP9e7tg8he50IGxfqErP4PEhGv26qPhZKgVf+O1nDsT+kTm4Rz1v0oe4QYAHHQpl8fCw==",
            "=?us-ascii?Q?1; BYAPR07MB4902;\n\t23:eryDDbmFayPYMexcLNJnn5/yeYi2YKbm0n4+yRXzv?=\n\tM2dYV10IVH/0dnubGCudwuNRQGYwbTIsMkcwRA4AR1l7TS+EmLZxTXXH4/ZIw2MyLRN6EdHJIHpbC9zWQ+4enu66A/cEtj5xzx+5MnNjLdtSuj6YTdj45TsnaeaG2uxWSxKe9QYsQUaEpwQD07z82P0bRn3Q6CfUEwQirD9onbpzqdOG/4E2jugmUmf4dyED2H1eGZS2aQ8dQi28rz6kqIVUZgRcyQJ2tppRlEYu9YuR9D119HbPvHvHgppLpxXbf2Xu8d/MqNPIUAtkwHinZJwO7YrnKLn9QaZIDCsEYyWqhMX1qd8RTdWadZfzacAkmjqxuM8UD9Onq5aJ1G/jpOnHWPjMbREvOCc3POVQTbCSUZuNEyXRGH5KP59/gfzsA9idR03nw41wQ0Z2kuTJjEUyDOOZv9LpCaNnECeOia3pTXGpZTVHoMMSvV+R/qj72qub/bXovVXGDgRkYlVcoOVTV74usKKDsYDNXaej6SkyzLLegneERYYy83oZXQMy32JPA6eQCBUkKl2fWcSwoWpTZaLA4renMIP+fpxNAv66UTg07DzcXH03qm/ggQvdYLALTclhy5FOdYZ3EElaV3z8/Ql6ddBiIcYmIN3QU6h9Jm0Rzmx20lWxk98d0/1nFZdmKmBIsb3hpvvuQ46Aw0q89ttJNeBoO0l/RP62Jn4v5+pmMLtputINQy5WoRZVuYJ1pHPkOIrCrHlPYmj7lb70C3ee0VqzjOhzUeUQigK3prk3sho7HcaEc5v9vwKA685LoDnn05ITTh37uK5giwyXFRwa277QhxHoMWNB9bMKhimRnwRy3EELy9jhGiCEKui7dI8kj1yaT140kw78f0RvjOVhqRjWZDVHgKLahM02PE/QeSGSILMelo7mxoKlXVAnMNJRKw/rmTvku6gIZo1caZEPagqTvScXoPqEq1+4tpM/90bUIhTnkRj9h4ekCI21vP7PapzNIzg7Lsx2uAXIsZ8cpwBzfVh8iP2zM0aa5oUBB4CMRiShP9GzRoiyTlLbDwlFQbrbYMm2fzWy+lRJ2qZpKy8E1p7KnKGA/rJx/X0WClTl7lsAwO2ph7zZPEV5epL2CZVogWH2qpTbTUeT0m6UIG7G1Kc9H3LbcyWZzPc8LWwkE+DjTP4elgP8anhphIEQShXfuaPEWqEUefvFv0HpFyOI99a4Lqgxr3L+6OhpASDS2TW63E46SICfG0=",
            "1; BYAPR07MB4902;\n\t6:NPXeGt22wqt+7AkVJbiIaGTz5ivFDA83Vy8Umviu12y2txn59qQ1MztuEqFaYl5qv4UDDW8FMU+6w7TbQlPNCY084JDHJOl+dAADrJXZH90YJNzT1CMChTXwHyn8nl79xWGGuuDISvoHYuWhPCos6+CaRoYBIpBz6BS8MTujZ8CaUMS63JsiVjmkE7xgguUXMXno++wHuY9IDY5Ofe6JnzsqU06laujr59Hw3Kt6UFrwvsRAro18WNa++WqfeyqASk9WeeISp1vY6UlUyWUqtGrt3ZJYn74iIbKhdmH3IciLuR5Z//uTVJ6/uMnjt1BoNiDEuiACS/B/gjfb0cbeemQdIn23BXdUoxK4KvFAKPwsUUtBRmJXNmso4uUn+zbhvANgNvoPWFjpv0LHAZjcSkQqQmKcziKsSwWrm+HIaNAlZPHCsq0B6QlV3hdNUMwHnJa9pA7VDrHtuFkCXH0D4w==;\n\t5:saSdV/zHxjeNgI6S9w0m7O9RhnPt3uN3bfwmDVHQ9fpAa605hk+5+C7qEKEGQySFuL46Q5aT431XIQNYhEcn+S7QX68Furb10mMXz+AtpUwAfh2WBQSKXnrEDJvkk5c74u9nMZxuFWlaZOz/7kks1VEmUzXq7LMh2oQhcEOTcz0=;\n\t7:WVM1HLZZZl5UYrStIL64ZfFSs0sGgqglEPg59NypNrEJxbnwa1C+zKtbsRKvj1CqLG6AnMNo/gv/+nfglfOA8dBaozQpphrbVLYp5SoH2sPY34HoLVCE9/GJmJJ/OILXBE3JHbmvCcAbN/5/KFUCDAsbRqLwkrZCfxfl8dKhF2DwQVIv25I1DIJOgXSaLpP7wF21rQNyl3Xxl0PEe3j26NwxvWVjElh73Ntruc1tYi0esJ8UKjneOKr7Apolixll"
        ],
        "X-MS-TrafficTypeDiagnostic": "BYAPR07MB4902:",
        "X-Microsoft-Antispam-PRVS": "<BYAPR07MB4902E3BDCFEB43F04BC3BAFCF8030@BYAPR07MB4902.namprd07.prod.outlook.com>",
        "X-Exchange-Antispam-Report-Test": "UriScan:;",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-Exchange-Antispam-Report-CFA-Test": "BCL:0; PCL:0;\n\tRULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(10201501046)(93006095)(3231311)(944501410)(52105095)(3002001)(149027)(150027)(6041310)(20161123562045)(20161123564045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(201708071742011)(7699016);\n\tSRVR:BYAPR07MB4902; BCL:0; PCL:0; RULEID:; SRVR:BYAPR07MB4902; ",
        "X-Forefront-PRVS": "0785459C39",
        "X-Forefront-Antispam-Report": "SFV:NSPM;\n\tSFS:(10009020)(366004)(396003)(136003)(346002)(376002)(39860400002)(199004)(189003)(26005)(51416003)(52116002)(76176011)(81166006)(305945005)(81156014)(7736002)(105586002)(316002)(6506007)(106356001)(6512007)(8936002)(446003)(54906003)(25786009)(6666003)(68736007)(50226002)(110136005)(53936002)(16586007)(42882007)(386003)(5660300001)(2906002)(72206003)(50466002)(6486002)(36756003)(6116002)(107886003)(2616005)(14444005)(186003)(3846002)(478600001)(66066001)(476003)(8676002)(47776003)(486006)(956004)(48376002)(11346002)(4326008)(97736004)(16526019);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:BYAPR07MB4902;\n\tH:ajoseph83.caveonetworks.com.com; FPR:; SPF:None; LANG:en;\n\tPTR:InfoNoRecords; A:1; MX:1; ",
        "Received-SPF": "None (protection.outlook.com: cavium.com does not designate\n\tpermitted sender hosts)",
        "X-Microsoft-Antispam-Message-Info": "UFamUQ5i9a/2owxpTO0MaHTE41VXmmuHyhxeL/pYmbrow23wV7npIkQYyE52WOFwFnIkUsmw4kf3kYaOh07yzVivrtL1FsdJ14pMwhtUC12KPu+/PvKa1t7DspCopwpjAa2m5mVhSC4ZSdKGrvkkfK1U60flQyw0ZZ7EWNNHF7QoJWaXaCockP6SIwpkfWNi6AZ2wcfrivW9b3+240Il1JIkdIJJ+0HhqAYZdnseduBdlUhEHFDUHgwArVW3TMUXh+fjvQUDZrI9ZNK/l96SB4h/2TATulh5+Lyzn1JduznOWjglX4xjuNIddxX/AZ66mGqKbnWbEK3XznYEMjRoBWnypLz0qYVcSvEPfiV2GII=",
        "SpamDiagnosticOutput": "1:99",
        "SpamDiagnosticMetadata": "NSPM",
        "X-OriginatorOrg": "caviumnetworks.com",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "04 Sep 2018 04:02:30.5223\n\t(UTC)",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "02d4ec1a-2e43-47e9-a1bc-08d6121b3e9e",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "Hosted",
        "X-MS-Exchange-CrossTenant-Id": "711e4ccf-2e9b-4bcf-a551-4094005b6194",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "BYAPR07MB4902",
        "Subject": "[dpdk-dev] [PATCH v2 11/33] crypto/octeontx: add global resource\n\tinit",
        "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: Murthy NSSR <nidadavolu.murthy@caviumnetworks.com>\n\nAdding initialization of global resources. This will be saved as\nmetadata in cptvf and would be used by common code. Exit path for\nfailure case is also added along with the new routines.\n\nSigned-off-by: Ankur Dwivedi <ankur.dwivedi@caviumnetworks.com>\nSigned-off-by: Anoob Joseph <anoob.joseph@caviumnetworks.com>\nSigned-off-by: Murthy NSSR <nidadavolu.murthy@caviumnetworks.com>\nSigned-off-by: Nithin Dabilpuram <nithin.dabilpuram@caviumnetworks.com>\nSigned-off-by: Ragothaman Jayaraman <rjayaraman@caviumnetworks.com>\nSigned-off-by: Srisivasubramanian S <ssrinivasan@caviumnetworks.com>\nSigned-off-by: Tejasree Kondoj <kondoj.tejasree@caviumnetworks.com>\n---\n drivers/crypto/octeontx/Makefile                  |  1 +\n drivers/crypto/octeontx/meson.build               |  3 +-\n drivers/crypto/octeontx/otx_cryptodev.c           |  3 +\n drivers/crypto/octeontx/otx_cryptodev_hw_access.c | 11 +++\n drivers/crypto/octeontx/otx_cryptodev_hw_access.h |  3 +\n drivers/crypto/octeontx/otx_cryptodev_ops.c       | 90 +++++++++++++++++++++++\n drivers/crypto/octeontx/otx_cryptodev_ops.h       |  3 +\n 7 files changed, 113 insertions(+), 1 deletion(-)",
    "diff": "diff --git a/drivers/crypto/octeontx/Makefile b/drivers/crypto/octeontx/Makefile\nindex 4582540..064c9b0 100644\n--- a/drivers/crypto/octeontx/Makefile\n+++ b/drivers/crypto/octeontx/Makefile\n@@ -16,6 +16,7 @@ CFLAGS += $(WERROR_FLAGS)\n LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring\n LDLIBS += -lrte_cryptodev\n LDLIBS += -lrte_pci -lrte_bus_pci\n+LDLIBS += -lrte_common_cpt\n \n VPATH += $(RTE_SDK)/drivers/crypto/octeontx\n \ndiff --git a/drivers/crypto/octeontx/meson.build b/drivers/crypto/octeontx/meson.build\nindex eca1cf1..60ffc97 100644\n--- a/drivers/crypto/octeontx/meson.build\n+++ b/drivers/crypto/octeontx/meson.build\n@@ -5,11 +5,12 @@ if host_machine.system() != 'linux'\n endif\n \n deps += ['bus_pci']\n+deps += ['common_cpt']\n name = 'octeontx_crypto'\n \n sources = files('otx_cryptodev.c',\n \t\t'otx_cryptodev_hw_access.c',\n \t\t'otx_cryptodev_ops.c')\n \n-cflags += '-DCPT_MODEL=CRYPTO_OCTEONTX'\n includes += include_directories('../../common/cpt')\n+cflags += '-DCPT_MODEL=CRYPTO_OCTEONTX'\ndiff --git a/drivers/crypto/octeontx/otx_cryptodev.c b/drivers/crypto/octeontx/otx_cryptodev.c\nindex df88a84..ed1a3a1 100644\n--- a/drivers/crypto/octeontx/otx_cryptodev.c\n+++ b/drivers/crypto/octeontx/otx_cryptodev.c\n@@ -113,6 +113,9 @@ otx_cpt_pci_remove(struct rte_pci_device *pci_dev)\n \tcryptodev->device->driver = NULL;\n \tcryptodev->data = NULL;\n \n+\t/* free metapool memory */\n+\tcleanup_global_resources();\n+\n \treturn 0;\n }\n \ndiff --git a/drivers/crypto/octeontx/otx_cryptodev_hw_access.c b/drivers/crypto/octeontx/otx_cryptodev_hw_access.c\nindex 02ec3ce..f8b6005 100644\n--- a/drivers/crypto/octeontx/otx_cryptodev_hw_access.c\n+++ b/drivers/crypto/octeontx/otx_cryptodev_hw_access.c\n@@ -241,3 +241,14 @@ otx_cpt_hw_init(struct cpt_vf *cptvf, void *pdev, void *reg_base, char *name)\n \n \treturn 0;\n }\n+\n+int\n+otx_cpt_deinit_device(void *dev)\n+{\n+\tstruct cpt_vf *cptvf = (struct cpt_vf *)dev;\n+\n+\t/* Do misc work one last time */\n+\totx_cpt_poll_misc(cptvf);\n+\n+\treturn 0;\n+}\ndiff --git a/drivers/crypto/octeontx/otx_cryptodev_hw_access.h b/drivers/crypto/octeontx/otx_cryptodev_hw_access.h\nindex f3c7a45..82d8255 100644\n--- a/drivers/crypto/octeontx/otx_cryptodev_hw_access.h\n+++ b/drivers/crypto/octeontx/otx_cryptodev_hw_access.h\n@@ -147,4 +147,7 @@ otx_cpt_poll_misc(struct cpt_vf *cptvf);\n int\n otx_cpt_hw_init(struct cpt_vf *cptvf, void *pdev, void *reg_base, char *name);\n \n+int\n+otx_cpt_deinit_device(void *dev);\n+\n #endif /* _OTX_CRYPTODEV_HW_ACCESS_H_ */\ndiff --git a/drivers/crypto/octeontx/otx_cryptodev_ops.c b/drivers/crypto/octeontx/otx_cryptodev_ops.c\nindex cc0030e..d109159 100644\n--- a/drivers/crypto/octeontx/otx_cryptodev_ops.c\n+++ b/drivers/crypto/octeontx/otx_cryptodev_ops.c\n@@ -8,6 +8,7 @@\n #include <rte_malloc.h>\n \n #include \"cpt_pmd_logs.h\"\n+#include \"cpt_pmd_ops_helper.h\"\n \n #include \"otx_cryptodev.h\"\n #include \"otx_cryptodev_capabilities.h\"\n@@ -19,6 +20,63 @@ static const struct rte_cryptodev_capabilities otx_capabilities[] = {\n \tRTE_CRYPTODEV_END_OF_CAPABILITIES_LIST()\n };\n \n+static int otx_cryptodev_probe_count;\n+static rte_spinlock_t otx_probe_count_lock = RTE_SPINLOCK_INITIALIZER;\n+\n+static struct rte_mempool *otx_cpt_meta_pool;\n+static int otx_cpt_op_mlen;\n+static int otx_cpt_op_sb_mlen;\n+\n+/*\n+ * Initializes global variables used by fast-path code\n+ *\n+ * @return\n+ *   - 0 on success, errcode on error\n+ */\n+static int\n+init_global_resources(void)\n+{\n+\t/* Get meta len for scatter gather mode */\n+\totx_cpt_op_mlen = cpt_pmd_ops_helper_get_mlen_sg_mode();\n+\n+\t/* Extra 4B saved for future considerations */\n+\totx_cpt_op_mlen += 4 * sizeof(uint64_t);\n+\n+\totx_cpt_meta_pool = rte_mempool_create(\"cpt_metabuf-pool\", 4096 * 16,\n+\t\t\t\t\t       otx_cpt_op_mlen, 512, 0,\n+\t\t\t\t\t       NULL, NULL, NULL, NULL,\n+\t\t\t\t\t       SOCKET_ID_ANY, 0);\n+\tif (!otx_cpt_meta_pool) {\n+\t\tCPT_LOG_ERR(\"cpt metabuf pool not created\");\n+\t\treturn -ENOMEM;\n+\t}\n+\n+\t/* Get meta len for direct mode */\n+\totx_cpt_op_sb_mlen = cpt_pmd_ops_helper_get_mlen_direct_mode();\n+\n+\t/* Extra 4B saved for future considerations */\n+\totx_cpt_op_sb_mlen += 4 * sizeof(uint64_t);\n+\n+\treturn 0;\n+}\n+\n+void\n+cleanup_global_resources(void)\n+{\n+\t/* Take lock */\n+\trte_spinlock_lock(&otx_probe_count_lock);\n+\n+\t/* Decrement the cryptodev count */\n+\totx_cryptodev_probe_count--;\n+\n+\t/* Free buffers */\n+\tif (otx_cpt_meta_pool && otx_cryptodev_probe_count == 0)\n+\t\trte_mempool_free(otx_cpt_meta_pool);\n+\n+\t/* Free lock */\n+\trte_spinlock_unlock(&otx_probe_count_lock);\n+}\n+\n /* Alarm routines */\n \n static void\n@@ -37,6 +95,20 @@ otx_cpt_periodic_alarm_start(void *arg)\n \t\t\t\t otx_cpt_alarm_cb, arg);\n }\n \n+static int\n+otx_cpt_periodic_alarm_stop(void *arg)\n+{\n+\treturn rte_eal_alarm_cancel(otx_cpt_alarm_cb, arg);\n+}\n+\n+static void\n+otx_cpt_common_vars_init(struct cpt_vf *cptvf)\n+{\n+\tcptvf->meta_info.cptvf_meta_pool = otx_cpt_meta_pool;\n+\tcptvf->meta_info.cptvf_op_mlen = otx_cpt_op_mlen;\n+\tcptvf->meta_info.cptvf_op_sb_mlen = otx_cpt_op_sb_mlen;\n+}\n+\n int\n otx_cpt_dev_create(struct rte_cryptodev *c_dev)\n {\n@@ -84,6 +156,20 @@ otx_cpt_dev_create(struct rte_cryptodev *c_dev)\n \t/* Start off timer for mailbox interrupts */\n \totx_cpt_periodic_alarm_start(cptvf);\n \n+\trte_spinlock_lock(&otx_probe_count_lock);\n+\tif (!otx_cryptodev_probe_count) {\n+\t\tret = init_global_resources();\n+\t\tif (ret) {\n+\t\t\trte_spinlock_unlock(&otx_probe_count_lock);\n+\t\t\tgoto init_fail;\n+\t\t}\n+\t}\n+\totx_cryptodev_probe_count++;\n+\trte_spinlock_unlock(&otx_probe_count_lock);\n+\n+\t/* Initialize data path variables used by common code */\n+\totx_cpt_common_vars_init(cptvf);\n+\n \tc_dev->dev_ops = NULL;\n \n \tc_dev->enqueue_burst = NULL;\n@@ -98,6 +184,10 @@ otx_cpt_dev_create(struct rte_cryptodev *c_dev)\n \n \treturn 0;\n \n+init_fail:\n+\totx_cpt_periodic_alarm_stop(cptvf);\n+\totx_cpt_deinit_device(cptvf);\n+\n fail:\n \tif (cptvf) {\n \t\t/* Free private data allocated */\ndiff --git a/drivers/crypto/octeontx/otx_cryptodev_ops.h b/drivers/crypto/octeontx/otx_cryptodev_ops.h\nindex 3f2d829..ac88fa5 100644\n--- a/drivers/crypto/octeontx/otx_cryptodev_ops.h\n+++ b/drivers/crypto/octeontx/otx_cryptodev_ops.h\n@@ -5,6 +5,9 @@\n #ifndef _OTX_CRYPTODEV_OPS_H_\n #define _OTX_CRYPTODEV_OPS_H_\n \n+void\n+cleanup_global_resources(void);\n+\n int\n otx_cpt_dev_create(struct rte_cryptodev *c_dev);\n \n",
    "prefixes": [
        "v2",
        "11/33"
    ]
}