Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/124165/?format=api
https://patches.dpdk.org/api/patches/124165/?format=api", "web_url": "https://patches.dpdk.org/project/dpdk/patch/20230220060839.1267349-1-ashok.k.kaladi@intel.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": "<20230220060839.1267349-1-ashok.k.kaladi@intel.com>", "list_archive_url": "https://inbox.dpdk.org/dev/20230220060839.1267349-1-ashok.k.kaladi@intel.com", "date": "2023-02-20T06:08:38", "name": "[1/2] eventdev: fix race condition in fast-path set function", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "ad0067552e666994571146a1544b6eb4f456ce79", "submitter": { "id": 2973, "url": "https://patches.dpdk.org/api/people/2973/?format=api", "name": "Ashok Kaladi", "email": "ashok.k.kaladi@intel.com" }, "delegate": { "id": 1, "url": "https://patches.dpdk.org/api/users/1/?format=api", "username": "tmonjalo", "first_name": "Thomas", "last_name": "Monjalon", "email": "thomas@monjalon.net" }, "mbox": "https://patches.dpdk.org/project/dpdk/patch/20230220060839.1267349-1-ashok.k.kaladi@intel.com/mbox/", "series": [ { "id": 27077, "url": "https://patches.dpdk.org/api/series/27077/?format=api", "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=27077", "date": "2023-02-20T06:08:38", "name": "[1/2] eventdev: fix race condition in fast-path set function", "version": 1, "mbox": "https://patches.dpdk.org/series/27077/mbox/" } ], "comments": "https://patches.dpdk.org/api/patches/124165/comments/", "check": "warning", "checks": "https://patches.dpdk.org/api/patches/124165/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 mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 5BDE841CF4;\n\tMon, 20 Feb 2023 07:08:45 +0100 (CET)", "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 021FD42F84;\n\tMon, 20 Feb 2023 07:08:45 +0100 (CET)", "from mga03.intel.com (mga03.intel.com [134.134.136.65])\n by mails.dpdk.org (Postfix) with ESMTP id 4AF1040691;\n Mon, 20 Feb 2023 07:08:43 +0100 (CET)", "from orsmga006.jf.intel.com ([10.7.209.51])\n by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 19 Feb 2023 22:08:42 -0800", "from txandevlnx321.an.intel.com ([10.123.117.43])\n by orsmga006.jf.intel.com with ESMTP; 19 Feb 2023 22:08:41 -0800" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple;\n d=intel.com; i=@intel.com; q=dns/txt; s=Intel;\n t=1676873323; x=1708409323;\n h=from:to:cc:subject:date:message-id:mime-version:\n content-transfer-encoding;\n bh=wJFDS5XXDsLIgj7qmKaSPDR89CXCSWj0utBHxTZrS1w=;\n b=jzbmM9gXBc0pm/E3DMuNrg7SqAN3v9TxDQ+jYq0KIbRI4aUNMGvc6liX\n iOAU3jBBiCo8hFfWINsiJADnXR4CAV3CFbHtBPq9bz9aQKf5L4XWQqc3E\n yOUiN4nBJoRJ2SxXZf9Klr9dEGcacJQ6t2YeE+RDt7bsoE8crmyfrwxgn\n ztJwqRo8QSTbxhU9Z3CI98lq6E4MrolYkqsIkhshWid3MqgPbjIOmwBQC\n orZluJhwnFZdRFOg8nlVAzByCIlWafZE9DawrWvmcJmYiAW7/HrJWodPk\n CuuHhlSX0W1l/LTRjPZxjUqj7O1z6hhr6vN4YSTvsd7aN/C+VjY4igZ2p w==;", "X-IronPort-AV": [ "E=McAfee;i=\"6500,9779,10626\"; a=\"334532123\"", "E=Sophos;i=\"5.97,311,1669104000\"; d=\"scan'208\";a=\"334532123\"", "E=McAfee;i=\"6500,9779,10626\"; a=\"648722850\"", "E=Sophos;i=\"5.97,311,1669104000\"; d=\"scan'208\";a=\"648722850\"" ], "X-ExtLoop1": "1", "From": "Ashok Kaladi <ashok.k.kaladi@intel.com>", "To": "jerinj@marvell.com,\n\tthomas@monjalon.net", "Cc": "dev@dpdk.org, s.v.naga.harish.k@intel.com, erik.g.carrillo@intel.com,\n abhinandan.gujjar@intel.com, stable@dpdk.org", "Subject": "[PATCH 1/2] eventdev: fix race condition in fast-path set function", "Date": "Mon, 20 Feb 2023 00:08:38 -0600", "Message-Id": "<20230220060839.1267349-1-ashok.k.kaladi@intel.com>", "X-Mailer": "git-send-email 2.23.0", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "X-BeenThere": "dev@dpdk.org", "X-Mailman-Version": "2.1.29", "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" }, "content": "If eventdev enqueue or dequeue function is called during\nevent_dev_fp_ops_set(), it may get pre-empted after setting\nthe function pointers, but before setting the pointer to port data.\nIn this case the newly registered enqueue/dequeue function will use\ndummy port data and end up in seg fault.\n\nThis patch moves the updation of data element to the beginning of\nevent_dev_fp_ops_set() function.\n\nFixes: d35e61322de5 (\"eventdev: move inline APIs into separate structure\")\nCc: stable@dpdk.org\n\nSigned-off-by: Ashok Kaladi <ashok.k.kaladi@intel.com>", "diff": "diff --git a/.mailmap b/.mailmap\nindex 5015494210..bbf6744278 100644\n--- a/.mailmap\n+++ b/.mailmap\n@@ -132,6 +132,7 @@ Ashish Jain <ashish.jain@nxp.com>\n Ashish Paul <apaul@juniper.net>\n Ashish Sadanandan <ashish.sadanandan@gmail.com>\n Ashish Shah <ashish.n.shah@intel.com>\n+Ashok Kaladi <ashok.k.kaladi@intel.com>\n Ashwin Sekhar T K <asekhar@marvell.com> <ashwin.sekhar@caviumnetworks.com>\n Asim Jamshed <asim.jamshed@gmail.com>\n Aviad Yehezkel <aviadye@mellanox.com>\ndiff --git a/lib/eventdev/eventdev_private.c b/lib/eventdev/eventdev_private.c\nindex 1d3d9d357e..539aade780 100644\n--- a/lib/eventdev/eventdev_private.c\n+++ b/lib/eventdev/eventdev_private.c\n@@ -107,6 +107,7 @@ void\n event_dev_fp_ops_set(struct rte_event_fp_ops *fp_op,\n \t\t const struct rte_eventdev *dev)\n {\n+\tfp_op->data = dev->data->ports;\n \tfp_op->enqueue = dev->enqueue;\n \tfp_op->enqueue_burst = dev->enqueue_burst;\n \tfp_op->enqueue_new_burst = dev->enqueue_new_burst;\n@@ -117,5 +118,4 @@ event_dev_fp_ops_set(struct rte_event_fp_ops *fp_op,\n \tfp_op->txa_enqueue = dev->txa_enqueue;\n \tfp_op->txa_enqueue_same_dest = dev->txa_enqueue_same_dest;\n \tfp_op->ca_enqueue = dev->ca_enqueue;\n-\tfp_op->data = dev->data->ports;\n }\n", "prefixes": [ "1/2" ] }{ "id": 124165, "url": "