From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-eopbgr130078.outbound.protection.outlook.com [40.107.13.78]) by dpdk.org (Postfix) with ESMTP id A79E65920 for ; Fri, 28 Dec 2018 10:48:59 +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=izm8Z5GsTJI0iW/USJySZ5yoEomqIOrQUL+0YkazqI0=; b=sGJ8YU1ROeevQ6Obc9UxrgqA32YFTMuiKpjKCDrn6cSHAWSDPYLmXmG/x2DfYX3D6PgaVS7/oq5oVhU2PlqEK9hOSOk1NZxfpunP5hgPQsgVrA2MCwEAjn0ViUmaJnGx4uh+hOX5eum22y65NPE39eDMPwGQaQAN4kts4a1xa4c= Received: from DB3PR0502MB3980.eurprd05.prod.outlook.com (52.134.72.27) by DB3PR0502MB4011.eurprd05.prod.outlook.com (52.134.68.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1446.23; Fri, 28 Dec 2018 09:48:57 +0000 Received: from DB3PR0502MB3980.eurprd05.prod.outlook.com ([fe80::d43a:3775:8af7:29c6]) by DB3PR0502MB3980.eurprd05.prod.outlook.com ([fe80::d43a:3775:8af7:29c6%4]) with mapi id 15.20.1446.027; Fri, 28 Dec 2018 09:48:57 +0000 From: Yongseok Koh To: Yahui Cao CC: Jiayu Hu , Yuanhan Liu , Maxime Coquelin , "stable@dpdk.org" Thread-Topic: [PATCH 17.11] vhost: fix corner case for enqueue operation Thread-Index: AQHUmymdnMNYP55mb0Stx8v2Vw81ZKWT7sUA Date: Fri, 28 Dec 2018 09:48:57 +0000 Message-ID: <998BFBC4-7982-4FF6-B0C2-A19FDAE70C37@mellanox.com> References: <20181224013722.28856-1-yahui.cao@intel.com> In-Reply-To: <20181224013722.28856-1-yahui.cao@intel.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; DB3PR0502MB4011; 6:gauwN97112ihDlEQLBJMu8tloobegpYBz9Ndudjfr/tVyGEEqxciKv43zEuaA7W9hw8ck1GCG4+KcAFR2My+AWUkUEDamdcvErKneQU2owcAePogw6bUu8qD720RL2ESuLGRM0lYKM6nLMcdtp0GS2cKictpdMA6ptoUvDxgT54Gt0fXaIbeCjGJWyEj1E8m7Tx+qBVlgVO6iIlTvBkUd+YkT/hX3/YQiEjjWDvawrKiMbozREh0/zes2VFh5xVMpEWifg5Bga3QrxdA/HjdtLYHRNm6Hd4d+NpmT3Ib7ALIpazid8mHcgZ2vpDwF/JyVbaS3E+C9Vpf3og4uQgjz3JVEYEAITx6/z0IRDNoQbvvRG3uEPepQjP6KcX7iM52Fzmzal6CCB+MTWBI4upupiYRH9P6nbwaVFn5bDXyPnPynHNd5+GZ0h9x85WmWZrlchh4KwkYbZ2L9Cd2aNpOag==; 5:HsclWGmxrnE/20PDU3I61sJ6dCHv9Gx/GvJGhK/dTY0MFxHjq7JhBf3yUZyA5KvOjCR6IZejnNzxRbsGF3LtZxW7L/OyThXsvNb3grrF2dgy9TxoIXyTihEisOqJdSHRHcqTyVwaafin7O64W6EdyTS9KSaUT/Lu7JqlV3VizkU=; 7:76kZV67Uq25lEc77gcR5+UMCtLeC1MSMuY8wHOKjyf9OPJkQvS8/U/ndKnscKAme2vA/dmpU4mqMx1qiA7YcThgle48RWW6U4Xqaaf9KifBuj9+Fkun+UOlE58RIBSkcRMhomQLBjgLlUYMltzJ31Q== x-ms-exchange-antispam-srfa-diagnostics: SOS; x-ms-office365-filtering-correlation-id: 94357455-df56-412a-cdd9-08d66ca9afef x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(5600109)(711020)(4618075)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7153060)(7193020); SRVR:DB3PR0502MB4011; x-ms-traffictypediagnostic: DB3PR0502MB4011: x-microsoft-antispam-prvs: x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(3230021)(908002)(999002)(5005026)(6040522)(2401047)(8121501046)(93006095)(93001095)(3231475)(944501520)(52105112)(3002001)(10201501046)(6055026)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123560045)(20161123562045)(20161123564045)(201708071742011)(7699051)(76991095); SRVR:DB3PR0502MB4011; BCL:0; PCL:0; RULEID:; SRVR:DB3PR0502MB4011; x-forefront-prvs: 09007040D4 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(136003)(366004)(376002)(39860400002)(396003)(346002)(199004)(189003)(6512007)(6916009)(6506007)(11346002)(446003)(3846002)(6116002)(26005)(186003)(6246003)(76176011)(478600001)(2906002)(53936002)(486006)(476003)(14454004)(2616005)(33656002)(25786009)(83716004)(53546011)(575784001)(71200400001)(102836004)(86362001)(71190400001)(6486002)(229853002)(36756003)(5660300001)(6436002)(81156014)(8936002)(316002)(305945005)(82746002)(7736002)(105586002)(54906003)(66066001)(81166006)(8676002)(14444005)(256004)(99286004)(4326008)(106356001)(68736007)(97736004); DIR:OUT; SFP:1101; SCL:1; SRVR:DB3PR0502MB4011; 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-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: Fkpp4Pb3fVvyUPwRHFMYko3Tvp/EDBkxiWtGrqx1iCmexryijKpS7Ea5S7sEjWZE7z+QtrPJThEcDUsZYHzkcil83oZPC1X+UfSmLkOtgySvufeVl92a9QNy2/QcUHcPoEJFBMVKtWb6nFzGHqW/Dp28HcIZdezLi6jIOKmj1DO4NHqbH1rWbIKvLVUQJx6iHjng1r+CcT3HlO/WfumZ8Ea7Zdv50rMSMlaI11+HTdqTFJUvP2FDVI8nLfd/p5jXQVkQI95VIUi+V1yvDjbMQiwdPhtEE3LvGIs6yk15xn5CE1qmZAfNH41wmKYKvX5T spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="us-ascii" Content-ID: <1FE84BE83D8D934188BCA100E2AB0FA0@eurprd05.prod.outlook.com> Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 94357455-df56-412a-cdd9-08d66ca9afef X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Dec 2018 09:48:57.5334 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB3PR0502MB4011 Subject: Re: [dpdk-stable] [PATCH 17.11] vhost: fix corner case for enqueue operation 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: Fri, 28 Dec 2018 09:49:00 -0000 > On Dec 23, 2018, at 5:37 PM, Yahui Cao wrote: >=20 > [ backported from upstream commit 729199397f9fc4ba265e94d492c792244e8c364= b ] >=20 > When performing enqueue operations on the split and packed rings, > if the reserved buffer length from the descriptor table exceeds > 65535, the returned length by fill_vec_buf_split/_packed() > overflows. This patch is to avoid this corner case. >=20 > Fixes: f689586bc060 ("vhost: shadow used ring update") > Fixes: fd68b4739d2c ("vhost: use buffer vectors in dequeue path") > Fixes: 2f3225a7d69b ("vhost: add vector filling support for packed ring") > Fixes: 37f5e79a271d ("vhost: add shadow used ring support for packed ring= s") > Fixes: a922401f35cc ("vhost: add Rx support for packed ring") > Fixes: ae999ce49dcb ("vhost: add Tx support for packed ring") >=20 > Signed-off-by: Jiayu Hu > Reviewed-by: Maxime Coquelin >=20 > Signed-off-by: Yahui Cao > --- Applied to stable/17.11 Thanks, Yongseok > lib/librte_vhost/virtio_net.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) >=20 > diff --git a/lib/librte_vhost/virtio_net.c b/lib/librte_vhost/virtio_net.= c > index bde360f3d..8c0c1b4bb 100644 > --- a/lib/librte_vhost/virtio_net.c > +++ b/lib/librte_vhost/virtio_net.c > @@ -144,7 +144,7 @@ flush_shadow_used_ring(struct virtio_net *dev, struct= vhost_virtqueue *vq) >=20 > static __rte_always_inline void > update_shadow_used_ring(struct vhost_virtqueue *vq, > - uint16_t desc_idx, uint16_t len) > + uint16_t desc_idx, uint32_t len) > { > uint16_t i =3D vq->shadow_used_idx++; >=20 > @@ -560,7 +560,7 @@ static __rte_always_inline int > fill_vec_buf(struct virtio_net *dev, struct vhost_virtqueue *vq, > uint32_t avail_idx, uint32_t *vec_idx, > struct buf_vector *buf_vec, uint16_t *desc_chain_head, > - uint16_t *desc_chain_len) > + uint32_t *desc_chain_len) > { > uint16_t idx =3D vq->avail->ring[avail_idx & (vq->size - 1)]; > uint32_t vec_id =3D *vec_idx; > @@ -635,7 +635,7 @@ reserve_avail_buf_mergeable(struct virtio_net *dev, s= truct vhost_virtqueue *vq, > uint16_t tries =3D 0; >=20 > uint16_t head_idx =3D 0; > - uint16_t len =3D 0; > + uint32_t len =3D 0; >=20 > *num_buffers =3D 0; > cur_idx =3D vq->last_avail_idx; > --=20 > 2.17.1 >=20