From patchwork Tue Jul 25 11:18:28 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matan Azrad X-Patchwork-Id: 27168 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id 836C22C16; Tue, 25 Jul 2017 13:19:05 +0200 (CEST) Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-eopbgr50068.outbound.protection.outlook.com [40.107.5.68]) by dpdk.org (Postfix) with ESMTP id 9C48A2629; Tue, 25 Jul 2017 13:19:04 +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=mpwLwSNXUYFGAGQEWWqmIIHsmqQERdsxUlPa7UvcFX4=; b=uMZ3pW+5tyj9sNz1WEWBMkgSfMUZ7Xwq9yYoTfyGl5r0pz0z4sGlBuqP6wb4MqEFRQYvq5fy3jBQg9dgNJqxeIlt1dfA4CE0zAjAi+LmOInif6AbxSfJk3Rb6uO5CNXnGAT5HNiw2X85gtHo6CCw3GzEV2Iz3cwnZVGntslTYDc= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=matan@mellanox.com; Received: from mellanox.com (37.142.13.130) by AM5PR0502MB3041.eurprd05.prod.outlook.com (2603:10a6:203:a1::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1304.14; Tue, 25 Jul 2017 11:19:02 +0000 From: Matan Azrad To: Adrien Mazarguil Cc: dev@dpdk.org, stable@dpdk.org Date: Tue, 25 Jul 2017 14:18:28 +0300 Message-Id: <1500981508-13820-1-git-send-email-matan@mellanox.com> X-Mailer: git-send-email 1.8.3.1 MIME-Version: 1.0 X-Originating-IP: [37.142.13.130] X-ClientProxiedBy: DB6PR02CA0033.eurprd02.prod.outlook.com (2603:10a6:6:15::46) To AM5PR0502MB3041.eurprd05.prod.outlook.com (2603:10a6:203:a1::17) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 33c7a06e-9fb2-4464-a448-08d4d34ef491 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(48565401081)(300000503095)(300135400095)(201703131423075)(201703031133081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:AM5PR0502MB3041; X-Microsoft-Exchange-Diagnostics: 1; AM5PR0502MB3041; 3:TvCt5oBJ7YVVtiolKpmU+TX/MmoD+bBfbyzLcW5lpXCoRqvKstjE2xR+8Bq4we9mdWwvgUKFhQqyzSR2vmTM2SfinMyfNC3s8EZiyqeN3cE1zN7hx2FOQIJOSxtlIOLmiQYFWJSkue58hiTqsXN7l3apCnILpa5yX/7/wVFQwowghZ47g7rQoKu3B5BVLsDetlOhxcXsfKlp4zpGMJIzv3QLOKcDCuKHlUKcZ3Z6elBHaAChxbgL0xyhePVwIbMts++5P10FZkD/Yd42SOr4DK/LQ1i75HyRUiD4uxVpJCp8m5qGEhMxTdUtRCg/lT2SIA9B81+p6V8g03BO9OT7oxaX6TmrY9UD6ZMHR/ZOPTPBLtNTxQIz5fff03orEWGArgAz9PP5tQ0m64eKybxH9XdMj7l85qw4kTSKigYuAemN0Ryzapkc38ODp1kHklGWvK3EIV0KvqJ5HPODMjI1mwuUn7sGbTw/3btVC2g3RnTkdCq5lAIFP6+gwSNoCl8/JJSho37Sr2jwxauWTmg1GUmGE76A6dJEnHmFMwC/HwV+FWUm1bBKA8nNLlOEcIsPJjQM7/I+UDvbox07UBXbAFLsK2WTBbmKbH+HNLXKkHROFq36kveHeKPiQFDUrrqYP8haKhhtGzrHUohTIZNGlMNY1mY5gLxs9ZwTDCkBYK2qvIGdeIXVWhYtOPBLPVrjmMoY/YdDzS6hb1vSAN+qSvarl8D5Ek1m6y9iE4uNeXs85C1oPB090F6dxdxmfR1tbnAZmtybJwDIStCJJUW5YA== X-MS-TrafficTypeDiagnostic: AM5PR0502MB3041: X-Microsoft-Exchange-Diagnostics: 1; AM5PR0502MB3041; 25:s1AJQaveFoK7zmtwtF+0YvRiT/PXin5m2iPE97QTt2l94DWfKDccSpNZN7T90ms3SPXmIgnlQB7plXiAyu+j3sbJxfvzBuXtBdJjU+7FOQa8o2xRhIF2MmFBgli1XbTQhE1NFhTSDUc3zG/S1RCVdaxqzc9ob8wNmolw1DRsn43RtXW0ews/BmyYumL2jQJfMcr5I9SKKA9qYZTDw9iz2C2ZAQQIF/6smD9m5uN1mUQUspYLmvpHrH8xKpMx5Ixpcjs4M5Ql9aYEaQM0dBMaZqr+hiZjKsfvxoW8JMZ7BK5mt48pYkP4fDraE7XB7NVgLXGhxuZ9esfd1xALDOx8hK4pojU6HtJ0VdMw/kbRkcP+n9dIfJ0j64bTFrUr9JBclMTwMkVHvKPcmP8ht8tDkhmETSOhHU0wS/8oDjOUjZmbscaRIPpdoChyO286WXxp5cQgFY/3wStIyXmcM/gcKb9Z7wEDxSjGzAjTOtEaWaxwKnlxYB10sURsf9GdrqEp4tzllyIpljObTIsWhX5LhwCqu7VnXSBpfN2CRDcfLeNnKzRyes0ToLvheRIwR7siTniKXhmjqio77Imlte3KVj3xLqzq+X0jau9fl8k+z8qsg1mI4ozPENaTzjgBuLhqtal7gD5mFQHiWuPzCFdyfo7mW94cVoNlbCKXf+uzcq3hg45DXo1In+m5TojW2LSfMTCGp+e59Tfnhwe8vNtGJfgM3/Pqokx4j9ttkEPaA4an1F/rVHwNziT+0KPEi3DXPMYstgIHLDDXqrzvtrXbjWuBcNVD7VvG93x4tBrxRJvKTDzcKG6jBYUHFsNQvtD+veg+RAxYTznXxriXmPF0+c42orSXMhSTG7aqruuOnUx1GkFA/9ZkReMmv38xu8wswY9oz6VqkxhcLzvxoIAI9u67Xdp1BpNF3U0Jky4XUiA= X-LD-Processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr X-Microsoft-Exchange-Diagnostics: 1; AM5PR0502MB3041; 31:oGPI3vkBYqHU3z23EeIvj45XL4oEHBDp9Muzhpbc+0aQ87QMK6me2O+RsfsVsLrkdqZ7nnrJ6WajvwX3mkPiHxDiWZqRVeXvSn9CwDVgFUk6tTG3wapnfj/zfmfvNOG2ptt/sDcw9yn7rLQkEWhOmG2gepciB+k8GOmKrKQDTLAcd1EpmeL2c7H3h9ffVFAvcAaQUUBBezaqi++OoOFH7kjL/0w6G/OURs+55lxMxXckc7Yc4iSDplLgRHQLc0OcrLcssIbFTgz83IkBwG/GAEzqhs4GO5rMf2cf188C6nwhJZNkOwsD0M4XyeTY4zAUhbGWELVdTAvHbbmJ3bgCITvRXVVYWFWFDdv/8eVqOfZJtB2ZSquJxqvhZ5neqFYKvgSknPdNmCtsvvqJQ6sOe792aP+54dvrX6MBs3FzbmXbEAgwrxt0yGil7QwdhftYp0VclfT851845MvHhub1qu8cjIjKhdg/RKv9H8xHm/FBM7aU5FNTjySlURMCxnwVqK8M3yreAcKb69jbXVZGWn2So3MDC75RWD4xnn2tQsEX0aZOt/m+Z+xKs4WdKyDsxNSydBzXG3FKPCsjkA9VoD48u/R5BPMhEdfaQM3tQcd7VyYmhePndNnMk4e69thSpRpTzbxP69KnDoWjel/JSUXgv7GZAZ+MlOw5dm//2Ch3WEepqqMWnbFaJJk++uIT X-Microsoft-Exchange-Diagnostics: 1; AM5PR0502MB3041; 20:/UuTBY77TL2+sAP9cCVEej4FB6idypGz5NwBoVEJlMnbZNLnF7sZ9b78eguTf35oXpcme3UX+iQ1khKXvhFRgJDGCLicQZDtEc23WBO1CYyy9L/8+tc+fq2VGT7ayodMNjMbO8kmUQi4b3ykcHtVomw9fqGb310BrP+WKFymvUD+2+a34+bwCIPCLPZiR2zt9DDfkoAd+xPOteRBBcUT2fJvUJWLkf//oSZkVJM18LapLNZfox12eXqiEElxoVsJXOOEP7UYCsEmevHaXa66yxrIrK+Aedaicnnwtx9hADPBUAAJJ5IWMyaOemgnwzJdVcON69WcdLFeW484fWX4Cm8jAwUUG5oWeWxgQrn9cbRmX1t8ZfOQy65IlRdo6KV66AH5RkQ4bR08N0A6s2/N11qd3fwl0lOr1/jUTyzkGR38OfWZqx5vU64+0jGD2mrWXIGaIPsmWmkohorxPuYn0P7MscSp5l4xC3aPO3oC2KsfNca3crN5XJcabG1TlYDi X-Exchange-Antispam-Report-Test: UriScan:; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(100000703101)(100105400095)(93006095)(93001095)(10201501046)(3002001)(6055026)(6041248)(20161123555025)(20161123564025)(20161123560025)(20161123562025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:AM5PR0502MB3041; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:AM5PR0502MB3041; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; AM5PR0502MB3041; 4:6mSq4JhhHJTDARbcgSNcT/NozEIEbIjiRqunfiT4?= ATCv2qd22fppFjXm+3GovRWcX8q75Ks5bYt0mJFLqYnWzFppivws4Hjd5A7mqB9GYY2nbjTCM2mYUnn6fZ/EBVOtmltCoMyQ6zDsHOaio12/qZBCvQsSN7dQOj6bNghl+9TVr2w6on0s39o99mTneIfINlEYEBGvMp5+AeJ2VpLBT9hJb3OpL023MqfIQoDsbC6WbFnMx/dBIenZLxJtEWzZvA7qou6xuXuv/EZRe2+yij5mZG/zj1t/wRrDKJ7U6+IeAjoxmbQhqs8RpT9NfXQMR1Y6Oyacmn7Q3GOc1ERmFFaOcYDYYyPVyuo5msSsmdY1lw9TnfQ9OXylvCoYhKAE4bSsWlSM+SXPeY79EXpLmA9+2LYOi3s9CDUa02GipZnPlFS7JcNHgH6yEcvlAUunLIJ/WZP7eXmNhoQIS5uPEDUI5iOJvj5boNumTuYoRaiBnbk62BQT0uvHXQli2LZFgdvms6zM5qfUFV8QsqZd9VuXID7gR8gDQGTMPE+Pc1XaszkjHRPjRSe21A6Ugep/L5FYZeE+TSLs498hcul3yrrHXHoOLl/CmAuQ1fasEpxUVDQ9eAG9Yj0akA41k8vgpOi/nccDIIJ/8HpBUn+wEFa09eE5U1bFPrgalLPG+uH2CBGE3OtyrSpjC/dwa7psnbA3R3TJkO3IEJFD5GTlkyYXnjO9+Ibrc/nn0LYXlmrEAki4E+Uj5dmDgF0W0jTqJ/xvXcNNaF0quermh7e3X27WFt9yMObeJ+YY7Vh4HoTjrM2Hne9lR9hq/LyFNxtRnZOBPa+tO7imU8JwYIOcaQmS+fo3R1RcbrdlN6tW9oJu4Al/HuPftPRBbToHYxndYi7bbSIiibS9Dlz9nF7vaSIM4kdMswAuYTf7L6/kFAiapDL2nzVs1rQ37W4bJN2bArKdXS35MhHqtsmk06/cX8en4uFIkMH/1LoUjYaqIHG8rUz3jrgDvsDcJymGiWr5CTvinmtkzaWZANqhF6RHshrt8ZopsqSJyvZQz1XAu7ZOn0YwlqBkdHO/VbP1r/DGs5JwCCh5s6zO8rmrgniqoG+Yix3j3/OReZKm81iqTFMk4y9PcmWsRCEOpnVwdffTRFt/2j852NVN4PiaPUoXlQ== X-Forefront-PRVS: 03793408BA X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(7370300001)(4630300001)(6009001)(39840400002)(39860400002)(39450400003)(39850400002)(39410400002)(39400400002)(199003)(189002)(4326008)(8676002)(3846002)(48376002)(6116002)(53936002)(7736002)(50226002)(81166006)(81156014)(50466002)(6666003)(575784001)(86362001)(4720700003)(68736007)(305945005)(69596002)(55016002)(478600001)(6916009)(42186005)(97736004)(5660300001)(36756003)(21086003)(47776003)(7350300001)(2906002)(66066001)(5003940100001)(38730400002)(101416001)(33026002)(50986999)(106356001)(105586002)(189998001)(110136004)(25786009)(33646002); DIR:OUT; SFP:1101; SCL:1; SRVR:AM5PR0502MB3041; H:mellanox.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; AM5PR0502MB3041; 23:TvQsjltR/0tcGWeISwTlzeTI6EhNToqifQ4NppN?= z6CTJcie9wZz2rnGoEvtVtFendtivfyjgzRh2YXHckn0grqJy8QFa+3A4lqPWUJ1mJ0RnFUP0byOo0I3LIRBSOw9QpMUtoIhES13naOntQcLAXTBkH2dSuHyDH33ZlObgKPIbXCkw9PiLkjFTfSB2nbNMRXQCaozVAUsPSV+Lxci9+IcDzrGg5cy2Vnrw4Gh1h0OsBxYYcOQ7Vi26rJ9Q40ZQp8kmTUPJs/wbMtW6V2Uz04HX1ElScIR8150PZACYS0HyrU0uVCzR/m/W2P0fFa+kXzJ8RbSl6FzYSSNFWOScaATR72j2FI3vNHq+nZtDhIr07/9UoCu7UjjbwzINweFo6RDg3ecT3IfaZBSAngZR+KrsV6b5hCULXvP6Aa5/Lttge6KFJqjSEoELyRpGxJutZ4PTV8KWljdYL0nxX/hLRlLZlKGY6w+wePCX+nlw0Dc1zVuJ3NDT6/dKqeXOjmQFPdbskXNL843KIc7OJhItnSgNmpOsRyyyjZyNmXy+wg3Bap7mURyyVnx8i/Yb6ZvExKW5GyJuPxfeMx5rYfvCvFExQaduvf4dsWBjtAAHS03WwqPE6DsGqV/yz6Y5abz5zr5qoSOCBAGF6gC4kBBkBDLNTE9KwKtFK9C2T2l/FXspTLhMMEUKBymEli6icZdKy3nehH1hr+a1E61zl1rsgAgi/5R06BuLTnV3fBFkmSgtPtgUq5y59EbZovzBxrEuOGQY5tZiliS/iBLxD7/8VefsYl+Hkw0b9Xe7PiMHgRUcnbdW+IunFSBWl5Ynk/KkL6mxiFu2/xutIvuFQwC9e+mmC6XeqvygDY2uD0ocnlvkUsaOYIjDK6v/p6cH3Wl1obI89xKuKZlSJ26XaO+f6OpwRZCGoUytyDERX0ZARRKWeLhVBE+VzNrPC8qeMmWSOexdly32WeQ/I4NCgx5LdXgJW6LcBu5ANyZes4g+LVKjBsrvSPnIuWtbwAtDYDfY/Bgfl5qj/hpnPd9utEAwZFKtd3DSAPvYvRr1izklXCrQOJUDhfbIH0YX0uyFRmSTRHeBAtwAuJIIr4qXDTACUvX6TPIR/O9WONjxhrm9/PWGYW2HsDbrE3kvITTAqX6yXf897bbK/4xIIMMS12Y0RfHmoxzPINlutKRRVpQTidm+s1V2gklNJuMujniDErnTHOICQmwK1CDkj+xfMtudkE+qS23Y7ddXye0Kw6kqxQQiPyhYZ8xURvvCiOVI0QWTvxzoiYBsUGGYR+5UzbOOi2jBC7jBfJnsPBgvzqZ8r44= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; AM5PR0502MB3041; 6:FMJlZLaWUAWBP9mn+FnQH5OLnhX0nNxLh6Qb0oF+?= DHSz24Pyo9dMvKnGsQI8k7L6IJnrYBR0oe02nl6kI/SGcDI8zeIAuzygxSZjFjfaInyyB6fCBkjBkMfBfvKCk7nD8M8979/IZ61ONhXnzAO5bckekU92LJ7F9sgoMv4Cv1PzL21K5BNN/tHzahTXShsPwkTM02OG8Ey78A+f8Foe1tikQte+ZhO7fk675UOUdyPGSB56OcmEq0XMVV9UNVVXI0RHcDkoIk7zAqA8HxFQbMsp6+y939bvgaF3BbFQt+he6KREpKD0NNWaCotoPq9US4uFbhOVRKOkm8nxSyPT7/giFP5FzmNN3eXn3q12Q45f8/Yr+VlkkNSPcTjAyaE6MQuXF8IzwXXvZqWfkwLNN9dVd/VL5iEfLB+JXhHKX8pIiXjETm5l7YO/mS5azWENZfOqeN5Hye5BPipgjCf5MXWM2xye7eojOVOH1uUypsw7wO7D+1/0CaynI/NJnXgrfbhcRHOLgocf4okP7I+Nbv8q80fYdRV+/aTTE1hxTYWFG19n00Y0U7xOpMKvTjXOEGCRWXVEl9G+fK8Qwc59gfm93XOFEymgZ/n7R2+Nr9A5A5kfWP/JOoLA4fPwgwuWOyLKthjBOAdiBnmFVZzFfcLGPQjZn0APf47Wxic2umc3toE75ISp2UWsLow2fnCdexsmuqOQdF3qe828VjgRB27Fb+BvKexpYuw6x10jmffQAx4H8NmnVU8JeMbvu8m0cwjQjcF/Vmu36XfPXcNCNtTqbyIqnbbNwzOUaY187YRxglCptJLE2tjyqrPYy0eQG1U3LuZQKjhUx5oHynsiUm3PhnPV7Q90yyMHTKjk6GhUsuvuDYTCgskw0wqGRjF3fcXru43NmSF07l1LegjjSFEfV8rOd1qnbUQZGvlVZYf3F4byJ0lH0FotkZ+fKsSojpuf5+JQVU2eqHY8PwmRtOUUU8FyiNr3UN9HTkavPAmQ0vMHlK86lIw+R/M3fRrj X-Microsoft-Exchange-Diagnostics: 1; AM5PR0502MB3041; 5:NNrhjFI95BFTuxKBpvUOAk+AQS3yvEb9UKYuey+OTzzS50905IKk6nkn+jvZtAXkR1KSoPbnIYrc/dE7HmRD7B1RQ4Zs8ANu/FUI8473UXuQwYzSTPfxBf2Q3jDepXf8llROpcBovDVFj8+EERQU8S2Eq0ChOIaPkDByMxLn1ptQkfNOOn+rrRGK5tu3MRBlfv/Ch53yqtepAAtx3/YcGvsu9OZDigNyHGQNBHf1YAXzuQZRBZo3Bih5XVrZDy/kqj/hmDxStsBoerKLnWb+/UvgE86B5DwxgyqGTfIrbl+6qPDB6wIdKGGFDJVIV5i7bihd1PKaxytWS8YNXy2/Ua0DGLJjkHzwfzm9JxRW9IczvQBAyARkW3G4X5mThkj/bjUyyslqKp3y+yPify1ShPDenbe9fUvZ9RLQ2ut6mKWdnOVO6sBYTsWWodtN9juSSpxEONbIODf+6fMsLbvys3S69kFdnoPl08/lhHZEthk0MSP2PcakHpIINPhgQR4f; 24:/1J9ujZ9wH8TdML8MsKb17ZvF5RJKYxN2f5zyxijXnBdjScwuyJerTCOtbpo8EYfl82Zz/CJYKTO9nIaHVq86kqKYR6Ek7ym9WhyxD7lxWY= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; AM5PR0502MB3041; 7:C3EWa45rjdsAbP9XIk0ivcZU79TWAfV8Vav6SqgHStJNsP4AMFSy1VskdPRYttOgT7Wm59ABo11Ol+MQJ96JAQYU2OL5wyWV0SM3QZ6I9bEMtTm7tKIiBCSPsvyc9FFADPY9VoxG2rsx16+MnRgHq4DKs3Q35TlP1MyHzC1x3WekfI40IovhODSyvuPOwIJhk3NviGTTnCvs6yzvidJUi1C+fROXaZB8luAWlG5y7ScTZMB1nCAqjgaudYm+UVrWfw/gRDwuZeg8/wk6Fbtr89blfT9cQHlQCqajq+Dv6TU//04MEervSVuB/g+V0SvL5ITen+hs5MZ4d1LTOZaNm4+vFZ/T7bANCup5eSZhOL+q/MVQRN8NQFvXQRU4t7wpsIXZ8FEAiq5iM4fY/fhmN3mNFB8Lif7n4HoUKSkQNqBvjLM/IVpyd+ABvSLTCZC63X484WtvKsHETJA2KAfShpm6/eCLAFvIGRfKqlL6yJaFqqeVcEdpVWUPIa1aL2fsDTfULJhrkFVdDUcuvLV52cm/TXKvgNovj/kabOt4v+kfVKtzWNpwv6zFphm0XwOkhhFAVyeg8B5330xo0UWHfx1fpmE4Tbzy9HwY0ZqjuOh5fe45Xi5f5mPdtA7nBESE5/iO9TBRrIyanQHo8XFxO8dDp6gmThLzCKRmiihBchxWcl6O929B3U6zy6bosNOeU/10Q69emvdvztVZ85aZHyK9v9OoTU+W50ljeA3aU76hFSkoeEd0Jbg2mySki6tZOpSjJSgeraMBkHr6y/RSkuJYx7w2WQuKr/WxM8u/vt4= X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Jul 2017 11:19:02.3151 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0502MB3041 Subject: [dpdk-dev] [PATCH] net/mlx4: fix drop action setting before start X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" The corrupted code causes segmentation fault when user creates flow with drop action before device starting. For example, failsafe PMD recreates all the flows before calling dev_start in plug-in sequence and mlx4 allocated its flow drop queue in dev_start. Hence, when failsafe created flow with drop action after plug-in event, mlx4 tried to dereference flow drop queue which was uninitialized. The fix changed the device private structure to hold the flow drop queue by value instead of by reference. Hence, the flow drop queue dynamic allocation and free were removed, and all the accesses to its internal fields were changed. The segmentation fault should not occur anymore because the memory of flow drop queue is always allocated in configuration time. Fixes: 642fe56a1ba5 ("net/mlx4: use a single drop queue for all drop flows") Cc: stable@dpdk.org Signed-off-by: Matan Azrad --- drivers/net/mlx4/mlx4.h | 7 ++++++- drivers/net/mlx4/mlx4_flow.c | 32 +++++++------------------------- 2 files changed, 13 insertions(+), 26 deletions(-) diff --git a/drivers/net/mlx4/mlx4.h b/drivers/net/mlx4/mlx4.h index a2e0ae7..ecaab35 100644 --- a/drivers/net/mlx4/mlx4.h +++ b/drivers/net/mlx4/mlx4.h @@ -309,6 +309,11 @@ struct txq { struct rte_flow; +struct rte_flow_drop { + struct ibv_qp *qp; /**< Verbs queue pair. */ + struct ibv_cq *cq; /**< Verbs completion queue. */ +}; + struct priv { struct rte_eth_dev *dev; /* Ethernet device. */ struct ibv_context *ctx; /* Verbs context. */ @@ -352,7 +357,7 @@ struct priv { struct txq *(*txqs)[]; /* TX queues. */ struct rte_intr_handle intr_handle_dev; /* Device interrupt handler. */ struct rte_intr_handle intr_handle; /* Interrupt handler. */ - struct rte_flow_drop *flow_drop_queue; /* Flow drop queue. */ + struct rte_flow_drop flow_drop_queue; /* Flow drop queue. */ LIST_HEAD(mlx4_flows, rte_flow) flows; struct rte_intr_conf intr_conf; /* Active interrupt configuration. */ LIST_HEAD(mlx4_parents, rxq) parents; diff --git a/drivers/net/mlx4/mlx4_flow.c b/drivers/net/mlx4/mlx4_flow.c index b998bb9..a398f46 100644 --- a/drivers/net/mlx4/mlx4_flow.c +++ b/drivers/net/mlx4/mlx4_flow.c @@ -103,11 +103,6 @@ struct mlx4_flow_items { const enum rte_flow_item_type *const items; }; -struct rte_flow_drop { - struct ibv_qp *qp; /**< Verbs queue pair. */ - struct ibv_cq *cq; /**< Verbs completion queue. */ -}; - /** Valid action for this PMD. */ static const enum rte_flow_action_type valid_actions[] = { RTE_FLOW_ACTION_TYPE_DROP, @@ -795,13 +790,9 @@ struct rte_flow_drop { static void mlx4_flow_destroy_drop_queue(struct priv *priv) { - if (priv->flow_drop_queue) { - struct rte_flow_drop *fdq = priv->flow_drop_queue; - - priv->flow_drop_queue = NULL; - claim_zero(ibv_destroy_qp(fdq->qp)); - claim_zero(ibv_destroy_cq(fdq->cq)); - rte_free(fdq); + if (priv->flow_drop_queue.cq) { + claim_zero(ibv_destroy_qp(priv->flow_drop_queue.qp)); + claim_zero(ibv_destroy_cq(priv->flow_drop_queue.cq)); } } @@ -819,20 +810,14 @@ struct rte_flow_drop { { struct ibv_qp *qp; struct ibv_cq *cq; - struct rte_flow_drop *fdq; - fdq = rte_calloc(__func__, 1, sizeof(*fdq), 0); - if (!fdq) { - ERROR("Cannot allocate memory for drop struct"); - goto err; - } cq = ibv_exp_create_cq(priv->ctx, 1, NULL, NULL, 0, &(struct ibv_exp_cq_init_attr){ .comp_mask = 0, }); if (!cq) { ERROR("Cannot create drop CQ"); - goto err_create_cq; + goto err; } qp = ibv_exp_create_qp(priv->ctx, &(struct ibv_exp_qp_init_attr){ @@ -853,16 +838,13 @@ struct rte_flow_drop { ERROR("Cannot create drop QP"); goto err_create_qp; } - *fdq = (struct rte_flow_drop){ + priv->flow_drop_queue = (struct rte_flow_drop){ .qp = qp, .cq = cq, }; - priv->flow_drop_queue = fdq; return 0; err_create_qp: claim_zero(ibv_destroy_cq(cq)); -err_create_cq: - rte_free(fdq); err: return -1; } @@ -977,7 +959,7 @@ struct rte_flow_drop { return NULL; } if (action->drop) { - qp = priv->flow_drop_queue->qp; + qp = priv->flow_drop_queue.qp; } else { int ret; unsigned int i; @@ -1307,7 +1289,7 @@ struct rte_flow * for (flow = LIST_FIRST(&priv->flows); flow; flow = LIST_NEXT(flow, next)) { - qp = flow->qp ? flow->qp : priv->flow_drop_queue->qp; + qp = flow->qp ? flow->qp : priv->flow_drop_queue.qp; flow->ibv_flow = ibv_create_flow(qp, flow->ibv_attr); if (!flow->ibv_flow) { DEBUG("Flow %p cannot be applied", (void *)flow);