Message ID | 1525782013-17527-1-git-send-email-rasland@mellanox.com (mailing list archive) |
---|---|
State | Superseded, archived |
Delegated to: | Ferruh Yigit |
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]) by dpdk.org (Postfix) with ESMTP id 7C8527EC0; Tue, 8 May 2018 14:20:29 +0200 (CEST) Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01on0045.outbound.protection.outlook.com [104.47.0.45]) by dpdk.org (Postfix) with ESMTP id 40B537EB4; Tue, 8 May 2018 14:20:27 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=lUS5iP6MA9QLxz0TAFETnc9w4gpG6arNrpFVyolgCZM=; b=NBhDD7GMFeZ11XmRtUYFONGJu7ho8VX+As+0g6lA/uN/FV9u3eLWgOXXsy+5Ans5COPVpijZ9Xhg1ZJbKOWHIhNWnSlyO8AxX5qM50l08BWill9+vrY6IY2kJ/9GWtJnFhaPBfHBh5aRcA/syOJ5VnNRM+jVNcGeqoo2iKmrBpA= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=rasland@mellanox.com; Received: from mellanox.com (37.142.13.130) by DB5PR05MB1256.eurprd05.prod.outlook.com (2a01:111:e400:51cc::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.735.17; Tue, 8 May 2018 12:20:23 +0000 From: Raslan Darawsheh <rasland@mellanox.com> To: gaetan.rivet@6wind.com Cc: dev@dpdk.org, matan@mellanox.com, thomas@monjalon.net, ophirmu@mellanox.com, rasland@mellanox.com, stable@dpdk.org Date: Tue, 8 May 2018 15:20:13 +0300 Message-Id: <1525782013-17527-1-git-send-email-rasland@mellanox.com> X-Mailer: git-send-email 2.7.4 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [37.142.13.130] X-ClientProxiedBy: VI1PR0802CA0011.eurprd08.prod.outlook.com (2603:10a6:800:aa::21) To DB5PR05MB1256.eurprd05.prod.outlook.com (2a01:111:e400:51cc::14) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(4534165)(4627221)(201703031133081)(201702281549075)(5600026)(48565401081)(2017052603328)(7153060)(7193020); SRVR:DB5PR05MB1256; X-Microsoft-Exchange-Diagnostics: 1; DB5PR05MB1256; 3:E2OHTGrJs0h98rITnb3MNERf573/mVgXfzhP7grYWeXa5sTfH8EpvXk7hkND6fzXdmVFxeq4Y7IvtmxdZOu0LJ8ROoDM6QkgSTxrywqcoQccL46+E5k4TzsL7+NxNEtFuYDsb73vGqj+vGzEptTvFsa5acz6PFPPqkhH9u/Ta+gfVq+0niTzpd//U0auyK0kegtimw5Ck+W8wP65Hj9/JSM3OSVzgtJWv065CpFZl6NtNSou894W2usGKAR8+twf; 25:nnACQwXIQ2dRveFG+dtexBF0RUuGhI6vSp9+NglQ0DFcogcYlMRmd3kiTPCO2zsGQ+MfEbiezRyvaBuomR+9Eq2pyFnZOhSj0YoIpTwFqRfmiioM5r1l4OzLXwEj2dgRZ+a7axslefvYpgBcVTpFq/medM+NhwCuFVH2if8XWIkLQm8ktk0433IZ4oRPZhD2BUmP3D1TiXHZx+lGh9CbkStZH9xq7DgStYGb1Dd55FnId47HUxFfndXPMbc2GxOOVXJcruz8dZEDfIFlIFMsnsynXL1tizt2L4OpVw8tuX9YR1AX2MRfELg7dbcSSfk5vCf3QMWBGd2ayt/orkWyDw==; 31:yE4vOImsRfwHto/mbKQNLSiiHekh17oXoKL12lEr9ypJ2ckDw/FmBT6OzOXuF1lPajU+MGUv/+zseqr/P9JTycJ9XIyUFK7ILLWr7LGissa66MgUvH7zoON9LSyPHAbx5G1hm2W3wgeram9LNPlktPIgEjEhwQTldslIRL1pxE1qNC7YFD92s4M1k3jG6mfKAqSAaeM0O6M8IN+Svy6VpBMtTVC3HLJRYhSkZ1G6Lj4= X-MS-TrafficTypeDiagnostic: DB5PR05MB1256: X-LD-Processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr X-Microsoft-Exchange-Diagnostics: 1; DB5PR05MB1256; 20:va/tYPxEqI7O1rbE0SerYUDhWzYCdrgV26NipiVZ+RenJ2D9Fq9nPDltrRdqgV1lzbsmzELZ+fDh3+RxaxfkktSiovZMerYmprYVYQ9Z3eET9lI/YBb26dumJvrcY2Xgy7YV+LG+SkcBd9JMLuqGO1Mw8RVrKcsUNG9gdnbU4VP9ppRcHISMkZVOYyWNrBTCZjN2H3OUUR/fsm+BNQGG/NiEsjjmD9B9vqs7xF/Lh1ZxhoFeItme4l5RAJ8rIrhEh3W+q59z/hezXwMm6cIBTu0m878MFh786RsXr4uLF6NXN6KhEbTlp4r3WAG4tQz7D2HaSlpvtj+0FDNkME/Xrx4Fg+MLX5Gp4WSHQrtorYg30S/uLmdaco+r8lntB7QLnDRCsdpPIMsz2+astiBTyIyaA+ZQ8t7KBafxjKTq4BQHZENXfJlv1GkXdJA4wL6mVLqJ8QIpzptyOje4yG+S31yENpeqntReaj+wV2yzX4KqFENLMPmoX0e3ZahnYkLc; 4:bA3KLqTeTQbH3IPCReyQgyMnkQ9b1PLHSBA6zUZqTjrVRG2XykHxtnJL8g26uat8TlMr0DbE6tgrWbNaVdWYQ3742yPbTUMRf7bjgKVsEqBg6LJL1R7rKOYPuYawTq663St8GECBE0q4RXD3ZBcEBrAlm8Dr+eFFLK2OV+BTrLp6es4KPka2cDvdFPwQAeSrotyi/7j8ZLaBEOpLrVGAWG8hpUJKHL3O74ZxoiiN+oXdeOjGkKyN8RY2pD6YJBE4kc6Fl7a2N8ILPlhAobKhEg== X-Microsoft-Antispam-PRVS: <DB5PR05MB125666B8BA3BBC51C8FD35EAC29A0@DB5PR05MB1256.eurprd05.prod.outlook.com> X-Exchange-Antispam-Report-Test: UriScan:; X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(93006095)(93001095)(3231254)(944501410)(52105095)(10201501046)(3002001)(6055026)(149027)(150027)(6041310)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123558120)(20161123564045)(6072148)(201708071742011); SRVR:DB5PR05MB1256; BCL:0; PCL:0; RULEID:; SRVR:DB5PR05MB1256; X-Forefront-PRVS: 0666E15D35 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(376002)(39380400002)(366004)(39860400002)(346002)(396003)(189003)(199004)(2906002)(86362001)(5660300001)(69596002)(50466002)(33026002)(55016002)(3846002)(386003)(486006)(21086003)(4326008)(50226002)(6916009)(36756003)(6666003)(476003)(186003)(16526019)(81166006)(48376002)(2616005)(8676002)(81156014)(26005)(97736004)(8936002)(105586002)(16586007)(68736007)(106356001)(7696005)(7736002)(2351001)(305945005)(59450400001)(51416003)(2361001)(53936002)(47776003)(316002)(956004)(52116002)(6116002)(478600001)(66066001)(25786009); DIR:OUT; SFP:1101; SCL:1; SRVR:DB5PR05MB1256; H:mellanox.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; Received-SPF: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DB5PR05MB1256; 23:pvZ6dFvpxmgc8wHzE44+0fu8/LKTAmQ6WdYlb044w?= 0W7qjXnToO/huMT6FhT3VK0bGV+SJjcoyPpp4OdT+HQQ8xn3L+V97yPhNxF9WVx9TVBwStgPMsuG5KAdNaHTbmEhobVaodOy/46p2bOKOwFfzjJ5L/HtJ9X0lpn71qjtCs9OfdlSVeqO0zUvjBFzev04DksapRd+PzSrmPp/EmF5FjVlwvm7ZyEk40CXFzy9cq6GaUlg5DXYXzCsgpeBxQTyKQRVNvZgfe8A7W2Mz0wLnMnFROl32woCoRovV8gXIUk0UuHdhw1Gl7+ExjdoLLLa/wDbLM8mmwiXysmgNJdVutJe98Nbr4pZUZOW+IrYnzXsmh1Bg7QVnVsG2pLgQbP+u6QHMrrW4NaGoxpqAAHYrSxAsFDLiZ8FPkrqvcshxQOuA4DoR+/A/zYZMYh48HUzkSn+DO8pHLpMBVQP0flFNFRC8xf0D1u3hhUiGqiaNE7DtdDV5WA1rjQfFEy4c5/rbrw7/P9HCpBgDnfpd/WKMMVHLBIPwD2KhhsT8w0LzL1DrU5gcw8Y8YbAf5vDk74h8CORQlN85voUtUhvJ6zueDEMCxkrQr7Qs6S75OyMX00cs1GqEidbkgxRd/ddmTaC3iLmkiVgVRMlwdIXA1/kjgfyxWedkVKqvfxPlaYbaHTI4gLkpBrk92Rh3YfW+kfuWzqXIp0tRZ+5iiQQBEaofWCPVJwTrBFdTVpBl70JW/KHcdSGgeqw2YM6Hzg/KmHOHh1few9NeA3AuoQ8lIleAwRMwF0POE4xAhn3MlBgGi0wRdO5zDMmrSitsL8CI/Yo3tTQcFMR+5JC2UAHFNJSJQmxZUZX6+04Dj7nyiWWoppLXG+/Kok3HIXuAPGHE//OrjRJqRmzwymxSwuK59jpWyhNBxfhlGqaVQvSjUYLRmWg1+Rm+mJf5bZxFDl1WnP9JZiGwtBAhkCBb3tbUtvz4HkFLvnaJtW6+6OoupKp5s5RnFAC34dGpH0NsWIbP+d21XLjep+l6cN/BIb0dimRivTUGk36wr7cBrYFErX3JCkZeD5G1eq9jeBRzojA4ZGW4zBr85fn+6l6OX+9nOO25YOvAnaL9xFX5OGpqwnJvZ1ND9xtWfU1eBOdxNSbHsEJWmPiAs4ZxQsM233VUWVgOWn3pZI6jVcvZKrfPfR2WIsl2m91XoVtADyLhRlZAXHtGi8O+rspY6AGeWq61o+2g== X-Microsoft-Antispam-Message-Info: j7ldQSAQ0U7z+WLk0pfxcZVQio2/5FZSGhAi4Z70ZjKdRq2thRQ1ZeOmHGHPeXMfwDFMoPi/Kh8za2aykiE9NlnqJj/KKFCb8sj8mI2gQf3y/3QW51FgKdTfrLyGutcY3MayZ57Igalxr1cGXdwWIQcdShI2OcVuHlQATcbndD/JDIcI8y0m/Z6r2esvTH3m X-Microsoft-Exchange-Diagnostics: 1; DB5PR05MB1256; 6:PQCPnT4fdafuir5iLID8vbCzvY+rYChKQH8lXJl7DZo4SIE5VfIhQSGdOuf5frAp/9kUUmF+EMVBs9Nmf7Do/m5UwhquBUecCrBAVnFCjo1gFWgZBqevqcus1sIEW4HTLqE4uylm4bxvB2PJ6kTv3E+FPH251XesC1uvsXTssLsyQ790sW/qGe/yC+6H6V1s+/lGIEplcsvDa4d5UMx/aQXQ6QG/gKpBie0rOp24iRgHF0jHZVX4khMLlX3nDfK/8ZUlp1/b3N3OV99eQD5CKX0MaJgni1lCdRf/m24lxeRV33rkZUuAFtpvV1bXxnuWYT/gIzSsQCVgVqLd/lUm7XYjZ+nyFUwpzJzYcRHhtnADxqoLJa2cGBLjJ3HypCHPAP8iq2pFwBNSiGgmnkFj8M2E1EuYE9r1ou/8sZCYImGEGuJUJbhUarQC9EOo1dbR2o/+vuvKWm81o5lGeuiThA==; 5:L1zncsxpSdoxMj2Hsd7ukK+z/fsXZfo7e6dZpgfp4RfqTpSkJ7yvqiFwhPVLDstCn66KlMPuPcdpWkqZglsRYUlrVIEvk7XUp4X5uGsCt4GxNjHO2t3h2NPSNcw95HMKPqVoQHN2i8DkMHtbD0psdBYLh2KZZn276yywqN2NBJ4=; 24:m2TZN3f+97s3khP3ivr933vu4Y6DRpabHSYwm1F9TRUxGpECtv2gCrhXS5yfbJp3tTUDJHbMdRAkD2gM4wwapI0S3HYU8LejmKrJxhNHhZk= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DB5PR05MB1256; 7:FcfZAOeTdb3GgvVPVd+UekkElHrLJMao0KbsezDfUJQWaQatM891C1vYW6kYlOVMl8oqMwhNKUI8JZZ8IhjGa3xkQ1SXbHpRm4PYW+fwNQjKBNgqfGsT8gcQPRRtaeRE4Iy3DDiP+AeQNcx7WK+VLvKrrzORN7gvWiPgOauvyDfUWNOXxol64EDJ5KnroyIOTlIQDRsUsMcaZ+2PYCOJ0h3pIVKL5ynvz4jswp5s1mBPjotu/KUINP6XwVM7hv0U X-MS-Office365-Filtering-Correlation-Id: c19c3b90-3781-464f-3f0f-08d5b4de13ad X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 May 2018 12:20:23.5684 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c19c3b90-3781-464f-3f0f-08d5b4de13ad X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB5PR05MB1256 Subject: [dpdk-dev] [PATCH v3] net/failsafe: fix probe cleanup 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>, <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>, <mailto:dev-request@dpdk.org?subject=subscribe> Errors-To: dev-bounces@dpdk.org Sender: "dev" <dev-bounces@dpdk.org> |
Checks
Context | Check | Description |
---|---|---|
ci/checkpatch | success | coding style OK |
ci/Intel-compilation | success | Compilation OK |
Commit Message
Raslan Darawsheh
May 8, 2018, 12:20 p.m. UTC
The hot-plug alarm mechanism is responsible to practically execute both
plug in and out operations. It periodically tries to detect missed
sub-devices to be reconfigured and clean the resources of the removed
sub-devices.
The hot-plug alarm is started by the failsafe probe function, and it's
wrongly not stopped if failsafe instance got an error. for example
when starting failsafe with a MAC option, and giving it an invalid MAC
address this will lead to a NULL pointer for the dev private field. Then
when the hotplug alarm is called it will try to access this pointer,
which will lead to a segmentation fault.
Uninstall the hot-plug alarm in case of error in probe function.
Fixes: a46f8d58 ("net/failsafe: add fail-safe PMD")
Cc: stable@dpdk.org
Signed-off-by: Raslan Darawsheh <rasland@mellanox.com>
---
v2 changes:
Reword the commit log.
v3 changes:
Reword the commit log.
---
---
drivers/net/failsafe/failsafe.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
Comments
From: Raslan Darawshehת Tuesday, May 8, 2018 3:20 PM > The hot-plug alarm mechanism is responsible to practically execute both plug > in and out operations. It periodically tries to detect missed sub-devices to be > reconfigured and clean the resources of the removed sub-devices. > > The hot-plug alarm is started by the failsafe probe function, and it's wrongly > not stopped if failsafe instance got an error. for example when starting failsafe > with a MAC option, and giving it an invalid MAC address this will lead to a NULL > pointer for the dev private field. Then when the hotplug alarm is called it will > try to access this pointer, which will lead to a segmentation fault. > > Uninstall the hot-plug alarm in case of error in probe function. > > Fixes: a46f8d58 ("net/failsafe: add fail-safe PMD") > Cc: stable@dpdk.org > > Signed-off-by: Raslan Darawsheh <rasland@mellanox.com> Acked-by: Matan Azrad <matan@mellanox.com> > > --- > v2 changes: > Reword the commit log. > > v3 changes: > Reword the commit log. > --- > --- > drivers/net/failsafe/failsafe.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/failsafe/failsafe.c b/drivers/net/failsafe/failsafe.c index > 5e7a8ba..3a747c2 100644 > --- a/drivers/net/failsafe/failsafe.c > +++ b/drivers/net/failsafe/failsafe.c > @@ -226,7 +226,7 @@ fs_eth_dev_create(struct rte_vdev_device *vdev) > mac); > if (ret) { > ERROR("Failed to set default MAC address"); > - goto free_args; > + goto cancel_alarm; > } > } > } else { > @@ -260,6 +260,8 @@ fs_eth_dev_create(struct rte_vdev_device *vdev) > .type = RTE_INTR_HANDLE_EXT, > }; > return 0; > +cancel_alarm: > + failsafe_hotplug_alarm_cancel(dev); > free_args: > failsafe_args_free(dev); > free_subs: > -- > 2.7.4
Hello Raslan, On Tue, May 08, 2018 at 03:20:13PM +0300, Raslan Darawsheh wrote: > The hot-plug alarm mechanism is responsible to practically execute both > plug in and out operations. It periodically tries to detect missed > sub-devices to be reconfigured and clean the resources of the removed > sub-devices. > > The hot-plug alarm is started by the failsafe probe function, and it's > wrongly not stopped if failsafe instance got an error. for example > when starting failsafe with a MAC option, and giving it an invalid MAC > address this will lead to a NULL pointer for the dev private field. Then > when the hotplug alarm is called it will try to access this pointer, > which will lead to a segmentation fault. > > Uninstall the hot-plug alarm in case of error in probe function. > > Fixes: a46f8d58 ("net/failsafe: add fail-safe PMD") > Cc: stable@dpdk.org > > Signed-off-by: Raslan Darawsheh <rasland@mellanox.com> > > --- > v2 changes: > Reword the commit log. > > v3 changes: > Reword the commit log. Sorry I replied to the v3 instead, my comment on the v2 still stands. The v2 was not superseded in patchwork and the commit title changed, making me think it was two different fixes. > --- > --- > drivers/net/failsafe/failsafe.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/failsafe/failsafe.c b/drivers/net/failsafe/failsafe.c > index 5e7a8ba..3a747c2 100644 > --- a/drivers/net/failsafe/failsafe.c > +++ b/drivers/net/failsafe/failsafe.c > @@ -226,7 +226,7 @@ fs_eth_dev_create(struct rte_vdev_device *vdev) > mac); > if (ret) { > ERROR("Failed to set default MAC address"); > - goto free_args; > + goto cancel_alarm; > } > } > } else { > @@ -260,6 +260,8 @@ fs_eth_dev_create(struct rte_vdev_device *vdev) > .type = RTE_INTR_HANDLE_EXT, > }; > return 0; > +cancel_alarm: > + failsafe_hotplug_alarm_cancel(dev); > free_args: > failsafe_args_free(dev); > free_subs: > -- > 2.7.4 >
diff --git a/drivers/net/failsafe/failsafe.c b/drivers/net/failsafe/failsafe.c index 5e7a8ba..3a747c2 100644 --- a/drivers/net/failsafe/failsafe.c +++ b/drivers/net/failsafe/failsafe.c @@ -226,7 +226,7 @@ fs_eth_dev_create(struct rte_vdev_device *vdev) mac); if (ret) { ERROR("Failed to set default MAC address"); - goto free_args; + goto cancel_alarm; } } } else { @@ -260,6 +260,8 @@ fs_eth_dev_create(struct rte_vdev_device *vdev) .type = RTE_INTR_HANDLE_EXT, }; return 0; +cancel_alarm: + failsafe_hotplug_alarm_cancel(dev); free_args: failsafe_args_free(dev); free_subs: