From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-eopbgr70070.outbound.protection.outlook.com [40.107.7.70]) by dpdk.org (Postfix) with ESMTP id 0CD761B119 for ; Tue, 11 Dec 2018 20:08:26 +0100 (CET) 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:X-MS-Exchange-SenderADCheck; bh=0D3W/j09+mHY+Nl0IpzXpT4xEk6JfAUvD7DPZm+sQbc=; b=nSuoMIznclIJuj1PxpsV3S8AkrjXzZNLQfTK226PIpLTL+UEcLqj5tdczq+vrV5F2s0Ghr4Z3b45wntv4ufldIzjrPeganllpXS7KGH13UGSY2OwYB3xoM/sdTZek7aGTYjLlNGF1XXvNvbZZ2bsRPtmL3LwEOhWGrB4EC2zx2A= Received: from DB3PR0502MB3980.eurprd05.prod.outlook.com (52.134.72.27) by DB3PR0502MB3963.eurprd05.prod.outlook.com (52.134.72.22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1425.18; Tue, 11 Dec 2018 19:08:23 +0000 Received: from DB3PR0502MB3980.eurprd05.prod.outlook.com ([fe80::dcbc:4578:3018:50f3]) by DB3PR0502MB3980.eurprd05.prod.outlook.com ([fe80::dcbc:4578:3018:50f3%5]) with mapi id 15.20.1404.026; Tue, 11 Dec 2018 19:08:23 +0000 From: Yongseok Koh To: Andrew Rybchenko CC: "stable@dpdk.org" , Igor Romanov Thread-Topic: [dpdk-stable] [PATCH 17.11 1/6] net/failsafe: fix crash on slave queue release Thread-Index: AQHUkJqevfJfKUOTkUG5aJkUJ6ihIKV56I8A Date: Tue, 11 Dec 2018 19:08:23 +0000 Message-ID: <596DCF51-94AD-46C8-ADB1-0A42A7DA94C6@mellanox.com> References: <1544454656-5339-1-git-send-email-arybchenko@solarflare.com> In-Reply-To: <1544454656-5339-1-git-send-email-arybchenko@solarflare.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=yskoh@mellanox.com; x-originating-ip: [69.181.245.183] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; DB3PR0502MB3963; 6:x4sOCVpzI1wtHby2wz3lRnHIwdl+K27CAse20bVssTH3W8g8cCjiVIkaqZ4D4m5JJANZjqza4l/dtKkcyrfXjwNqbOF3JHVC4Mu9vlewg7k28+RilFjj7AjWZj3FPm1fTOXCjVcCqjBWvpiOskhRrWWg5so/N84ei+PU9X9OzHRldedV8Dm8e6W2YZJmvz6h/+iEFlFvEDcWEz/2wRmht5GHx9BdErYhGQDyvuPdLuZz7PDLeffwCo2S4HlEarpEsR9fPV1XCyTYFHzDyuMuJYTUb44Ul2Zljtb1rIpJFK0NcR6U9Lsf+bFmfdsL41mOGnFOXax1F1bYbOe1J/lsq69xyc5vH1KLXisRGY+qGMnvJGM9zDPtJgcwWeou/xHRB6Ft+8iNI5n9qfKwr3zT+a8/8Ekx9Ut7M3sl0NuLrjEjMvoaVH0e7VoXzeAgT5O9yFhUP+BSv83422HkO1rzpQ==; 5:rH9OXDgsk/cPXzg1+iLNDJPV4S+O9X9oU3fw7zuOMVpjeLyeez0V5VJvmcCEQpfQ8LysAebWOa8WyoSxgS9+/rTE7587NNDvS3FArgezaIas76YMWChbJDOooUXE5dx+KCuCr+fEXXjEY0ktr4maQHd2JD8s9vszG/RqYsEAJ9I=; 7:zz7EnQt7ZhkSw4rUp4B9UVfGLFNR46tKwSHNrlhct6VC85ydvSFHUTK9wMI1a6SG9e00EAhYbW1IqK0w6bjW6OJvVNP/QGmy244DeUmC8jd7/Q2pbSk5ku5pDTWD5mJ5c12E6y/EqTwQaESieiTGLQ== x-ms-exchange-antispam-srfa-diagnostics: SOS; x-ms-office365-filtering-correlation-id: ca7d3c68-9c2f-4206-83a5-08d65f9c05c9 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390098)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:DB3PR0502MB3963; x-ms-traffictypediagnostic: DB3PR0502MB3963: x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(93006095)(93001095)(10201501046)(3231455)(999002)(944501520)(52105112)(3002001)(6055026)(148016)(149066)(150057)(6041310)(20161123558120)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123564045)(201708071742011)(7699051)(76991095); SRVR:DB3PR0502MB3963; BCL:0; PCL:0; RULEID:; SRVR:DB3PR0502MB3963; x-forefront-prvs: 08831F51DC x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(366004)(396003)(136003)(346002)(376002)(39860400002)(199004)(189003)(6512007)(105586002)(99286004)(53936002)(76176011)(106356001)(97736004)(316002)(68736007)(3846002)(6116002)(7736002)(102836004)(256004)(4326008)(86362001)(54906003)(25786009)(53546011)(6506007)(305945005)(26005)(14454004)(8936002)(229853002)(2616005)(478600001)(186003)(446003)(476003)(33656002)(2906002)(82746002)(11346002)(5660300001)(6916009)(486006)(66066001)(71200400001)(71190400001)(83716004)(36756003)(6246003)(6486002)(81166006)(81156014)(6436002); DIR:OUT; SFP:1101; SCL:1; SRVR:DB3PR0502MB3963; H:DB3PR0502MB3980.eurprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: zZydXRIViFfWMsykVqgXVcbbZ3ENecrGTVRD+sHozKp0cmXJgKKkDmTYasGkucnIpeldmZz7Oo6UERpGRq4bDexCwSUL3oSz5+89qiL51KENBS6w4f8Wi8y9Nsy+d971770PvIvYT4m3CQyqGzPENpnonY1mMpEPSoi9yjBaIivAUdDnB/NNOCbjYcwc9p9Z8rMUoyQFV2ZBqFALjxvJwvLk87F9O3MznQem9OcSy/Vo/PMcPFilFt0GfJNVBuAmrorsBsdknyYAwKThBTb2JqEfR1vVI9FuhG9F1qqgk5VW7EJHhRwsJhmG/LqaZs10 spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="us-ascii" Content-ID: Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: ca7d3c68-9c2f-4206-83a5-08d65f9c05c9 X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Dec 2018 19:08:23.4402 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB3PR0502MB3963 Subject: Re: [dpdk-stable] [PATCH 17.11 1/6] net/failsafe: fix crash on slave queue release X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Dec 2018 19:08:26 -0000 > On Dec 10, 2018, at 7:10 AM, Andrew Rybchenko = wrote: >=20 > From: Igor Romanov >=20 > [ backported from upstream commit 6b35f4d88b40645425b4b8e156423982471eccf= 5 ] >=20 > Releasing a queue that is already released by slave may cause a > segmentation fault. For example, after a successfull device > configuration a queue is set up. Afterwards the device is reconfigured > with an invalid argument, forcing slaves to release the queues > (e.g. rte_eth_dev.data.tx_queues). Finally the failsafe's queues > are released. The queue release functions also try to release slaves' > queues using ETH(sdev)->data->tx_queues which is NULL at the time. >=20 > Add checks for NULL slaves' Tx and Rx queues before releasing them. >=20 > Fixes: a46f8d584eb8 ("net/failsafe: add fail-safe PMD") >=20 > Signed-off-by: Igor Romanov > Signed-off-by: Andrew Rybchenko > --- Series applied to stable/17.11 Thanks, Yongseok > drivers/net/failsafe/failsafe_ops.c | 20 ++++++++++++++------ > 1 file changed, 14 insertions(+), 6 deletions(-) >=20 > diff --git a/drivers/net/failsafe/failsafe_ops.c b/drivers/net/failsafe/f= ailsafe_ops.c > index 9a5d873..885d63c 100644 > --- a/drivers/net/failsafe/failsafe_ops.c > +++ b/drivers/net/failsafe/failsafe_ops.c > @@ -260,9 +260,13 @@ > return; > rxq =3D queue; > dev =3D rxq->priv->dev; > - FOREACH_SUBDEV_STATE(sdev, i, dev, DEV_ACTIVE) > - SUBOPS(sdev, rx_queue_release) > - (ETH(sdev)->data->rx_queues[rxq->qid]); > + FOREACH_SUBDEV_STATE(sdev, i, dev, DEV_ACTIVE) { > + if (ETH(sdev)->data->rx_queues !=3D NULL && > + ETH(sdev)->data->rx_queues[rxq->qid] !=3D NULL) { > + SUBOPS(sdev, rx_queue_release) > + (ETH(sdev)->data->rx_queues[rxq->qid]); > + } > + } > dev->data->rx_queues[rxq->qid] =3D NULL; > rte_free(rxq); > } > @@ -328,9 +332,13 @@ > return; > txq =3D queue; > dev =3D txq->priv->dev; > - FOREACH_SUBDEV_STATE(sdev, i, dev, DEV_ACTIVE) > - SUBOPS(sdev, tx_queue_release) > - (ETH(sdev)->data->tx_queues[txq->qid]); > + FOREACH_SUBDEV_STATE(sdev, i, dev, DEV_ACTIVE) { > + if (ETH(sdev)->data->tx_queues !=3D NULL && > + ETH(sdev)->data->tx_queues[txq->qid] !=3D NULL) { > + SUBOPS(sdev, tx_queue_release) > + (ETH(sdev)->data->tx_queues[txq->qid]); > + } > + } > dev->data->tx_queues[txq->qid] =3D NULL; > rte_free(txq); > } > --=20 > 1.8.3.1 >=20