get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 26521,
    "url": "https://patches.dpdk.org/api/patches/26521/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/0a63bddc25e2446c0f07bbb10397fabce733ac54.1499278209.git.yskoh@mellanox.com/",
    "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": "<0a63bddc25e2446c0f07bbb10397fabce733ac54.1499278209.git.yskoh@mellanox.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/0a63bddc25e2446c0f07bbb10397fabce733ac54.1499278209.git.yskoh@mellanox.com",
    "date": "2017-07-05T18:12:27",
    "name": "[dpdk-dev,v3,4/5] net/mlx5: select Rx/Tx callbacks when starting device",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "29f3f6fe0f1f170cea0e17a2b39162c4409d3986",
    "submitter": {
        "id": 636,
        "url": "https://patches.dpdk.org/api/people/636/?format=api",
        "name": "Yongseok Koh",
        "email": "yskoh@mellanox.com"
    },
    "delegate": {
        "id": 319,
        "url": "https://patches.dpdk.org/api/users/319/?format=api",
        "username": "fyigit",
        "first_name": "Ferruh",
        "last_name": "Yigit",
        "email": "ferruh.yigit@amd.com"
    },
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/0a63bddc25e2446c0f07bbb10397fabce733ac54.1499278209.git.yskoh@mellanox.com/mbox/",
    "series": [],
    "comments": "https://patches.dpdk.org/api/patches/26521/comments/",
    "check": "success",
    "checks": "https://patches.dpdk.org/api/patches/26521/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 [IPv6:::1])\n\tby dpdk.org (Postfix) with ESMTP id BBE2E5905;\n\tWed,  5 Jul 2017 20:12:51 +0200 (CEST)",
            "from EUR01-DB5-obe.outbound.protection.outlook.com\n\t(mail-db5eur01on0043.outbound.protection.outlook.com [104.47.2.43])\n\tby dpdk.org (Postfix) with ESMTP id 9D7005689\n\tfor <dev@dpdk.org>; Wed,  5 Jul 2017 20:12:46 +0200 (CEST)",
            "from mellanox.com (209.116.155.178) by\n\tDB6PR0501MB2038.eurprd05.prod.outlook.com (2603:10a6:4:6::20) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1220.11;\n\tWed, 5 Jul 2017 18:12:43 +0000"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com;\n\ts=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version;\n\tbh=zJg6kqzg9IktvWSZD8JvzTRH+c0X1LavRma30Qj/rmk=;\n\tb=bM6YuWbRmzOHk0Yiy2C3/nRl5GgUff7pGlxMl/G49KZb3tpNKy7tNgwS5IwjOfnN1bygYWBd//BY4NoW8QSVGybtvFrc9UOz/5oAThGMhmDEsADHqEq67zXUJXiS5dZAEz8c/QjFY9uosy5DXUsbvLegXKpYDAk4MQ/AUvoeniA=",
        "Authentication-Results": "intel.com; dkim=none (message not signed)\n\theader.d=none; intel.com;\n\tdmarc=none action=none header.from=mellanox.com; ",
        "From": "Yongseok Koh <yskoh@mellanox.com>",
        "To": "ferruh.yigit@intel.com",
        "Cc": "dev@dpdk.org, adrien.mazarguil@6wind.com, nelio.laranjeiro@6wind.com,\n\tYongseok Koh <yskoh@mellanox.com>",
        "Date": "Wed,  5 Jul 2017 11:12:27 -0700",
        "Message-Id": "<0a63bddc25e2446c0f07bbb10397fabce733ac54.1499278209.git.yskoh@mellanox.com>",
        "X-Mailer": "git-send-email 2.11.0",
        "In-Reply-To": "<cover.1499278209.git.yskoh@mellanox.com>",
        "References": "<20170628230403.10142-1-yskoh@mellanox.com>\n\t<cover.1499278209.git.yskoh@mellanox.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain",
        "X-Originating-IP": "[209.116.155.178]",
        "X-ClientProxiedBy": "BN6PR16CA0014.namprd16.prod.outlook.com\n\t(2603:10b6:404:f5::24) To DB6PR0501MB2038.eurprd05.prod.outlook.com\n\t(2603:10a6:4:6::20)",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-Office365-Filtering-Correlation-Id": "b71af646-0343-4308-a1e3-08d4c3d16f3e",
        "X-MS-Office365-Filtering-HT": "Tenant",
        "X-Microsoft-Antispam": "UriScan:; BCL:0; PCL:0;\n\tRULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(48565401081)(300000503095)(300135400095)(201703131423075)(201703031133081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095);\n\tSRVR:DB6PR0501MB2038; ",
        "X-Microsoft-Exchange-Diagnostics": [
            "1; DB6PR0501MB2038;\n\t3:W3WSZPSS5VH6rP7eWl3Gg46N5Ya9rtthBkSN+Fhkr3KPrFae5hpNYTJ4Wy5zbceDBXhmtOotNK4M/NyI26qh3eQnlaJfAVTUaqlcgb8WDoriRDlI08npjtk7M9kCyajz9dloe6mGbyHyH2irn1SGYCBI8Oa2qYXXJojTIOgMf5Wxo6EZYnkaH91ajWucnKWeNIsZyNyH5lgVN8t/RYHWfOndVNRNfHAVJfEnpO2dIc6MOa+O5tR862ufhUq/MM6EFKsnY3Z1MQGYMu3tHc7OhUmRyrLOrbvIrv0QkJPhrpEtSGQUlL/E2ovZKyjuvQjq4oi1fkhTROE8GjwUGUDKmQgbRWyalChOfFrN9L/bav2GMdGgdC3Q+mF8m8pd9/KE+k9XvY+3RuWEq7w8GPzWKY6F+qh4F6iWvB0b7T70bLUxYDRdZ6DfEoJvOv4HkfFwXbtF0vtEzSnE7o4WK4EWot8sm9WtyxKsGPfosVCNXO0uypqAFAzyMpzvkOrnPScIzasvOYizyYJkAtYZeHDMuMYALYAO5mnSzQ31qMCknmc1JIpzcm7a65g+hOgrED3qP3ttIP218WTPGxqg02iURwJf1SpLBswdfvgBZOhkM12aGHsSsruiCK6uNDBO9MiRTwNfRMMwCPfluWPWygzMSOPX/eu9j4iukF3cZsK2WX/AiWP3cf1BMcskK2c1RX8wJM4wdByUVg6uHzSujxtART8wJD4neDqiRfImpQc2ZA8D5YAsx4Wpx3kU0sSPTfuYHfVSpPInzAJVjX3ZqePeRA==",
            "1; DB6PR0501MB2038;\n\t25:TpN/P/F2LxxqzsBlAcw55eZ+CyuUqMinraHH6D84iwgkNYCe2LAHX8FTusfu5hXFxlh6ElUE01lSCpT0xMCsDo52jtPPzWZgidcJkpZSzkSqwnKS8hVfrc59+UbNLx36hiUjSjeXUA2dR1ld3dCj8DgHtC20Zsf0awmT4cYy+d5N6K/ZEag6iT/xOYdZpxeDjIhkNlzMg19hXQ15YYU3gkqynTdOifKXvi3AjeFN01ngUzYyAqJsMUL8UGnZHmrBudBUyt9mjUfuF5ikxdGJoTCeWGeMV04hU6Tkdt7u5o4vocC18+JC7+lC8276PNQJmAQricTNSKXkN+b96jYm2iWnC88yPOZ5Cr3uqAqApNpqtE8SWDvejzGwPDUF+h0GnDgJeGTMJoa2zdIBXCXlNySNzsKsR91SK/Jw0Kw5yEnn5qATUdA/pfqxhbPx5eIvLoxN4kP85D6nQvwYdNSffnqktQuI8zddS/MD51FcLx7TqVNrQeOHbiiiAFX22GgQE5iDA7kxruMANAuoFm0Bo3QB/DOVPDmdpSv8nOquSzwMbJeaLNhSfXNRxK6Tclh6wgVO/h9C8UAX94NOoBy3cnq057RiUi92GmK9Il70VkFuqG6E2yZfVON+Q8Oo357StB4WJ2bgd+BkrXM41mLf/WBpkYNE83ihRGyxMGakhbCpehOLAIiMM2l+yyYpoSp6oyREqSvIb/PDD6Nok+xeHNMftcsCFsNvn5eASf9iFwHcofIXPUIafIpmKAY16AlB9oELhgAbZQu0QzAHeaFITWDUZj/6uR4a15m7ZsZY75302xst9tDy4Su7UGEEYZ3aI6aFexSEjVjd4IWF7z6ZGmCAS/8zkRV3alFRE0RGPBpNNsLDaG+WFpFIbn49JEEqGfTyl5e2Z9x28Dkp28NQlI12VMsl7A/bKX8B6TPKVb0=",
            "1; DB6PR0501MB2038;\n\t31:bU08nSGQ0fUP5fClLmIe6PJxeeuFWBVoUafnhX09AHEvJQkblBLL+ATM/Le+jtv+be/Qy4LuBRG5mow9T1eXhKP0vBeRm08OPK9rZ8S/ClCBFyEX1BiU0L9g/NtvJQbvqFjA5CaAlPvtAR7cjLOf6sQios185bdvz+VtlkTnnzHsaMn3nXyFieqlX4zniQS8SRlF6+8Nrer0Nh+cac6fiiSw7zd9SICaB6wnBxMeUYt/uQsrRHqqv87ShNVyAhz5e8UKvHHar8AATS0t0JFY2Gl1CImkfjWS75e40VcOhDVMhf+29i2aD26WkIhUcQM4SkCft8JYLAJlJj4BAo3SL100QAA7qdJzIU/yhokJGDdGtjQqbHqBF7yWsZPDw2OfWucDZra//Q5tPppIA/qmgihvyllta+E4ikPGXBB8HD1OGDPYnRyYCxtipHI7g0VMnV/Xmuq2KIZSJnQtoe4+MU22P/8YOkGUizwJ41gvuwrMDRsoalCFenHsbLt2GHFe1sriEdkAn8ng1p4ihmTpZGJBFHS40vH32vIvkzzchTfugKM3LmeQJwCE1fXcvEZA7PuttXuC8A0FPEkNTnKSMm/33IlxVD6uC/sIpZzjkYJJ129vjzuOQl7x1Eay+PpOq2fvHmzLw0tD0CjcCz0pZHS0JIuVdbadKL5S05cnJwe0xd2PePx4Iy7AG6q1K820r+3ErCRoOZyfz6E69A8ILA==",
            "1; DB6PR0501MB2038;\n\t20:fOIY726MC6+4ikyClnPkta2TD+qQLk3vykQjlb2nB20O1F4BUVWsgjL9VqJ0DVozJdLEnDUWFZ/qu+vA7fzhMP3rpRIHVFCdjs6NZfXZo6zRFolOOrquGef3dP4W6BHLNRv2ESEA0oFZuFHkAwDACf75aB6ylXBecu9yioo/QUS8xlYefSd7pDb3F1JpbQB2WZ824JLpBe/W1KLGLSoXR7aPar2zvl1SQnNUdvYuj3wzQwLtnypcgS5c7TjFgH7BDht1Q9MXj+qU0JoB5Jc6m3uzKZrnhoWES5GwSDxLxTbsG7njQd8GDHSEomLmFSlq+RZSDOLwjUj7/uQpdDCdXYwqYZZ2luy/afD8PhL72jnI2I8gWvHszczxKkVjusmYbXOOPcMoaI06a7PRCXQHqEkcIZ6ln5W1cKrjhFGCqW+R68SF3VO4JFSNRNWs7V0zgRrzOWHdB9D607DDhDYFkqsSkt6XM3E9DwTo+y9dBXWVIHvtTZJnzYAwqH54e3lY",
            "=?us-ascii?Q?1; DB6PR0501MB2038;\n\t4:vPMfWkC+pQwoA40MHE0ybAUfsaFWzKTtWsG+q3tz?=\n\tMG6aC+jBtzZgmzFRjvDMi4wrp/3cucClBLkdACA9VQuy+GBeRjmbBSP27v9vA/X7bA7qCBib7TEJCMCumLIVzUI6VOBTQp67LmS83kLpkdyYpfOZtgNP1WRoo/6ECiQ4ZX42COrMht8MnScyKbVpSkG7GpD8J141uwTkwyeIGsT6Ob8+GQEZnLGEJYs6WAGCFVsZBNufkcy1lppnYH3bVorE2gD2k9MbmMcN0qbxNQn2o4ksksQYfcOmezd2ytMPfPWhzkyBwUXdiSQ8XqzUn5yLHOlHWuPj7RzlQ5JmRSUcQ5RsGKe00Ot7I1Y5JX3Gja+/suDpEssOuBMEkQLMQQy+fjjf1cA9k21dcI4Nbmdjrye08zeqVV93bk1eRvchcOAArfJfSmwK29SWFO3/HHlCgHOudGYsegIRsas3HARbZMEfCFftDKwNzjQdlAxIJUFFBjwZxouvIC018WgKMCFVEDf9pjP6L09HFshpUJ4nB0aEmFb+ekU6h4bBGHsDAjvuNGbPdPR6DnosecgB5+UGPM5HOcasvgWVT1W3L3yqpS17UngYQ/dNpooB24W9YzO4LSTSlol5rawNYSX39yPNzrbbmGscpXbixn6sJPk9Bt9ABlB6vsKyhMcUy45R2TOMDEGUuWH6/4lPPiDYDF1maYdxsOXb41ETGPdHEs+3ek7GXIw/b4CseaTkPjqRte6fv7hK+NKWovHt7p4MAT9wmvlpdWr21GLnn+LNA9kgNSi1p3KEmyBGU6b0RRLkQskza2vNk/eVoT4EtNPf4V+x43yZnD/kZP0HsfKq9l2I5lShVdgTurOukRamDQzQ51VILKjsz8uNSSuLrkG99xytNbWFR6NqKMbKgXTHYyv9xb8YIDvg/EJg+5Nr67WJgqEP6a3dcjBNWEWEEoZ/OdflJujxrAVvbLSQIxZvoZVURl6i3obzKd7EDDpH7z/ma+88tRHzDCnYsqypKBdKVKuuUAv0rUOLCPLiHW2Dps3mQskSK7B0saLyAcxMi4+dZ3aIakunip8W/u9TPVHYNBUYNM830ONgKF+0u45BL75Sh39iXBctorsGI9ZwK2dnngqHGJrwKXO0I95KbQTwWDD08lZh7suRZ1Q/S1zzV7uE/5Xe3vmsWW8GU7kjgLSOGLQJ+Fm9RTRkPE0uEe1+vineY7ooRE6Sji5SR4Bj6aCYPnUPt1rGgOrCJLHq6PbZ9a4AUn9i6gvSWZZzElIcBa0cNz8Fz+ccpg9thZTIxm+keUbmmPRMMAAQC2Jh44pHf6Y=",
            "=?us-ascii?Q?1; DB6PR0501MB2038;\n\t23:DJRRETh6k/Te3rOf9FbIYdalHOkwkX8XFgQXiju?=\n\tdXGPV9hNpj2gWIeJSK0W8aS8d/gnEq7P5tbMnrY23H2O2HE1yMTvi/sxu0at0XXFBL3kX1rdjTvTJu6ceS73QAZfcr77JPHRIbyzLXKIbReThbd7BHjVUhsDtFaa83A2vuIjHqRi0wN4CZ5BhBfHpMV9vQY0l+TGHFckAPU+eupca9gjnPwOaWP7NOUr9M6lu2gSTEBB5DBOBpQlDY+GAoiLxnkAtk5D8YbMBtI4LXlOZGIsOwdir0Z1DtqlUrkpE/QcFVKoi/nLeb5Cmkj1AY7ZMGJ3RIWzstjOivoqH8afkcio619T7RygDc3muH5O01vVM6XCaEHQrZnwH82UpzQbg2vuAsWaddwugN/GoCsih60jnZGpS8FQOylgxg4xulckB1TrNnsf7lPk/TatQLa5809MdEYpydfloZBj3HcnD6QudT68hmfUl0s11jUBb5Dx4QX999YyiybGHJmMfR4NFfG829JxYQXlzVVPJ4YbFL5xipMIePW3SRu5FtIjxBefD8m4ZUB0Qz2/Czsw7QwbPeGSJI1yHZJ0xpY6WC/s7SbqKP9V8IcIPM4rOzI6j1/RjZflfAC/2452QDrVWuNeNOrG1bX3J5Pd2BDF7TVHp8RZlTdAymip9NkqU5z1i2tqn93SedLdu9HREhTuB4ZnmwTp9ZwAP06JvqGKrsbBUtMGCAZz0ctnoeDYtJNvJZvAG+YdldpxFv1BqlNt9a4kcYedaD8lRsNIsC022wup+n4FLhQ3exboNIb+jxtYLHyOmeViwy6afCS0x3IrJjMPaNPzw4LMyGK6Pct/qES4qac5kQz7Yt609We3lj7iuunF7nGxabVO8k3BwGpbNqrgROKwKEY4OiMbsHTF5kFBIT4JiYq6lrLGft5OxWSkmuTFkatahBy3ClJcvuZ/3c8d7mscBQg/Ppo1NOeSl5KD8HdTTN/NBJwYrgcZ8HE1Ozq3XOFAGs/sraShjHPporxFd5YdZJm+ee3zzG/6lyN6WT1X2CcDaS8lScvtDxEyAHHYIFJxNPskxLCoMkcMnyd55u4oQN85xdPxixR/szPDfHg==",
            "=?us-ascii?Q?1; DB6PR0501MB2038;\n\t6:UDEGBgNeIlPW/OAI2qEu7PSOZ92gfueahwMcpVor?=\n\tl2TDbiFo/e0+KN/eaJfX3X3PjJAipjV1bujRIu6h1DcggiT8/9wZMo7ihb4IpkdjqzC1Nare43eTXrr0xasLScAeJb3yGNUpqbZ2zeD3HEVhLTVaO8xllAfEOJ69zmO9iUasAT4bNJksUtxypBplmzNzNAYtyXveeQRqRw9HxbLWXupGiDLhvAcm3GHIOoTgdtTSVsgsBlfRb5MkOcv35Z1oYu5+Mwwl585lo0BgJoSMeTkCAJ+372PkdGmL8JGN6epxyZCMaGrS0OoLGwWs0g+bAPIp40hKQOlZ5bAGisoMRHDTJ8MBAuD+F7Fb4pocL2TaDmJo1pp+vKoy0DQ+Eq8FxYEszlsXBHZoHFoPpyOiW6cR0LhJCLsyQHz/lKUjskgBokPoQuUuET7LaE2jE4QInVwwzs1ysUX99oe6+cpkI8BOfoMXJCMC9dnyvNu41KIa0ea2UWxz26Dd6E+nckieOp3TDD9hIMDEWpPN5SmfxShY89zOi7B+/LhlKP22/1JqdUf6Rnyrpg4D3rnIUgUcKKjmeJsQ/edh/VE1ezu/qzGgm9zvzlg9oMkaZRQZ0l4g5VRgKnOgEbN/vcEXBiXoe2Z+xIkvuWoglt7rtS00mmbr5LcqfLmOKfRHS7stCW6O6Lw6K8Qm2vB8+0fWu1bKT35acHOhicc+P8jMLqIGnApTbIK0ROyISWBT7XHs/lxDnIFsTn90IxN5XAFbFJHi63jr1VwldRUtHmrdp8pjzxmb6YUDesvqxWpomBtoL01HDToQDyAEZGk18HRBRD+2ktAbl5v1i2ZMy1fqZuOdzyv3g5HzULFeVFbbcf2tJNUJJ4KcucCsmIaazfyzWqTEx/ku3uy3GKRHmCC19TF2A+rmmp5QgX/jfAp+XXie0em5dWcN0RS2IxF1X1gchikOz3QS/FOxFCJmP5mmKYQay9LXltKAjSNi3ijeuQfJxh2Ui+DJ8Dzi5AckrMMPMqU0",
            "1; DB6PR0501MB2038;\n\t5:QHR+q2+Xl9/XGEcuHVFFJ41NmLmumlkva74K65UIXoe6I+COOEiXRhobB2nKDpX/E7wL8mmcQXWD4a3hF444Qc6U5xE6iCbKfkCGW1DjPb+3pZMKvvwM856viXVk/FAamp83Q+6TZ254lcqw69xULpH12b8MehthOnaLet/liYg5TaBzWrLF7YKGCRRh+M0PYkRaxj0qsJ+U0HtQf07KlxZVijXC+hhdjpkEozKrbRA124rZnxtHCi0nszlNbwOzDNGkd7Ur7X436d7oJ+zUL8mMt8av0X1mVCTY7GeWzKV+uWHaaMg7liKg0SnH3gGuiaih9IFHsmISxgfL7J+9TOuyoYozM64NARWSGJCxk+AbPoxeYNYMHz0k4tGcYC+5MMa6SkyKsZswQJL/9EWexY8VZmMvhPASuNmaJT3Jh7j9f3Ohgafnz61LRMnvqzmil3xzWRP+u61pDre/Ep9+MEQwxxkwrs//OqpTCnTaB5FgmhCYRAx1/AyqR55HPvRR;\n\t24:6HAWSm1C6LJUG/QiBBR33brIcu033EHzjmtBjt5+UylCZIAZrk5G5D0q11LDENJf6v72gxBelKcYDOHKu2XKiPXcY/YpLd1BQoLEyaDIeds=",
            "1; DB6PR0501MB2038;\n\t7:MdyyVnuPiqCz4qMw00aHilxQrz9y62Z2duUoaBi1lyFZ/WpV44D2VYSMi5gdtS8/anUjx8vM9tl1wUL/N1cCyK/em3exGnkpegqWnu2oFDZlXZUIfeJzCBQe2/CsqSpwxzaz2DQNeuo49wjQRiQ57cPwdUYtndBa6wH9TWNjFdDivYdVDoExdaolKwwYz0D5af+WoX+/y4VblHp/6P8lWRXbAIM9IUyVS7pLrQdNLEkfHDVGsPvuaXlxkvlfSYBFZL8oS03xLSigNHrZHzfhrcdK6PRBkknvmTO0IOKk9AMIxi0dcCLd2opxZqUd+RIDx7/bNG90MJnsx4hx9vpghQ5PcDLrhmZNTAtZ9UGsOnz/dTvozJpFLIj2QT/Sg3PChpCLLq4YOfmVBlud35LXoU8OFyOtrbbOlgAHsAdZr7bxen1GB0oPh6q3DWRp6b2a14bQu6TBoOytMVifBYSMtfaoYQMnLkOVzrweKebiT1+UWw8QymA5r3DBAEqs4mOfn5NogasftVTQ5J/P4Wh/qDD3xiY4/LWNYjRY2ZF9QCXIGaD7Q19NBKvRimt0WgRnqm2XagUlgr2vpMRg3UubGDDgcBDEw/pakEvi4LRxsQvonicVncPWC8+IqYr5BIRNeQRQ4czsUW9dVmN/oqYCNTgw0GJIPmgw4yaGFOmwHp8HOF8g1rHCpPgwj7wxqqxm29/BY419gTG/e2+pm0v6KBM0F1hv3iQbQZ+y8FEzl75Ah/R97ZuKG9eayOlC46QMJiIFpE3abDGh9/jxhV/vUSiwmAqZWrE5wWhLkn9OW8g="
        ],
        "X-MS-TrafficTypeDiagnostic": "DB6PR0501MB2038:",
        "X-LD-Processed": "a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr",
        "X-Microsoft-Antispam-PRVS": "<DB6PR0501MB203845337F3A49D8B02CDEB4C3D40@DB6PR0501MB2038.eurprd05.prod.outlook.com>",
        "X-Exchange-Antispam-Report-Test": "UriScan:(236129657087228)(788757137089)(167848164394848)(247924648384137);",
        "X-Exchange-Antispam-Report-CFA-Test": "BCL:0; PCL:0;\n\tRULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(5005006)(8121501046)(3002001)(93006095)(93001095)(100000703101)(100105400095)(10201501046)(6055026)(6041248)(20161123555025)(20161123560025)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123562025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095);\n\tSRVR:DB6PR0501MB2038; BCL:0; PCL:0;\n\tRULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);\n\tSRVR:DB6PR0501MB2038; ",
        "X-Forefront-PRVS": "0359162B6D",
        "X-Forefront-Antispam-Report": "SFV:NSPM;\n\tSFS:(10009020)(4630300001)(6009001)(39850400002)(39840400002)(39400400002)(39860400002)(39410400002)(39450400003)(8676002)(189998001)(33646002)(50466002)(4326008)(7736002)(5660300001)(5003940100001)(25786009)(81166006)(86362001)(305945005)(50226002)(48376002)(3846002)(6116002)(2950100002)(2361001)(478600001)(2906002)(6666003)(2351001)(50986999)(76176999)(53936002)(42186005)(6916009)(55016002)(36756003)(66066001)(47776003)(110136004)(107886003)(38730400002)(118296001);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:DB6PR0501MB2038; H:mellanox.com; FPR:;\n\tSPF:None; MLV:sfv; LANG:en; ",
        "SpamDiagnosticOutput": "1:99",
        "SpamDiagnosticMetadata": "NSPM",
        "X-OriginatorOrg": "Mellanox.com",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "05 Jul 2017 18:12:43.6945\n\t(UTC)",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "Hosted",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "DB6PR0501MB2038",
        "Subject": "[dpdk-dev] [PATCH v3 4/5] net/mlx5: select Rx/Tx callbacks when\n\tstarting device",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<http://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": "<http://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": "The callbacks are global to a device but the seletion is made every queue\nconfiguration, which is redundant.\n\nSigned-off-by: Yongseok Koh <yskoh@mellanox.com>\n---\n drivers/net/mlx5/mlx5_ethdev.c  | 23 +++++++++++------------\n drivers/net/mlx5/mlx5_rxq.c     |  2 --\n drivers/net/mlx5/mlx5_trigger.c |  3 +++\n drivers/net/mlx5/mlx5_txq.c     |  2 --\n 4 files changed, 14 insertions(+), 16 deletions(-)",
    "diff": "diff --git a/drivers/net/mlx5/mlx5_ethdev.c b/drivers/net/mlx5/mlx5_ethdev.c\nindex 96bccd5fd..4a77eac50 100644\n--- a/drivers/net/mlx5/mlx5_ethdev.c\n+++ b/drivers/net/mlx5/mlx5_ethdev.c\n@@ -923,8 +923,6 @@ mlx5_dev_set_mtu(struct rte_eth_dev *dev, uint16_t mtu)\n \tstruct priv *priv = dev->data->dev_private;\n \tint ret = 0;\n \tunsigned int i;\n-\tuint16_t (*rx_func)(void *, struct rte_mbuf **, uint16_t) =\n-\t\tmlx5_rx_burst;\n \tunsigned int max_frame_len;\n \tint rehash;\n \tint restart = priv->started;\n@@ -944,7 +942,7 @@ mlx5_dev_set_mtu(struct rte_eth_dev *dev, uint16_t mtu)\n \t/* Temporarily replace RX handler with a fake one, assuming it has not\n \t * been copied elsewhere. */\n \tdev->rx_pkt_burst = removed_rx_burst;\n-\t/* Make sure everyone has left mlx5_rx_burst() and uses\n+\t/* Make sure everyone has left dev->rx_pkt_burst() and uses\n \t * removed_rx_burst() instead. */\n \trte_wmb();\n \tusleep(1000);\n@@ -1018,17 +1016,13 @@ mlx5_dev_set_mtu(struct rte_eth_dev *dev, uint16_t mtu)\n \t\t/* Double fault, disable RX. */\n \t\tbreak;\n \t}\n-\t/*\n-\t * Use a safe RX burst function in case of error, otherwise mimic\n-\t * mlx5_dev_start().\n-\t */\n+\t/* Mimic mlx5_dev_start(). */\n \tif (ret) {\n \t\tERROR(\"unable to reconfigure RX queues, RX disabled\");\n-\t\trx_func = removed_rx_burst;\n \t} else if (restart &&\n-\t\t !rehash &&\n-\t\t !priv_create_hash_rxqs(priv) &&\n-\t\t !priv_rehash_flows(priv)) {\n+\t\t   !rehash &&\n+\t\t   !priv_create_hash_rxqs(priv) &&\n+\t\t   !priv_rehash_flows(priv)) {\n \t\tif (dev->data->dev_conf.fdir_conf.mode == RTE_FDIR_MODE_NONE)\n \t\t\tpriv_fdir_enable(priv);\n \t\tpriv_dev_interrupt_handler_install(priv, dev);\n@@ -1036,7 +1030,12 @@ mlx5_dev_set_mtu(struct rte_eth_dev *dev, uint16_t mtu)\n \tpriv->mtu = mtu;\n \t/* Burst functions can now be called again. */\n \trte_wmb();\n-\tdev->rx_pkt_burst = rx_func;\n+\t/*\n+\t * Use a safe RX burst function in case of error, otherwise select RX\n+\t * burst function again.\n+\t */\n+\tif (!ret)\n+\t\tpriv_select_rx_function(priv);\n out:\n \tpriv_unlock(priv);\n \tassert(ret >= 0);\ndiff --git a/drivers/net/mlx5/mlx5_rxq.c b/drivers/net/mlx5/mlx5_rxq.c\nindex 22be999e8..98b20eb92 100644\n--- a/drivers/net/mlx5/mlx5_rxq.c\n+++ b/drivers/net/mlx5/mlx5_rxq.c\n@@ -1226,8 +1226,6 @@ mlx5_rx_queue_setup(struct rte_eth_dev *dev, uint16_t idx, uint16_t desc,\n \t\tDEBUG(\"%p: adding RX queue %p to list\",\n \t\t      (void *)dev, (void *)rxq_ctrl);\n \t\t(*priv->rxqs)[idx] = &rxq_ctrl->rxq;\n-\t\t/* Update receive callback. */\n-\t\tpriv_select_rx_function(priv);\n \t}\n \tpriv_unlock(priv);\n \treturn -ret;\ndiff --git a/drivers/net/mlx5/mlx5_trigger.c b/drivers/net/mlx5/mlx5_trigger.c\nindex 40f23da93..595a9e064 100644\n--- a/drivers/net/mlx5/mlx5_trigger.c\n+++ b/drivers/net/mlx5/mlx5_trigger.c\n@@ -72,6 +72,9 @@ mlx5_dev_start(struct rte_eth_dev *dev)\n \t\tpriv_unlock(priv);\n \t\treturn 0;\n \t}\n+\t/* Update Rx/Tx callback. */\n+\tpriv_select_tx_function(priv);\n+\tpriv_select_rx_function(priv);\n \tDEBUG(\"%p: allocating and configuring hash RX queues\", (void *)dev);\n \terr = priv_create_hash_rxqs(priv);\n \tif (!err)\ndiff --git a/drivers/net/mlx5/mlx5_txq.c b/drivers/net/mlx5/mlx5_txq.c\nindex ac9dfc5f0..03e23f58d 100644\n--- a/drivers/net/mlx5/mlx5_txq.c\n+++ b/drivers/net/mlx5/mlx5_txq.c\n@@ -496,8 +496,6 @@ mlx5_tx_queue_setup(struct rte_eth_dev *dev, uint16_t idx, uint16_t desc,\n \t\tDEBUG(\"%p: adding TX queue %p to list\",\n \t\t      (void *)dev, (void *)txq_ctrl);\n \t\t(*priv->txqs)[idx] = &txq_ctrl->txq;\n-\t\t/* Update send callback. */\n-\t\tpriv_select_tx_function(priv);\n \t}\n \tpriv_unlock(priv);\n \treturn -ret;\n",
    "prefixes": [
        "dpdk-dev",
        "v3",
        "4/5"
    ]
}