From patchwork Wed May 23 01:18:17 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kent Overstreet X-Patchwork-Id: 10421011 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id D63D560224 for ; Wed, 23 May 2018 12:04:38 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C323628DDC for ; Wed, 23 May 2018 12:04:38 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id B78A928F2C; Wed, 23 May 2018 12:04:38 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.1 required=2.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED, T_DKIM_INVALID autolearn=unavailable version=3.3.1 Received: from uhil19pa10.eemsg.mail.mil (uhil19pa10.eemsg.mail.mil [214.24.21.83]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 95D2428F2E for ; Wed, 23 May 2018 12:04:36 +0000 (UTC) Received: from emsm-gh1-uea10.ncsc.mil ([214.29.60.2]) by uhil19pa10.eemsg.mail.mil with ESMTP/TLS/AES256-SHA; 23 May 2018 12:04:35 +0000 X-IronPort-AV: E=Sophos;i="5.49,432,1520899200"; d="scan'208";a="12082735" IronPort-PHdr: =?us-ascii?q?9a23=3ANrbNvxE7P8nsE8FgtxK5sp1GYnF86YWxBRYc79?= =?us-ascii?q?8ds5kLTJ7+r8y5bnLW6fgltlLVR4KTs6sC17KN9fi4EUU7or+5+EgYd5JNUx?= =?us-ascii?q?JXwe43pCcHRPC/NEvgMfTxZDY7FskRHHVs/nW8LFQHUJ2mPw6arXK99yMdFQ?= =?us-ascii?q?viPgRpOOv1BpTSj8Oq3Oyu5pHfeQpFiCazbL9oMBm6sRjau9ULj4dlNqs/0A?= =?us-ascii?q?bCrGFSe+RRy2NoJFaTkAj568yt4pNt8Dletuw4+cJYXqr0Y6o3TbpDDDQ7KG?= =?us-ascii?q?81/9HktQPCTQSU+HQRVHgdnwdSDAjE6BH6WYrxsjf/u+Fg1iSWIdH6QLYpUj?= =?us-ascii?q?us9adrTALjhjkBOTA37WrbjtV8gL9HrB6koRF03ozab5yPNPdmfq3TY90US2?= =?us-ascii?q?lGUMlTWSxPH5u8YokSA+cPMulXs4bzqEUVrRalGQmhBvnixiNSi3Pqw6E31f?= =?us-ascii?q?kqHwHc3AwnGtIDqHHao8vzNKcOTOu71bfIwivZb/NNxTf98pbHfQ49ofqRWr?= =?us-ascii?q?9wctTeyU8zFw/fiVWQt5LqPymO1uQRqWiU8fRvVf60hm4orgF+uDmvxsM2ho?= =?us-ascii?q?bVgYIVz0nJ+CNky4g2Pd21UFN3bNGrHZdKtyyWKpF6Tt0tTm12oio216UKtJ?= =?us-ascii?q?ymcCQQ1pgqyRHSZ+aaf4WK/B7vTvidLSp3iX9jZbmxnQy98VK6xe35TsS01V?= =?us-ascii?q?FKoTdbndTUrXAN0gDT6tCASvtg4ketwTaP2B7X6uFDOU00ibDUK4Qgwr4tjZ?= =?us-ascii?q?ofq1jDHy/ql0X2i6+abEMk9fSz6+v7eLnmo56cN4tshgH/NKQhhNC/DPwlPg?= =?us-ascii?q?UBUGWX4+Sx2KD58UHnT7hGkOc6nrTBvJDfP8sbp6q5AwFP0oYk7hayFyym38?= =?us-ascii?q?ocnXkGKlJFZR2Gg5HyNFHJPfD4C+uwjEq3kDpw2/DHPqHuApXKLnTZlrfhZq?= =?us-ascii?q?xy51RTyAo009BT/4hUBa0ZIPLvRk/xs8TVDh0+Mwyy2ennFNV92ZkYWW+UAK?= =?us-ascii?q?+ZN6XSsVqS6eI0P+mDepUVuC3nJ/gi/f7ugmczmUUBcqmxwZsXdHe4E+xkI0?= =?us-ascii?q?Wbe3XjntQBEXwNvgo4TezqlkaPUTBXZ3avUKMz/Sw7CIS6DYfeXIyth6aB3C?= =?us-ascii?q?ijFJ1Mem9GEkyMEWvvd4icQ/cDdjmdLdFnkjwFSbihTJQs1RCwuwDk1bVrNO?= =?us-ascii?q?3U+jcXtZj7zth6+/XTlQ0u9TxzF8mSzmaNT2dynmwVWTA22KF/rFdnxVidy6?= =?us-ascii?q?h4hOZUFdtJ5/NGSg06L4LTz/RmC9DuXQLMZsqGSEq8TdW8Gjw+UtUxw9oSbE?= =?us-ascii?q?lnANWikgrP3yy0DL8Jj7aLHoA78rrA33jtIMZw03fG1K89j1Y4RstAK2imib?= =?us-ascii?q?Bj9wjJB4/EiEKZl760eqQa2S7C7maDzW6Vs0FfXw98S6LFXWoQZkHOt9T2+l?= =?us-ascii?q?vCT6OyCbQgKgZAx8+CKq9PatL3l1VLX/njN8rDbGK2gWe/Hw6IxqmLbIroZW?= =?us-ascii?q?oSwDndBFIDkwAJ8naMLRI+CTu5o2LCEDxuEkriY0328eZkrnO0Uk40zxqRYk?= =?us-ascii?q?1kz7q1+wcZheeSSvMIxL4Evz0hqzpsFlanw93WE8aApxZmfKhEYtMy+lRH1W?= =?us-ascii?q?XEtwFmPZyvNaNihlkDcwhtuEPuzRp3AJ1akcc2tHMq0BZyKaWA3VxbajyYx5?= =?us-ascii?q?HwNaPNKmTp5h+gd6vW1kvZ0NaM9acF8O44pEn7vAG1Ckoi9G1q3MVP3HuY+J?= =?us-ascii?q?rKFxYSUJL2Ukss7Bh1u7DabTc754PI1H1jK7O4sjnc1NI1HOEl0Aqvf89DMK?= =?us-ascii?q?OYEw//C9caCNWzJ+ExlFipax0FMPpU9KEqI8Osb+GG17KzPOZ8gDKminxK4J?= =?us-ascii?q?tz0kKW8Cp8UfLI0o0ew/Ge2QuGWTL8g02nssztn4BLey0SFHKlySf4HI5Rer?= =?us-ascii?q?FyfYETBGagOcK3wsl+iID3W35D71OjGU0J2NWydhqPalzxxwpQ1V4YoXa/gy?= =?us-ascii?q?u30yR0ky01rqqYxCHO3eXiewYbOm5MXmlul0vjIYizj9AcU0ildAwplBqj5U?= =?us-ascii?q?ng3ahbo75zL27JQUdHZyL2NX1tUrOstrqeZM5C8JcosSRMUOSgeFyaUaDyox?= =?us-ascii?q?8b0yPlAmtfyys2dyqyupX4mRx6iX6SLG1poHrfZ85w2Q/V5MbASv5JwjoGWC?= =?us-ascii?q?54hCHNBli7O9mp+cubl43fveC5WWOsTYZTcTT3woObrie74ndqARKnlfCpht?= =?us-ascii?q?LnCRQ60TP819RyViXHshD8YpLw2qS5L+1neFJoBFni5MpmAI1+lZEwhJ4I03?= =?us-ascii?q?gAmpqV5WYHkXv0MdhDwaLxdmcNRToVzN7N+gfl3lFjIWyTx4/iS3Wd2dVuZ8?= =?us-ascii?q?OhYm8MwSI96N1KCL2I47Nakyt1pUC4rQ3PbvRnmDcS1+cu4mYAg+4VoAot0j?= =?us-ascii?q?mdArcKEElGOyzjig+F7864rKpKZGaja76w21Rindq5FrGNvhlcWGrlepclBS?= =?us-ascii?q?Jw9t9wME/I0HDo9o7kecXQbNIKuh2aiRjAifJZKJUrlvoFnSBnI37yvWU5y+?= =?us-ascii?q?4nihxjxZK6vYiDK2pz56+5BxlYNjP7Z8wN5jHtkaZensGT34+xBJlhHCsEXI?= =?us-ascii?q?fwR/KyDD0SrejnNxqJEDAkpHeUA7zfHROY6EdjtH/PHY6kOGyQJHkD19piXA?= =?us-ascii?q?OdJEtdgA8KQDo6goQ1FgewxMzuaE15/Cwe5kbkqhtQzeJlLwTwXXvapAevbD?= =?us-ascii?q?c0VIWTIQFI7g5c/UfVMM2f7uV1Hy1C+J2ushCNIHSBZwtUFWEJRlCEB1f7M7?= =?us-ascii?q?mg/9nP7fWXBvGkIPvIfbWOrvdeWuySyp2z14tq5TGMNt+APnN6Ff00xlJDXW?= =?us-ascii?q?xlG8TegzgPTTYXmDjVb86Dvxq89Cx3rtqk8PT3VgLv5I2PBKFUMdpz+hC5m6?= =?us-ascii?q?ODO/SXhCZjJjZSzokMymPQyLgDwF4SjDljeCK2HrgHsS7NTbnQmrNMDxIBcC?= =?us-ascii?q?N8KtdH47gn3gZTPc7bi9X11qN3j/MuF1hEVUbhmtyyZcAQLWCyLk/HBF2MNL?= =?us-ascii?q?SAPzHLxNv3YaykQ71KkOpUrwGwuSqcE0L7ODSDlj3pVxSxPuFXlyyUJgJRuJ?= =?us-ascii?q?u6chp3DmjjVt3mYAWhMNBrlT023aE0hnTSOGEHMDh8fERNrruL4CxFnPpwAG?= =?us-ascii?q?1B4WBjLeWenCaZ9ebYII4MsfR3GiR0i/5a4HMixrRP4yFLXuJ1lzXJo95pu1?= =?us-ascii?q?GpjO+Pyj99XxpPrjZEn4WLvEp4NaXe7JlAVm7O/AgR4mWIFxQKu9xlB8Xzu6?= =?us-ascii?q?BXz9jDjrjzKDBD8t3K+8sTHNLUKMWZP3oiKhfmBDnUDA4ZQjGxLmHfm1ZRkP?= =?us-ascii?q?eM+X2JtpI6sITjmIISSr9HU1w4DvEaCkRlHdwaJ5d3WjIkkaKFg8MT4Hq+rQ?= =?us-ascii?q?XRRN9EsZzdUfKSG/rvIi6DjbZYfxsI3a/4LYMLO4Llw0xtcEN6nIXRG0fLRd?= =?us-ascii?q?BCuDdhbg4voEVV9HhxVHE81Fz/ZgOq+n8TGua+ngQqhQtmfeQt6DDs7k8xJl?= =?us-ascii?q?XUviQwlFI8mdbigTCKbD7+NqGwXZpVCyr1rUQxNI30QxptZw2ogUNkLCvER6?= =?us-ascii?q?5Wj7Z4b2BklhTctoVVFv5GUaJEYAQdyuqWZ/UyzFtcrSunxVdd5eTbCZpujg?= =?us-ascii?q?0qfoCwr3hYwQJscMY1JbDMJKpO1lVfm7iBvjGp1u8s2w8TPFwC8HmIeC4Ptk?= =?us-ascii?q?0ILacpKDa1/ux26AyChztCdHIKV/U0vvJg7lk9NPiYzyL8z75DLVi8N+iYL6?= =?us-ascii?q?ODpWfAk8+JQlQr20MHkUlF4KJ60cA5c0qbT0ov1qeeFwwVNcreLgFYd9FS+2?= =?us-ascii?q?bXfSaPt+XN3J10Mp6hGeDvSO+BqLwbglm4HAozGYQD8NgBFIG20E7ENcfnMK?= =?us-ascii?q?IFyRI16QT3JVWFCfNJeA6LkDYHuMyw0Z533IlHKT4GG2l9Nzu45qrPrA8wnP?= =?us-ascii?q?WDRMs2YmsdXoYcLH02XMy6lDJHsHtYCTm20uQZyA+E7zDmvSnfFzj8YMBlZP?= =?us-ascii?q?uNaxNsFcu6+TMh/KiqkVTX6InRJ3nmNdR+vd/C8fgVqIiBC/5PV7ZyrlnclJ?= =?us-ascii?q?dCR3yxSWHPC960K4L3a4k2Ytz+Emy6XUCnizIpU8fxO86gLrKOgQHpWYlUsI?= =?us-ascii?q?6b3DQ4NcGlDz8QBg1+qv0E6q9neQIDZJ87bgLyuAQlK6yzOgGY3cuyQ2y1Mz?= =?us-ascii?q?tZU+FfzfmmZ7xQ1ycjcu26x2E8QZwh0+a39koNRJULjh7A3/aje5dRXjTzGn?= =?us-ascii?q?BHfAXPvyU5nXB7Nuku2uc/3A/IsV4EPjCRbuNpcmtEsMonCFOOO3V5EHQ4SE?= =?us-ascii?q?GYjYrC5A6s0LQS/ypSn9ZUze1FvmLxvoXaYD62Xqykt4nVuTI6bdc6u61xLZ?= =?us-ascii?q?DjIsyeuZLQhDDQUJnQsgyAUC67DfVamcNdICNGT/ZWh24pI8sGuZBO6UApTM?= =?us-ascii?q?cxO6RPCLUwprCtcTdkCDQdzTUaV4yewDwCg+G827TBmxaeapsiNgALsJFFgt?= =?us-ascii?q?sATiF2eTkSpKm9WIXKj2WEUHQEIB8P7QRQ4wINjpdwfufh4IXSVp9NxTlWo/?= =?us-ascii?q?Z6UibQE5lo8Fz7SnqIjlfkUvWhlPep3RlTzPLq3dkXQhl/CVJSx+xOjEsnNK?= =?us-ascii?q?l3K7UMvo7NqjKHb1n6vH/ryOe8J1lc0szUd1z5DIrZrmXwSCsc9mMIRYVX0n?= =?us-ascii?q?HQCYwSkxZlaKYsvFhMPIemekPl6jw424hpGqK3Wdqtx1k7sXYMXz2qHMZZC+?= =?us-ascii?q?F6rFLXXyVoY5Cxp5X/IZpSRnJf9YaApFhHiEVtKzC2yZ5CJMFX+DIMWyJPoT?= =?us-ascii?q?qFttuoVMJDwdN2D4MLItpnuXf9H71LNYOMrHIoobzg1GXZ+ywiv1in3jmzHb?= =?us-ascii?q?G3T/5B9W0EBgopP3ieqlUoD+Y07mfd703CslFu8OdfHbWAkUJxoDNhEZ9UHT?= =?us-ascii?q?ZJyWqpL1JtQ3laq+9aMrjac9RAQ/kuYh+iIwcxFfA60ECV/0x4gHn0bjduuQ?= =?us-ascii?q?td/iDSQxM7VTIJgrv3nz0RtN2nMycAS51UdTUhczvFKwWDlCBNohlQdkFqVI?= =?us-ascii?q?oFAtte/7Eb2pVU8dTcRUmwLiEKQQJtOhg+0fVBiU5JqF+YdjzFDQq0afbPtQ?= =?us-ascii?q?V6fd+KrM61Nvv24RtHh5j8sOA/6qUDXWGplhOrQdDCtY/zrNmKulGJdKfiPO?= =?us-ascii?q?22eWXBQyTUjRCsmbckCIHH/zTJMAVFNZZ11GEpYYXlCW7XJxRJPbwbJ0tcVa?= =?us-ascii?q?B+d9pGvvpWZ8h+eKYG4aVtHA6IRgvzGIyzq/lLNlPTSi7aLyWF7OO/vZ7T4q?= =?us-ascii?q?bHRuX7YMyD2WrHQ7lrMZhg8Tn0Ba3m0YlA9Urqwv1t7F91SUDaMyCdq9TsPg?= =?us-ascii?q?EL69O4dkvlpZ0pGSnZAIlrnXro20FAc9YXQyy2/5QZ0pxZ7m3wRfh/0kjpv+?= =?us-ascii?q?1Y76Nk5pUv47B11ce0Ir/fKfZAvk9hDBiUHAJq+YgzD2VkW2BeeOkRKOzWfa?= =?us-ascii?q?gDi8Dhtfz3HbQN6BKJ4+xZdcfHJ0bZl8mwFzGcSBhEnAMfpj4fNQaTyuCKlL?= =?us-ascii?q?R1Scm/o+j1wEUt40KxLhQe1rBi+Z+E+raUpO/QdxbRz7kEWq3xS8P2sLstu1?= =?us-ascii?q?2d5ecllL4IdWx5eQunH/YBVsQF3Gfv0bgqzT4wE8PEB7/g/vpDWmk4njLmnp?= =?us-ascii?q?BxBVQWGvUaHbqR54tehXs4m/bENtIKbqBCh3yPGgC+Hr8F036r5DOdIHN5jR?= =?us-ascii?q?HWzxHwXWSz4UfzrS9/RyvM09jjnVROW7myBEddRSypNlFksDKBOwrortn3ub?= =?us-ascii?q?8v4EEwLGPkqMqHlHG9N7NPA83/ONucLDEwpFIMiZ08Rsei2Y4FFtWgJ9cR6m?= =?us-ascii?q?txbuPE62OskS9OvbtIh5bE7sGS4PXXEmGqj7eGpLWV2DBY1n84sEk+6tGhLP?= =?us-ascii?q?7B/cGFTu+z12kPUydwpRfOUwSyqrzBoFAeIVaL31vTmIwWItFZ2mE12Vrn5O?= =?us-ascii?q?g4TtM87gdeFofcZ/Mavz/zJT/0zE2DbNIwSyaRzSFYHk/vEVl/Aqgzwnj8vM?= =?us-ascii?q?XTlXff41coXJV/d1T7hRxrCIU1MVot50ILwiUfEQgMZxebDKurBUj8NosLS0?= =?us-ascii?q?wDaRWB3LindaY6xlVzzamz5ODPbex9Ca0NNuxejgKUn1hUBIgWsasAT7J4YV?= =?us-ascii?q?Nd87TXpgf6AYj9Q/fmjWYwNeGyQs1C/sAWrWEi7RijRxqg8ppD67cbiIyWea?= =?us-ascii?q?5Ee5fModt8411h5TERaixHmAJ/gA+hUeAAuODj5cDWsJW25eaoSKYtQOIX+x?= =?us-ascii?q?8vB2tgi5vwgVYjoczY1upHTo3al57/8QBXLHKQvobVzQV8I/IUK423ZLZg62?= =?us-ascii?q?kHJy8GKnIIPNqZd/484yt3PzXI/VBCA8QMZdQDPMrWgg1Uj0LkWb5J+srcAF?= =?us-ascii?q?+YBJ95d9o04Grv1DA17Zw8X/7v6DCqPpDf9EhBMe5MgitqldLCovUVwPXJBS?= =?us-ascii?q?gY5HmWcR51zT2Yx5mKEfbw8v2GyMvIWFMeAi42T4BdKSKA+QygRuq1ko/lXR?= =?us-ascii?q?+U6s/3nZIxaUORRn23nKQesaZMEPVNijv63jhADI/1g++as9u25GtRqFJHDJ?= =?us-ascii?q?557QfZF6VHIpV7JRP4m9GqRkhiHCT/ftrZdh4zuOWLx+cM5P5+O1H5ZY8BLR?= =?us-ascii?q?IO06j65mZNTgtyVL72uU6UXeAPa9toRvPEqmtY6Ix6JK8JIleduIbmrjFWp1?= =?us-ascii?q?AqGAUpcqM/riRGdknSmw1YQ6n0uLoHigoST9F5vUtMFHmrOGI54TrHVLhagL?= =?us-ascii?q?OXCPML7jWZVrYOXFlwMiNiXxO1341je76onfBEsWNGmThwoPow3DxlQxu8vz?= =?us-ascii?q?Pjp6QX1TIm5r64qC0LuWZZQeWGjyfIFVJDwewRgqgCDXbi9UexYGIHbIv1/L?= =?us-ascii?q?lnOdrg+pc87HglZhUjZSIGV/y6Cy7sl6OIHpCPsNVEiR6DpsrOab6zLTAMOb?= =?us-ascii?q?kmyBPjRn190g3AkxZy9GsEXC+s7Ng+JIWyIcwl3DanGXDHdFYQ5aNEqMXwtU?= =?us-ascii?q?YRTOs3dVxu3n5u0s2GRi0RXszABXw5jg8+aWVLaJhD8wMVF7E0gjaUualL5g?= =?us-ascii?q?YUYDPKHYm+4onQmd3H2WIhTddr2m3WureFiY0033F/ndN78DKOsmwId+PES8?= =?us-ascii?q?9sHmTz1oBHxOz6ZvWttP0HSYR/xLSlUf8CKdWj+XCt1ZVrQEClwLMeE0C+MO?= =?us-ascii?q?8ZybfRSz2lRnGAWeSXb2iMmC40Mkvo6ha0Ll03acFKr0gmP+vch55ckRPuUb?= =?us-ascii?q?d1RiWWuF/aw3YvMeQAdwI5oI2nYRAFTPYNZ+iAIugj2P8+B0EPb3/OBiR7EP?= =?us-ascii?q?K2sVixnIh7PHVg/Er6YeTx8gz8NtudBAUEG5bArpFt4fy6Wn6BOXh4wR1wOU?= =?us-ascii?q?l08P3fF04wtu9HaJuRm8Lfh9Fl3u4EbfttNjc9utELkIJ59YaUyNuKcQ3Wzp?= =?us-ascii?q?vqPtHVrP2YDOHewkkpYWxaTKQWYRn054Q7Od45XaffHb1HshQAVuAGR8klNm?= =?us-ascii?q?Hs5OR3IRl1fwr5eru5mI/pq/iNa58SoGXZqhouLT3bkw8OzP2qCwh6aY26wX?= =?us-ascii?q?LoL9YtRXYJpt51DzNiHY1SC4YOqBehD5eImaa9zdir9AcypO4OtbvYC/bEzt?= =?us-ascii?q?210ox9GZ9A6gjDMyzcC6prqkBkiPmijPDd1JX4FcLlf5UDTuc/CmrEbKLWW5?= =?us-ascii?q?6yIS+UO97tPktB/6OY3ZpnXRiLIiP0RayLsGujLvogqV42zo1+Yfr70C0m77?= =?us-ascii?q?ad3sD7IW5cuGProXOXHJxH4VrUHvPfQxlUD/2f/yItBq0TbKP3+f0IPNhkx8?= =?us-ascii?q?KTp0F37TJfwI6fKqmthlHD11g9dp/BKkbtnSEjVtokOhO6ZGghh3ORjWrQG2?= =?us-ascii?q?9ANMWpNYE5g9uTElrq+URrgn03a2NdMmXtTNaVf2Mc3pTtN0Wx6AtXAoNbzK?= =?us-ascii?q?aMckkiu/j3ELEyYMdMhPmqubMbkN1gNyDIQo1AMjrNKKNtYWsDM87ogAMDWj?= =?us-ascii?q?dc6f44V4Iuat6LKUIDdkKBzXCXr0PO0kzxIsSlz73BYD0X/XNO06/f3HBSqh?= =?us-ascii?q?O4t/eUjoyrUL3QYJzsGv+HGCUgXzCeAz81FEs=3D?= X-IPAS-Result: =?us-ascii?q?A2BrCgCAVgVb/wHyM5BcHAEBAQQBAQoBAYNBA4EEWyiMW?= =?us-ascii?q?owEgwiTNxSBXRIYEwGEQIInITUXAQIBAQEBAQECAWscDEIQAYFiJIJQAwMBA?= =?us-ascii?q?iQTBgENDhILAQIBAgkBAQUQKwgIAwEdAg4DAQUBCxEHBwsFGASDAYFoAQMVA?= =?us-ascii?q?55zPIxuFgUBF4JwBX8EAYJIChkmDVVXgXQCBhKHKHyBVD+BD4VcgXEBEgE0h?= =?us-ascii?q?T8Ch0OQaywHAoFniXOCdAuHVoUrii+GKQIEAgQFAgUPIYEEHgMzYXFwUDGCE?= =?us-ascii?q?oIUg2iKHFJTeQEBASiEUYUugjcBAQ?= Received: from tarius.tycho.ncsc.mil ([144.51.242.1]) by EMSM-GH1-UEA10.NCSC.MIL with ESMTP; 23 May 2018 12:04:33 +0000 Received: from prometheus.infosec.tycho.ncsc.mil (prometheus [192.168.25.40]) by tarius.tycho.ncsc.mil (8.14.4/8.14.4) with ESMTP id w4NC3n8n020788; Wed, 23 May 2018 08:04:02 -0400 Received: from tarius.tycho.ncsc.mil (tarius.infosec.tycho.ncsc.mil [144.51.242.1]) by prometheus.infosec.tycho.ncsc.mil (8.15.2/8.15.2) with ESMTP id w4N1IicL036652 for ; Tue, 22 May 2018 21:18:44 -0400 Received: from goalie.tycho.ncsc.mil (goalie [144.51.242.250]) by tarius.tycho.ncsc.mil (8.14.4/8.14.4) with ESMTP id w4N1IlLx026098 for ; Tue, 22 May 2018 21:18:48 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A1DVAAABwQRbly0YGNZcHQEBBQELAYNAg?= =?us-ascii?q?WIoi3pfjBaDCJM2gXgLLIRAAoIhITQYAQIBAQEBAQECFAEBAQEBBhgGS4U1AwM?= =?us-ascii?q?nGQEbHQEDDAYQOyECEQEFARwHEoMigWgBAxUDnmA8jG4WBQEXgnAFfwQBgkgKG?= =?us-ascii?q?SYNVFeBdAIGEocnfIFUP4EPhVyHeAKHPZBmLAcCgWeJcYJ0C4dThSuKKoYpAgQ?= =?us-ascii?q?CBAUCBQ8hgQQcggpwgQGCEoIUGoNOihxSU3krjRoBAQ?= X-IPAS-Result: =?us-ascii?q?A1DVAAABwQRbly0YGNZcHQEBBQELAYNAgWIoi3pfjBaDCJM?= =?us-ascii?q?2gXgLLIRAAoIhITQYAQIBAQEBAQECFAEBAQEBBhgGS4U1AwMnGQEbHQEDDAYQO?= =?us-ascii?q?yECEQEFARwHEoMigWgBAxUDnmA8jG4WBQEXgnAFfwQBgkgKGSYNVFeBdAIGEoc?= =?us-ascii?q?nfIFUP4EPhVyHeAKHPZBmLAcCgWeJcYJ0C4dThSuKKoYpAgQCBAUCBQ8hgQQcg?= =?us-ascii?q?gpwgQGCEoIUGoNOihxSU3krjRoBAQ?= X-IronPort-AV: E=Sophos;i="5.49,431,1520913600"; d="scan'208";a="283113" Received: from emsm-gh1-uea10.ncsc.mil ([214.29.60.34]) by goalie.tycho.ncsc.mil with ESMTP; 22 May 2018 21:18:47 -0400 IronPort-PHdr: =?us-ascii?q?9a23=3AB8Gz9x9wqT73Hf9uRHKM819IXTAuvvDOBiVQ1K?= =?us-ascii?q?B22uscTK2v8tzYMVDF4r011RmVBd6ds6oMotGVmpioYXYH75eFvSJKW713fD?= =?us-ascii?q?hBt/8rmRc9CtWOE0zxIa2iRSU7GMNfSA0tpCnjYgBaF8nkelLdvGC54yIMFR?= =?us-ascii?q?XjLwp1Ifn+FpLPg8it2O2+55Pebx9UiDahfLh/MAi4oQLNu8cMnIBsMLwxyh?= =?us-ascii?q?zHontJf+RZ22ZlLk+Nkhj/+8m94odt/zxftPw9+cFAV776f7kjQrxDEDsmKW?= =?us-ascii?q?E169b1uhTFUACC+2ETUmQSkhpPHgjF8BT3VYr/vyfmquZw3jSRMMvrRr42RD?= =?us-ascii?q?ui9b9mRgLohikZOTA382bZhc5+jK9AvB6tuwZyz5LObY2JKPZzeL7Wc9MARW?= =?us-ascii?q?pGW8ZcTylPDZ26b4sTEuEPJPhYoJfnp1sVsRu+HxejC/3zyjRVgXL23rM10+?= =?us-ascii?q?I9EQ3c2wwgAcwBsG7PrNXpLqcdT/66zLXTwDXMavNZwzb96IzSfh89pvGMWK?= =?us-ascii?q?t9fMzMwkcsDwPIlkucpZHqMj+PyOgAvHKX4/RvWO61hGMqqxl9rzqyyss2lI?= =?us-ascii?q?XEiI0YxkrZ+Sh73oo5P8O0RFN0bNOiDZBerTuVN5FsTcMnW2xouDg1yrkBuZ?= =?us-ascii?q?OjcicH1o0pyRjRZvGZaYaF/g7vWeSLLThmmn1lfam/hxmo/Uil0OL8V8203E?= =?us-ascii?q?xPripEltnArnEN1xrN5cibUvZx4Fqt1DmV2wzN5exIO144mKXBJ5MuwrM8jp?= =?us-ascii?q?8Tvl7CHi/ylkX2lqiWdkA89+ir9evnZKnmqoWbN49qlA7+KL8umtClAesmLA?= =?us-ascii?q?cOQ3OW+eu51LL5/E35RK9GgeExkqncqJzaP9gUpralAw9J1YYu8w2/ACmi0N?= =?us-ascii?q?QZm3kHMV1EdQmbj4npJ17OIPf4Ae25g1S3ijhn3f/GPrr/AsaFEn+WlLbnYK?= =?us-ascii?q?Y46ENGzgc35c5Q6ogSCbwbJv/3HEjru5iQEB4jNCSmzuDmFpN514UDSSSIGK?= =?us-ascii?q?DfLaCW+VaL/ucHJ+iKeZ9QtjHgLfQs+//pizk+g1BZNbao2Z8GQHG+EO5vL0?= =?us-ascii?q?iQbTzrmNhFWWgQswU9TMTuiVufQTBUenC+Vr494Td9D5ipSc/HR4awkPma0S?= =?us-ascii?q?ymBJxKdyVDDVyRFXrAaYqJQbEPZTiUL8snlSYLEfC6Rosg0wy+nBPrwLpgaO?= =?us-ascii?q?zP82sXsoynnNR4+cXUjRw06ydrDtiW0yeKVW4w1ngIQz4e361lp0F5jFCZ3u?= =?us-ascii?q?wwh/1eCMwW/fpIXi8kOpPGie93Edb/XkTGZNjaZkyhR4CFDDctBvUvzsUVf1?= =?us-ascii?q?xwFsnq2hPO2TbsBKEYjaeXHpE57orT2nHwI4B2zHOQh/pptEUvXsYabT7uva?= =?us-ascii?q?V47QWGX9STwUyEi6anc7gd1yfR9WCFiHCDp1xcTBUvDvf4dlc7PWDuhIyjoE?= =?us-ascii?q?7PSqShT7EuMw8HzM+GeeNGadzs2E1PX+yreM/fbGS4h3qqCF6Wy6mNYovndy?= =?us-ascii?q?RV3CjUBEUe1QFG1XmDPAk6QCympm8=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0DVAAALwARbly0YGNZcHQEBBQELAYN?= =?us-ascii?q?AgWIoi3pfjBaDCJM2gXgLLIRAAoIhITQYAQIBAQEBAQECARMBAQEBAQYYBks?= =?us-ascii?q?MgjUiglIDAycZARsdAQMMBhA7IQIRAQUBHAcSgyKBaAEDFQOeZDyMbhYFARe?= =?us-ascii?q?CcAV/BAGCSAoZJg1UV4F0AgYShyd8gVQ/gQ+FXId4Aoc9kGYsBwKBZ4lxgnQ?= =?us-ascii?q?Lh1OFK4oqhikCBAIEBQIFDyGBBByCCnCBAYISghQag06KHFJTeSuNGgEB?= X-IPAS-Result: =?us-ascii?q?A0DVAAALwARbly0YGNZcHQEBBQELAYNAgWIoi3pfjBaDC?= =?us-ascii?q?JM2gXgLLIRAAoIhITQYAQIBAQEBAQECARMBAQEBAQYYBksMgjUiglIDAycZA?= =?us-ascii?q?RsdAQMMBhA7IQIRAQUBHAcSgyKBaAEDFQOeZDyMbhYFAReCcAV/BAGCSAoZJ?= =?us-ascii?q?g1UV4F0AgYShyd8gVQ/gQ+FXId4Aoc9kGYsBwKBZ4lxgnQLh1OFK4oqhikCB?= =?us-ascii?q?AIEBQIFDyGBBByCCnCBAYISghQag06KHFJTeSuNGgEB?= X-IronPort-AV: E=Sophos;i="5.49,431,1520899200"; d="scan'208";a="12074945" X-IronPort-Outbreak-Status: No, level 0, Unknown - Unknown Received: from ucol3cpa07.eemsg.mail.mil ([214.24.24.45]) by EMSM-GH1-UEA10.NCSC.MIL with ESMTP; 23 May 2018 01:18:46 +0000 X-EEMSG-check-005: 0 X-EEMSG-check-006: 000-001;c776fd49-88ee-4206-9580-42b180e793bd Authentication-Results: UCOL3CPA02.eemsg.mail.mil; dkim=pass (signature verified) header.i=@gmail.com X-EEMSG-check-008: 517650841|UCOL3CPA02_EEMSG_MP17.csd.disa.mil X-EEMSG-SBRS: 2.7 X-EEMSG-ORIG-IP: 209.85.216.193 X-EEMSG-check-002: true X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0DTAABYvwRbf8HYVdFcHQEBBQELAYVKi3pfjBaDCJM2gXgLLIRAAoIhITQYAQIBAQEBAQECFAEBCQsLCCYlDIUpAwMnGQEbHQEDDAYQOyECEQEFARwHEoMigWgBAxWeaTyMbhYFAReCcAV/BAGCSAoZJg1UV4F0AgYJAQiHJ3yBVD+BD4Vch3gChz2QZiwHAoFniXGCdAuHU4UriiqGKQIEAgQFAgUPIYEEHIIKcIEBghKCFINoihxSU3krjRoBAQ X-IPAS-Result: A0DTAABYvwRbf8HYVdFcHQEBBQELAYVKi3pfjBaDCJM2gXgLLIRAAoIhITQYAQIBAQEBAQECFAEBCQsLCCYlDIUpAwMnGQEbHQEDDAYQOyECEQEFARwHEoMigWgBAxWeaTyMbhYFAReCcAV/BAGCSAoZJg1UV4F0AgYJAQiHJ3yBVD+BD4Vch3gChz2QZiwHAoFniXGCdAuHU4UriiqGKQIEAgQFAgUPIYEEHIIKcIEBghKCFINoihxSU3krjRoBAQ Received: from mail-qt0-f193.google.com ([209.85.216.193]) by UCOL3CPA02.eemsg.mail.mil with ESMTP; 23 May 2018 01:18:44 +0000 Received: by mail-qt0-f193.google.com with SMTP id m5-v6so26058877qti.1 for ; Tue, 22 May 2018 18:18:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=WtOslBBLByX4Fl9YDr9KFowAFd5kPEwmzhc3H5iBFgE=; b=ObKTyntSuL3vb4Mnwnxt2qWdLScP2QUsid9M26u5VB6cSyQ+4T//GpJhUJNh1X3u2p UI3ySlwM8Cknf2w4ukXOYog7PRRJptDhI9MxISiSi7tMFFNKlSaN9r0ucooZ12gHAGjP plwclub3YxOYMAsxRgke+nevgyqA8368zlLoFxMGPIs11WezVmtjaGwtQBa4+XaWshMa LktBXe6MmfHGzthYfrzVgRQbC04TJ667WeVhRnJWY+GqU8/4yYeoATpyxVtxQlPC1NfH Nlz36C+ITkOzEEZqNHlGtvUiPCRwiyvV5nxqBCj3AVrM9hqN5edWUZfeyZa8vh8HBDrk /r/w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=WtOslBBLByX4Fl9YDr9KFowAFd5kPEwmzhc3H5iBFgE=; b=SDGzhWRepJ+sz7smFFSPzm9Te6JJAA1ioG/A0KGb2ZMba2GvNu50s+wU2ps3qZfBWz P1NdSJrUR10Ajkj+KetnAQcHP1Lxd88maCqQEeFuDkj4j0ekHO9Jc30z5w+U7YacyWG4 L+qaEP+yAUYNpFPQ5Y01ZhqE0A1UtKzyznbdoMvHxygq+xQcQ/gP064n3N8Z2N/FKi68 r5vGME4rMq+EQWkmZSki9eyg+obsvLWz1yiL907RKbCgERMkoQ3EikRmnP2ULeYsnUje AkEs2hmBGcaTut7SQG7luWjW5dKgYdTacSF3WAPNP5H7T36VCMGCznfs0dPO/HrP9nfl SvUg== X-Gm-Message-State: ALKqPwdzTUHPYiHBDkxW4D6HFwHf3FTm9ryqU5bBzYC9R/2t6X9QcgUG PiTGesUPy7Xd522Pajku1A== X-Google-Smtp-Source: AB8JxZpr5/PGVk7fxq67LxCdTaiC5fm7unqSl0gHegzwtlJD9gwKGjgHSff7fqYmZqU6iy0QR/FhFw== X-Received: by 2002:ac8:701e:: with SMTP id x30-v6mr761281qtm.229.1527038323608; Tue, 22 May 2018 18:18:43 -0700 (PDT) Received: from localhost.localdomain (c-71-234-172-214.hsd1.vt.comcast.net. [71.234.172.214]) by smtp.gmail.com with ESMTPSA id s127-v6sm12604251qkf.21.2018.05.22.18.18.41 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 22 May 2018 18:18:42 -0700 (PDT) X-EEMSG-check-009: 444-444 From: Kent Overstreet To: linux-kernel@vger.kernel.org, viro@zeniv.linux.org.uk, akpm@linux-foundation.org, willy@infradead.org, gregkh@linuxfoundation.org, linux-security-module@vger.kernel.org, selinux@tycho.nsa.gov, dev@openvswitch.org, shli@kernel.org, linux-raid@vger.kernel.org Date: Tue, 22 May 2018 21:18:17 -0400 Message-Id: <20180523011821.12165-2-kent.overstreet@gmail.com> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180523011821.12165-1-kent.overstreet@gmail.com> References: <20180523011821.12165-1-kent.overstreet@gmail.com> X-Mailman-Approved-At: Wed, 23 May 2018 08:03:44 -0400 Subject: [PATCH 2/6] proc: commit to genradix X-BeenThere: selinux@tycho.nsa.gov X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Security-Enhanced Linux \(SELinux\) mailing list" List-Post: List-Help: Cc: Kent Overstreet MIME-Version: 1.0 Errors-To: selinux-bounces@tycho.nsa.gov Sender: "Selinux" X-Virus-Scanned: ClamAV using ClamSMTP the new generic radix trees have a simpler API and implementation, and no limitations on number of elements, so all flex_array users are being converted Signed-off-by: Kent Overstreet --- fs/proc/base.c | 48 +++++++++++++++++------------------------------- 1 file changed, 17 insertions(+), 31 deletions(-) diff --git a/fs/proc/base.c b/fs/proc/base.c index 9298324325..0a762eda64 100644 --- a/fs/proc/base.c +++ b/fs/proc/base.c @@ -59,6 +59,7 @@ #include #include #include +#include #include #include #include @@ -92,7 +93,6 @@ #include #include #include -#include #include #ifdef CONFIG_HARDWALL #include @@ -2140,11 +2140,12 @@ proc_map_files_readdir(struct file *file, struct dir_context *ctx) struct task_struct *task; struct mm_struct *mm; unsigned long nr_files, pos, i; - struct flex_array *fa = NULL; - struct map_files_info info; + GENRADIX(struct map_files_info) fa; struct map_files_info *p; int ret; + genradix_init(&fa); + ret = -ENOENT; task = get_proc_task(file_inode(file)); if (!task) @@ -2176,35 +2177,21 @@ proc_map_files_readdir(struct file *file, struct dir_context *ctx) */ for (vma = mm->mmap, pos = 2; vma; vma = vma->vm_next) { - if (vma->vm_file && ++pos > ctx->pos) - nr_files++; - } + if (!vma->vm_file) + continue; + if (++pos <= ctx->pos) + continue; - if (nr_files) { - fa = flex_array_alloc(sizeof(info), nr_files, - GFP_KERNEL); - if (!fa || flex_array_prealloc(fa, 0, nr_files, - GFP_KERNEL)) { + p = genradix_ptr_alloc(&fa, nr_files++, GFP_KERNEL); + if (!p) { ret = -ENOMEM; - if (fa) - flex_array_free(fa); up_read(&mm->mmap_sem); - mmput(mm); - goto out_put_task; + goto out_put_mm; } - for (i = 0, vma = mm->mmap, pos = 2; vma; - vma = vma->vm_next) { - if (!vma->vm_file) - continue; - if (++pos <= ctx->pos) - continue; - info.start = vma->vm_start; - info.end = vma->vm_end; - info.mode = vma->vm_file->f_mode; - if (flex_array_put(fa, i++, &info, GFP_KERNEL)) - BUG(); - } + p->start = vma->vm_start; + p->end = vma->vm_end; + p->mode = vma->vm_file->f_mode; } up_read(&mm->mmap_sem); @@ -2212,7 +2199,7 @@ proc_map_files_readdir(struct file *file, struct dir_context *ctx) char buf[4 * sizeof(long) + 2]; /* max: %lx-%lx\0 */ unsigned int len; - p = flex_array_get(fa, i); + p = genradix_ptr(&fa, i); len = snprintf(buf, sizeof(buf), "%lx-%lx", p->start, p->end); if (!proc_fill_cache(file, ctx, buf, len, @@ -2222,13 +2209,12 @@ proc_map_files_readdir(struct file *file, struct dir_context *ctx) break; ctx->pos++; } - if (fa) - flex_array_free(fa); +out_put_mm: mmput(mm); - out_put_task: put_task_struct(task); out: + genradix_free(&fa); return ret; }