From patchwork Wed May 23 12:34:01 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthew Wilcox X-Patchwork-Id: 10421153 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 A4A7F60224 for ; Wed, 23 May 2018 12:45:41 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8F26B28DFB for ; Wed, 23 May 2018 12:45:41 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 8213228F5A; Wed, 23 May 2018 12:45:41 +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_SIGNED, MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED, T_DKIM_INVALID autolearn=unavailable version=3.3.1 Received: from ucol19pa09.eemsg.mail.mil (ucol19pa09.eemsg.mail.mil [214.24.24.82]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A4FFE28DFB for ; Wed, 23 May 2018 12:45:39 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.49,433,1520899200"; d="scan'208";a="702773831" Received: from emsm-gh1-uea11.ncsc.mil ([214.29.60.3]) by ucol19pa09.eemsg.mail.mil with ESMTP/TLS/AES256-SHA; 23 May 2018 12:45:38 +0000 X-IronPort-AV: E=Sophos;i="5.49,433,1520899200"; d="scan'208";a="13658014" IronPort-PHdr: =?us-ascii?q?9a23=3AlrZEBx85mbTHS/9uRHKM819IXTAuvvDOBiVQ1K?= =?us-ascii?q?B61esVIJqq85mqBkHD//Il1AaPAd2Araocw8Pt8InYEVQa5piAtH1QOLdtbD?= =?us-ascii?q?Qizfssogo7HcSeAlf6JvO5JwYzHcBFSUM3tyrjaRsdF8nxfUDdrWOv5jAOBB?= =?us-ascii?q?r/KRB1JuPoEYLOksi7ze+/94HdbglSmDaxfa55IQmrownWqsQYm5ZpJLwryh?= =?us-ascii?q?vOrHtIeuBWyn1tKFmOgRvy5dq+8YB6/ShItP0v68BPUaPhf6QlVrNYFygpM3?= =?us-ascii?q?o05MLwqxbOSxaE62YGXWUXlhpIBBXF7A3/U5zsvCb2qvZx1S+HNsDtU7s6RS?= =?us-ascii?q?qt4LtqSB/wiScIKTg58H3MisdtiK5XuQ+tqwBjz4LRZoyaOuB+fqfAdt0EQ2?= =?us-ascii?q?RPUNtaWyhYDo+hc4cDCuwMNvtaoYbgvVsDtRWwCwmyCu3sxD9HiWL50q803O?= =?us-ascii?q?o8CQHL3hEsEtwSv3rbstr1L7wfUfy3waXU0TnPc+lb1Sn75YPVch4hu/aMXb?= =?us-ascii?q?dofMTW00YvCx/FjlWOpo3rIjia1uUNs2yH4OpnWuOklmkqqg9wojirwsctip?= =?us-ascii?q?LEhoMTylDK7yV22ps6KsOiR0Fme9KkF4FQty6DOoZwX8gsQHlotT4nxrAJtp?= =?us-ascii?q?O3ZigHxIk9yxLBZPGLbZKE7g/7WOqMJTp1h2hpdK+xihuw60Ss1PHwWteu3F?= =?us-ascii?q?pXoCdInN/BvW0X2RPJ8MiIUP5981+k2TaIyg/c9PlJIVsxlarHM54hxaMwlo?= =?us-ascii?q?YLvUTDACD2nEL2gbeKdko+4Oio6vnnYq78qp+AN457lgH+MqM0lsy5Hes4KR?= =?us-ascii?q?QBU3Ke+eS90L3v5Uz5QLNUgf0qiqTVrZ/XKMsBqqO5HgNZyJgv5hmhAzu8zd?= =?us-ascii?q?gUhXwHI0hEeBKDgYjpIVbOIPXgAPeknVuslDZrx/bbPrzuG5nCNX/DkKrnfb?= =?us-ascii?q?lh9UFc0xE+zcxf5p1ICrEBJ+j/WknqtNPCFBM5PAu0w/j/BNVnyoweQX6PAr?= =?us-ascii?q?OeMK7Ks1+I4eQvLPOQZI8Vojn9LeMo5/zpjX8/nF8SZ7Kp3YcJZ3CiBfRqOU?= =?us-ascii?q?KZYWDjgt0ZC2cFohI+TPD2iF2FSTNTZXSyULgg6TE4E4KmCoHDRoGzgLGa0i?= =?us-ascii?q?e7GoBWZ29dBVCRF3foa5iEV+0LaCKILc9riiYEWqS5S489yRGusxf3y6J5Ie?= =?us-ascii?q?XP5CIYs5Pj1MRy5+DIlBE96yJ7ANqH32GKVWF0kXsCRyUq06BnvUx91lCD3L?= =?us-ascii?q?BljPxfE9xT4e5GXRk+NZ7d1OF1Ec79WhjGftuTT1amWNqmCykrTt0t298Of1?= =?us-ascii?q?p9G9K6gx/ewyqlGaUVmqeXC5wz96LTw2L+J91hy3rc0qkukUUmSNNVNWK6nq?= =?us-ascii?q?5/6xTTB4nRnkqHj6alb74c3C/W9GqY1WqBpltYUA9rUaXdWXAQfFfZosrj6k?= =?us-ascii?q?PFVb+uBqwtMhFdxs6aNqtKdtrpgE1HRPflJNTRfWaxlHm1BRmW2rOMdorrdn?= =?us-ascii?q?4a3CXFFkcElQUT8myHNQg6HSihpG3fACZpFVL1bEPm6fN+p2+jTk8o0wGKaF?= =?us-ascii?q?Vs1rS0+h4RgPyTVekT06kKuCg/tjp0G0y90MjOC9qaoAphfrtTbs8h4Ftd0m?= =?us-ascii?q?LZrQN9NIS6L69+nl4ebxh3v0T22hV5EIVPi84qo28rzAppMq+Y1UtBdzKB0Z?= =?us-ascii?q?DrNLzXMXP+/Be1a67ZwlveysqZ+r8T6PQkrFXupAKpGVAh83VgztlYyHic6Y?= =?us-ascii?q?/JDAoVTJL9SEE39wJ1p7vCeCky+5vU1WFwMamzqjLNwc8mBPEkyhm+ZddSK7?= =?us-ascii?q?mLGxP3E8EAAMiuMuMqkUCzbh0YJOBS6LI0P8S+evSawqGrOPhvnCm6jWVH54?= =?us-ascii?q?BwyVmM+DZ9SuHW2ZYF3/CY0RGdWzf6klihrtj9mZpYajEKAmq/1S/kCZZLZq?= =?us-ascii?q?JvYIkGEmiuI8i4x9lkgZ7iRWJY/ka5B1wawM+pZQaSb1vl0A1L20QXu3unmT?= =?us-ascii?q?CkzzFviDEpqK2f3SLLw+v4choLIGhLS3d+jV30O4i7k8gaXFS0bwgujBak61?= =?us-ascii?q?z1x6xHpKthNWnTWlxFfzboIGF4SaSwq7+Cb9RI6JMyviVdSP68bkyCSr7hvx?= =?us-ascii?q?sa1DvuH3VfxD8nazGqvY/5kwZmh2KdK3ZzqnXZdNp0xRfe4tzTX+RR3j0cSC?= =?us-ascii?q?l/kznXCUC2P8O18tWMi5fDrue+WnqlVp1Sainr0ZqMtDCl6m1uAB2/me2zm9?= =?us-ascii?q?L8HAghyS/71t9qVSTUoxbneIXr0bq1Mf5/dElyGFD889Z6Gp15koYonpEQ3n?= =?us-ascii?q?wahpGL8nodjWjzNtta1LnlbHoQWTEL2MTZ4A//2E1sNniJ3Z72Vm2Bwst9YN?= =?us-ascii?q?m3emAW1Tw778BRE6qU76JLnS1uolq+sw3RfeJxnjAHyfsh8HQamf0GuBIxzi?= =?us-ascii?q?WBBbAfBVFYMjbxlxSM8d++tL9YZGCzcbeuzkpzhs2hDKqcrQFGQ3b1YIwiHS?= =?us-ascii?q?ht7sVlLF3DznPz6ob+eNnfc90frBuUnAncj+JNMpI+iuIKhTZ7OWL6pXAl1e?= =?us-ascii?q?g7ggF10JGkuoiINmVt8Li/AhFGKj3/f9kT9S31jaZCgsaW2JiiHo17FTUWWJ?= =?us-ascii?q?vlVu6nEDMOtfXnLgqOHiczqnGBFbrYBw+f519sr2jTHJCzK3GXOH4ZwM1hRB?= =?us-ascii?q?idIExQnhsZXDA9np43GACl2tDhcFt55jAW4173tAFAyuR2OBnjSm3fvhunai?= =?us-ascii?q?8oSJiDKxpb9g9C6F3TMcyC6eJzGjpV/pO/owOQLWybfR5HDXkTWkyDBVDsIK?= =?us-ascii?q?Wh5cXa/+ifHOq+IOPEYa+SpuxGS/eI2ZWv35N78DmQM8WPOX9iD+Em1kdYQ3?= =?us-ascii?q?B2Bd7ZmzQOSiwQkSLBdcibqwmg+idvtMCw7OzrWB7z5YuIE7ZSP89v9A6rjq?= =?us-ascii?q?eYLeGQgjp5KTFD1p4X33DH1L0f0EQViyF0eDmnCa4AujLVTKLMhq9XCAYWay?= =?us-ascii?q?VpNMRS96I8xhJAOcDaitPvzb54kvA1C1ZDVVP7nMGmec0KLHu5NF/dA0aLLr?= =?us-ascii?q?uGLyXRw87reaO8VaFQjOJMuhKrojmXFEvjPjWYlzn1TBCjK/pMgz+HMxBEo4?= =?us-ascii?q?GybBJtCWnlTNL7ZRy2K8N4jD0swb0pnXPGL2AdPiJgc0NWqb2Q6zlUgvJlG2?= =?us-ascii?q?xO9nBlN/WLmz6F7+nELZYbqf1rAiVwl+Je/ns60KBY4ztaS/xvnyvetNluo0?= =?us-ascii?q?upkuOX0DpoTAJOqipXhIKMpUhtIqTZ9pZHWXbC5x8C8HufBA8Lp9R/DN3joa?= =?us-ascii?q?dQysLAlKjrMjdN78rU/dcAB8jTMM+IKnUhPgD3GDHKFwYFSiarOn/Zh0xYiv?= =?us-ascii?q?6S93mVoYM9qpnjgpYOTaVbVFMtHPMAFktlBMACIItwXj48jb6bi8sI6WCkrB?= =?us-ascii?q?nWRcRVoJbHWemIAfXoNjmZjqJJaAcPwbP9MYscLJb721B4Zll8govKB1LaXc?= =?us-ascii?q?pRrS15cg80vEJN/WB8Tm0z20PlcgSt4HsSFf6ogBE7kQ5+YeUx9Df2/Vg7PF?= =?us-ascii?q?3KpDE/kEMpg9XqnSiRcCLtLKe3RYxWDTT7uFI1Mp7gQAZ1ahaynVB+OzfCXL?= =?us-ascii?q?JRjLpgeXptiADCpZtFAeRcQrFcYB8M2fGXYO0l0U5CpSW820BI//HFBodilA?= =?us-ascii?q?YxapGsrmhA1B9kbN47PazQPrRGz1hKiqKIoCCoyvg7wBUCKEYV7GOSZCkItV?= =?us-ascii?q?QVObY8OSqo//Fj6ReZljRZYmgMTf0qo/xx9kwjJ+uA0jjg079fKkGxLeCfKb?= =?us-ascii?q?2Wu3TYn86SXlwwzl8Il1VC/bVu1ccjdFCUWF4pzLqQEBQELsXCKQdIb8ZI83?= =?us-ascii?q?jTZymOu/3XwZ1pJ4W9CvzoTeiWuaYPnE2kGAcpH4IR7sUOBZSjzEbYLcL7I7?= =?us-ascii?q?Ef0hUt+B7nJFObA/RVYBiLiisIo9mjzJ9r2olQPi0dAWR4MSWw+rbXpg8rje?= =?us-ascii?q?GeU9c3YnYVRJALOmgwWMKkhy5Tp25AAyWv0uIF1AiC6CfxqT7UDDn9c9Vseu?= =?us-ascii?q?+bZRZsCdGw/jU/9bK5hEXM/ZXfPW76M81uutHS6e8AoZaIFe9UR6Fns0jAg4?= =?us-ascii?q?lYW2CqU2nXHNGuOZfwbZIhYsbpBXakTFO/kSk1QN3rPNetNKSIhhvoRYlMuo?= =?us-ascii?q?mBwD8jLdO9Fi0ZGxpoveED4qN8ahEDY5o8ZR7orBwwObWiLgmCztigRH2gJi?= =?us-ascii?q?dRT/la0eq1fadXzzY2Yu+81nQgUokwz/Or/k4VWJEKkhbeyO6/aIlcSyf8Bm?= =?us-ascii?q?dQdBnIpSo9k2hhN/g9wv0jwBzWrVYcMyqHdOtzaGxLp9s8H0+dIW1qCmokQF?= =?us-ascii?q?+RlZDD7RS237AV5CRQhMpU0fdfv3jgoJDfZDOsWKqkqZXRsiogYtgmo7F/MY?= =?us-ascii?q?P5OMuGsYnSnjrBQ5nMqgeFSjK1F+JGmthMJyJVWPdJlXs5NswGuIpB7EsxWd?= =?us-ascii?q?09J7FUCakjuK6lZiR+AS4V1y8ZWJuK3CYejeekx7vaihCQfYwnMBMeqpVCgc?= =?us-ascii?q?USUzJ3YiMYq6+uTIvXmHWCSmcXJAcT6hlM6x8bloNqeODq/pbIRodWyzFKu/?= =?us-ascii?q?J0TjfLFp5w+lvjTWGWhUL3SO+vkuyu2QJSwunh0twcWB54EkhS2fpZllEvKL?= =?us-ascii?q?FsMKkQv4jKsjCSeUP9pmLtx/OsJENNxs3Ma134EI3FuHLmXS0G5H0UQ5VDyH?= =?us-ascii?q?LEGJQTkgp5aborq05WLICgZEn++yQux551ELmgScCr21EloG4aRyetFtpMEP?= =?us-ascii?q?1mvE7SWDJ+eZyrrovqO4lKSG9K5JKds0tZkFlqMyOhyZpTMdtN7SQIXDdSuj?= =?us-ascii?q?iSocW9SNVb2cBoC58DPM1/t236GKNeN5ibu2c2taD3yn/F5zA8t0+3xDe0G6?= =?us-ascii?q?CmVO9W4nMRGh43KGSEtkkgEfYj/n3U8l/TrlB+5/1bCaSXjUVtvDZ9GYhDBi?= =?us-ascii?q?pU2n+4LlR8Vn1Gvv5GJ6TSdsxTX+M9ZQSzOxAkE/4pwVCJ91lunXjleyxyqh?= =?us-ascii?q?da+yfFUgYvWykanqvhlD8DpsypIjIVV5VIbTA9YCjfMAKbhTpbvBBBZEF2Q5?= =?us-ascii?q?oZGMpK+6kH3YtI+crPUVysJj8YUxxiLA04zeFSlUpEsEWGZy/RExandfHSvR?= =?us-ascii?q?JpZ8uRqtCmLOjh9gddloznqPw497kER3C+gQ2tWszeoJXhud2WrUaOb6D4M/?= =?us-ascii?q?CmYXDdUjfMiwywha0+AJnO5STTNxBbK5Ziw3o+fZfhEXLLPQhBJ68DO0pbT7?= =?us-ascii?q?51Zstbre1Bes9kfLoJ+bV3CRKZRxPvH4ivo+daLlrJQjTeNSqB+PSloY3P9b?= =?us-ascii?q?zdVfTgZsuUynbCWa13OpN65ifnG7f2y4BR4FH72vFz+UNmUljJLzqOrMz/KQ?= =?us-ascii?q?8R4smtaFfitIUzHTzKGJdwjGbtxkZYesoVWSKq6pMYyIhd6HnqV+J1yU3zsP?= =?us-ascii?q?BW97l46Ik4/7Fpxt2yJafJM/hatlVnAheMDAVw6potGHR/R3xWYuIJKvfeZ6?= =?us-ascii?q?IZjc70q+DwCqMY9gaY+/BDZtvBPEHBndOzCjeCRhxYhA0BsyIVLhOA1/6ZnK?= =?us-ascii?q?95UcmlpfX42kIp51ixMBsGwatw6oia4aWIpfXYbx3LwbgDQKjqSdv5rq4wtE?= =?us-ascii?q?OK+f0kiLkOd3R3Yw2mFegQTcsdyXngzK801yIsEsXDH7369P5FSX05girqm4?= =?us-ascii?q?phEFUOBvMUAb2L8JxYnmc8gOHZN9sWcqVYlmaOEx6kHKUCxmSw6yuLOmllnw?= =?us-ascii?q?3B0w3tQWOp8lD6tyh4QTHDz937iEpaSqG3BVtOXyquIUJ4tTSPPAz0tNr4p6?= =?us-ascii?q?s490Q2Mm3+u9KLimShJL1WH8rlJNyfOik4vlQXg4MtRta3w4AUBcK9IMsN8H?= =?us-ascii?q?F5dvbe73irkypBrqpciYrR/Nya+vLNHXa6l62asbKNxDJGxXckoVEz8NegNu?= =?us-ascii?q?vB59eSWfSny34RTztjuwvGRxO1q73aoEoONkOXy0rLg5IFPs1H0nYkzE3m4/?= =?us-ascii?q?IjQN0r/gVEConAf+8CpSz0ODbs2lmfYsk3VyeE3DtVH1L1DUF4F7Ih2GL0p8?= =?us-ascii?q?/GiXDQ9EA2SYZqakznnxt3D58iJk4371gX2CUDGxAXaR+HFLGoGVjlLYwcWE?= =?us-ascii?q?gbcxuHwKS1eqc53E102LOv5/bfbfdiCKoJN/ZdiBOOnVdAF5IOq6IeXK5ze1?= =?us-ascii?q?9T9a7QvAjiCJLrX/v4mnoqM/26XMRa/doet3s47Qa1XwCg5otb77YHlJCIcb?= =?us-ascii?q?ZJYZfWs8Bm8Uhn+T4PezdJgBh+kxO2T+Acq/r+4tjAqpao7PihVLo1TeUN6x?= =?us-ascii?q?c0H3h+j4f3gF07rtHYyeFcSpHSiYT49wxNOGCFuILb0xl6NOoPJJmmfLJ++H?= =?us-ascii?q?UdJykRPWgCPdyIZPkg+yVtKinc50ReAsMQYtMVJMzNmQFIhU3uXLFc7NHbFk?= =?us-ascii?q?WZC4d0cMAo9HH3xSsw8ZYzXefs8ji2JYrQ71tVJfNMkD1slM7epOgS2ffSBz?= =?us-ascii?q?QY4WKCaxRs3y2MxJ+DC/f2/eWRx9DZTFwGHissXIdbOjWO4wunRvC6lJ/xSA?= =?us-ascii?q?Ob9tfzgI4idEKXXnGxnqMFsqZKEeJalir73jxeFp3oiPOUstqs7nBXtl5GEI?= =?us-ascii?q?to8x3FGbtfMY9/ORvll8mnXE58CTXjeMvMbBohpPKWxvsQ4+V5L0b+ZJEbLQ?= =?us-ascii?q?gCy7/h7XpVUxZhSL/xvlaCR+4RY8FmSPzcpHBP9Y1gM7MPPESapJHyrDdHtl?= =?us-ascii?q?42AAEtaLIroD1VbE/OkxNJW6ruvr4PlBccW8ZjuUBQAWKwJH4+5z3fWKRaiK?= =?us-ascii?q?mRD/IU/SuXTqwKSEhoKSR+QxW02JpyYbepm+5Isn9elCNnvPcqyyBmRAe7uS?= =?us-ascii?q?D0oqIN2DEg+LK/tDgau3xKVOaekyDOCVpdyvQGl6EcBGj+6VakenkMcJPy4K?= =?us-ascii?q?V7JcTn7YQu+GowYRM/fyAdRuSgDybwj7+UAoyRrt1TmQSBuMLUbb+8NSISLK?= =?us-ascii?q?gyyQr/R3hh1QjThBho/3UPQjWh9N8rOp6wOMckxiqtHGjUakwM4qdXv8frsl?= =?us-ascii?q?4LVuQ2Y0t7wGp/ysiHWjENRMvXFmc7lggkc2REf45d5hIBEqkogyqIvrNY8Q?= =?us-ascii?q?0OZzfUCIul8JHKncjUwXk9UctqxmXOq62CgpMlzmZom8tw7iGUo3QSa+3YXN?= =?us-ascii?q?NwAnjpyIhQ1/byZ/OzveAbUIFm0qiuUOceMsm//mu7wJFqWk6jxrQDEFu1Ke?= =?us-ascii?q?sDxrbAUye5Um2VQuWLfHKKnzY+KELy4gOoLlIvYsdQs0A9KvfChoJblwD5VL?= =?us-ascii?q?N7XDmfpV/azGwlNuMXbBw2uIahewMUSO4RZu6cJfUhwfEkD1sMdXDJFzNsC+?= =?us-ascii?q?CqqV6tgJR7O3J47EX4e+vt8QfmP8CJFxkZF47asp5x+funRmKOOX9g0Ad+PE?= =?us-ascii?q?9q+OfDD14xrPNTc46NndjMgNR2yewFd/JqMS0noN4Tm5lj5JKS0MiQdBHe0J?= =?us-ascii?q?fyKcvSoviCDP3V114qdX1CUroFfQP14J03PsU3W73WAbRUvBcRCLMkQJM/LW?= =?us-ascii?q?fx9aB1LAR1cgLLYrS7nNXq9aq3Yc53qnnKpnUuIT3HpwcOx+D8GQ92aYzsgG?= =?us-ascii?q?v/OossXD9Ms/ViDxJnGM1EHMZW/CS9BJvBvainl9+85AtFuusBtrq4Xu/L0N?= =?us-ascii?q?Co94R3UYJT6UGCMHDWHqY90Rcttfi7nvqVisq5MsjlY95REbEiGjSfOLbbAo?= =?us-ascii?q?WyLC6PMcvgeklAtqSRy699Tg7BP3LEf4ui7wacHa07p0g2z5d3Ou/azThr6r?= =?us-ascii?q?Dfi76QL21YpyL2tXeSL9Mf913FA+XCQghZAeSI6mdrHKAbLMP0+e4CPMZkwY?= =?us-ascii?q?204g999j1O3cKJZa+7oUI=3D?= X-IPAS-Result: =?us-ascii?q?A2CbAgAPYgVb/wHyM5BcGQEBAQEBAQEBAQEBAQcBAQEBA?= =?us-ascii?q?YNBA4EEWyiMWowESwUBgSQBA4EPkzcUgV0qEwGGZyE1FwECAQEBAQEBAgFrH?= =?us-ascii?q?AyCNSQBgk8BAgMBAiQTBgEBDCALAQIDCQEBChgJEwIICAMBCwUdCwoXCAsFG?= =?us-ascii?q?ASEdQ0DqSyCVjOCbwEBBYVNgXQIiDaBDIEHgQ+DDYRAARIBg0+CJIdFhUmLT?= =?us-ascii?q?gmOTo0MkiQeAzNhcTMaCCgIO4JDghQLAReIWYVeT3oBAYongjcBAQ?= Received: from tarius.tycho.ncsc.mil ([144.51.242.1]) by emsm-gh1-uea11.NCSC.MIL with ESMTP; 23 May 2018 12:45:37 +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 w4NCjObr023726; Wed, 23 May 2018 08:45:27 -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 w4NCY8NK014505 for ; Wed, 23 May 2018 08:34:08 -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 w4NCYCee023025 for ; Wed, 23 May 2018 08:34:12 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A1DxAAB8XgVblywVGNZcHAEBAQQBAQoBA?= =?us-ascii?q?YNBgWIoi3uMY0sGgSiBD5M3gXiEdwKCJSE0GAECAQEBAQEBAhQBAQEBAQYYBku?= =?us-ascii?q?FNQECAycTBgEBNwEPIwkTEg8FKCETgyKBdA0DqTeCVjOCbwEBBYVNgXQIiDaBD?= =?us-ascii?q?IEHgQ+LMIIkh0WFSYtOCY5OjQySJByCCjMaCCgIgn6CFAsBDgmIWYVeT41aAQE?= X-IPAS-Result: =?us-ascii?q?A1DxAAB8XgVblywVGNZcHAEBAQQBAQoBAYNBgWIoi3uMY0s?= =?us-ascii?q?GgSiBD5M3gXiEdwKCJSE0GAECAQEBAQEBAhQBAQEBAQYYBkuFNQECAycTBgEBN?= =?us-ascii?q?wEPIwkTEg8FKCETgyKBdA0DqTeCVjOCbwEBBYVNgXQIiDaBDIEHgQ+LMIIkh0W?= =?us-ascii?q?FSYtOCY5OjQySJByCCjMaCCgIgn6CFAsBDgmIWYVeT41aAQE?= X-IronPort-AV: E=Sophos;i="5.49,433,1520913600"; d="scan'208";a="283367" Received: from emsm-gh1-uea10.ncsc.mil ([214.29.60.34]) by goalie.tycho.ncsc.mil with ESMTP; 23 May 2018 08:34:12 -0400 IronPort-PHdr: =?us-ascii?q?9a23=3A4VbYMRxHuF2nDgHXCy+O+j09IxM/srCxBDY+r6?= =?us-ascii?q?Qd1OMVIJqq85mqBkHD//Il1AaPAd2Araocw8Pt8InYEVQa5piAtH1QOLdtbD?= =?us-ascii?q?Qizfssogo7HcSeAlf6JvO5JwYzHcBFSUM3tyrjaRsdF8nxfUDdrWOv5jAOBB?= =?us-ascii?q?r/KRB1JuPoEYLOksi7ze+/94HdbglSmDaxfa55IQmrownWqsQYm5ZpJLwryh?= =?us-ascii?q?vOrHtIeuBWyn1tKFmOgRvy5dq+8YB6/ShItP0v68BPUaPhf6QlVrNYFygpM3?= =?us-ascii?q?o05MLwqxbOSxaE62YGXWUXlhpIBBXF7A3/U5zsvCb2qvZx1S+HNsDtU7s6RS?= =?us-ascii?q?qt4LtqSB/wiScIKTg58H3MisdtiK5XuQ+tqwBjz4LRZoyeKfhwcb7Hfd4CWG?= =?us-ascii?q?RPUMZfWTJCDIOyYIQAE/cOMuRWoITmu1sCsQeyCRWwCO711DNFgGL9060g0+?= =?us-ascii?q?QmFAHLxAsuEMgSsHTIrNX6KqkTWv21w6nJyTXMc/RW2Djg44XPfBEhoPWMXb?= =?us-ascii?q?ZwcMfKyEkvEQ3Fjk+KpoP4ITyazPkCv3Kc7+p6WuKikmgqoBxyrDi33soglJ?= =?us-ascii?q?TFi40Pxlza+ih12pg5KcCiREN0btOoCIZcuiWZOodsX88vTWNltDwkxrEap5?= =?us-ascii?q?K3ZjUGxZopyhPZdveJaZKH4gj5W+aUOTp4hGxqeLa4hxuq/0euyO7yWM+63V?= =?us-ascii?q?tUtCRIjsXAu3AX2xPN9MeHT+B9/ki71TaKzQ/T6+VELVoxlaraL54t2r8wlp?= =?us-ascii?q?wNvkTfBiL6hlj6gaCMekk69eWk8frrbqj8qpKTOIJ4kgT+Pb4vmsy7D+Q4KA?= =?us-ascii?q?8OX22D9OWy1b3j+Un5QbVRg/03lKnZvoraKt4GqaGnGQBaz5wv6xGlDzepyN?= =?us-ascii?q?gYh2UILEpZeBKbiIjkI0rOL+78Dfe+hVSsjThqyuvaPrzhHprNLn/DnK3nfb?= =?us-ascii?q?Zm8UFQ0gUzzddB58EcNrZUA//1RgfWqtHCFQMjPgGoi7LkBdNhkIQAVHiUHr?= =?us-ascii?q?WUPb/6vlqB5+ZpKO6JMtw7ojH4ft0s++LugGBxpl4Zdq65lc8IaXS8D9xnJU?= =?us-ascii?q?uDaHbhi9tHFn0F6FltBNf2gUGPBGYAL025WLgxs3RiUNr8V9XKW5ytjbqd3S?= =?us-ascii?q?yyApxRYCVcB0uRFWvzJ9zWZtctTHm5GuY5zXoJWL26RMkk3BCq8gr7z+kvIu?= =?us-ascii?q?nV/3gAvIn4nJhu5uLVnA0v7zE8EcmH0m+MQm011mMFTjM7xuZ+9GR8zFmZ2K?= =?us-ascii?q?R1ivAeEsZc6g=3D=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0C+AADAXgVblywVGNZcHAEBAQQBAQo?= =?us-ascii?q?BAYNBgWIoi3uMY0sGgSiBD5M3gXiEdwKCJSE0GAECAQEBAQEBAgETAQEBAQE?= =?us-ascii?q?GGAZLDII1JAGCTwECAycTBgEBNwEPIwkTEg8FKCETgyKBdA0DqTSCVjOCbwE?= =?us-ascii?q?BBYVNgXQIiDaBDIEHgQ+LMIIkh0WFSYtOCY5OjQySJByCCjMaCCgIgn6CFAs?= =?us-ascii?q?BDgmIWYVeT41aAQE?= X-IPAS-Result: =?us-ascii?q?A0C+AADAXgVblywVGNZcHAEBAQQBAQoBAYNBgWIoi3uMY?= =?us-ascii?q?0sGgSiBD5M3gXiEdwKCJSE0GAECAQEBAQEBAgETAQEBAQEGGAZLDII1JAGCT?= =?us-ascii?q?wECAycTBgEBNwEPIwkTEg8FKCETgyKBdA0DqTSCVjOCbwEBBYVNgXQIiDaBD?= =?us-ascii?q?IEHgQ+LMIIkh0WFSYtOCY5OjQySJByCCjMaCCgIgn6CFAsBDgmIWYVeT41aA?= =?us-ascii?q?QE?= X-IronPort-AV: E=Sophos;i="5.49,433,1520899200"; d="scan'208";a="12084482" X-IronPort-Outbreak-Status: No, level 0, Unknown - Unknown Received: from uhil3cpa05.eemsg.mail.mil ([214.24.21.44]) by EMSM-GH1-UEA10.NCSC.MIL with ESMTP; 23 May 2018 12:34:11 +0000 X-EEMSG-check-005: 0 X-EEMSG-check-006: 000-001;b1ef704a-92e3-442c-ba7f-bf73f8dd2e4f Authentication-Results: UHIL3CPA07.eemsg.mail.mil; dkim=pass (signature verified) header.i=@infradead.org X-EEMSG-check-008: 27215717|UHIL3CPA07_EEMSG_MP23.csd.disa.mil X-EEMSG-SBRS: 5.2 X-EEMSG-ORIG-IP: 198.137.202.133 X-EEMSG-check-002: true X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0DyAAB8XgVbmIXKicZcHAEBAQQBAQoBAYUjKIt7jGNLBoEoFHuTN4F4hHcCgiUhNBgBAgEBAQEBAQIUAQEBAQEICwsGKCMMhSkBAgMnEwYBATcBDwsYCRMSDwUoIRODIoF0Dak6glYzgm8BAQWFTYF0CIg2gQyBB4EPgw2II4Ikh0WFSYtOCY5OjQySJByCCjMaCCgIgn6CFAsBDgmIWYVeHzCNWgEB X-IPAS-Result: A0DyAAB8XgVbmIXKicZcHAEBAQQBAQoBAYUjKIt7jGNLBoEoFHuTN4F4hHcCgiUhNBgBAgEBAQEBAQIUAQEBAQEICwsGKCMMhSkBAgMnEwYBATcBDwsYCRMSDwUoIRODIoF0Dak6glYzgm8BAQWFTYF0CIg2gQyBB4EPgw2II4Ikh0WFSYtOCY5OjQySJByCCjMaCCgIgn6CFAsBDgmIWYVeHzCNWgEB Received: from bombadil.infradead.org ([198.137.202.133]) by UHIL3CPA07.eemsg.mail.mil with ESMTP; 23 May 2018 12:34:06 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20170209; h=In-Reply-To:Content-Type:MIME-Version :References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=pVq97Uiq0a1oeN11rmCX4Cl78IJme5wVQuxjcZr4ztE=; b=WWMHc6logkbN0vVLtpKDWb+7L KnhErISJwknQaSUCN9A9W1JnPxDdImVcbNNOpQwDRk/Hjm4yCAPB7NxVSR8MNygpkX727MVhcATJe lVwC0aODVmLfp4LmTPMgmIqhhAoq2y1ui1b53pS52qSBsmhYEBUu+JKGKlO9PWmMXFD1jXOmqbQZX z7clYHHcGxkQiVbrrL8hPUZak9l9DpSGdSNrx84DE+agPREvjMLlJ48cgwKJY/FxfMM91mOLA8iBW cSBOEsoIxghIVjyCcgKrwlYu9FknD2oLakH/hlYzSgmR2tvhhlvOqHkQJmrZOqGHpzgwGo2p7WVKH pRGJWCnQg==; Received: from willy by bombadil.infradead.org with local (Exim 4.90_1 #2 (Red Hat Linux)) id 1fLSxt-0000Oy-RM; Wed, 23 May 2018 12:34:01 +0000 Date: Wed, 23 May 2018 05:34:01 -0700 X-EEMSG-check-009: 444-444 From: Matthew Wilcox To: Kent Overstreet Message-ID: <20180523123401.GB19987@bombadil.infradead.org> References: <20180523011821.12165-1-kent.overstreet@gmail.com> <20180523011821.12165-4-kent.overstreet@gmail.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20180523011821.12165-4-kent.overstreet@gmail.com> User-Agent: Mutt/1.9.2 (2017-12-15) X-Mailman-Approved-At: Wed, 23 May 2018 08:45:18 -0400 Subject: Re: [PATCH 4/6] openvswitch: convert 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: dev@openvswitch.org, gregkh@linuxfoundation.org, linux-kernel@vger.kernel.org, linux-raid@vger.kernel.org, linux-security-module@vger.kernel.org, viro@zeniv.linux.org.uk, selinux@tycho.nsa.gov, akpm@linux-foundation.org, shli@kernel.org Errors-To: selinux-bounces@tycho.nsa.gov Sender: "Selinux" X-Virus-Scanned: ClamAV using ClamSMTP On Tue, May 22, 2018 at 09:18:19PM -0400, Kent Overstreet wrote: > 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 This doesn't really feel like it should be a flexarray / genradix user. It just wants to allocate a lot of buckets and use them. Maybe kvmalloc is the right approach for this user of flexarray? Signed-off-by: Matthew Wilcox net/openvswitch/flow.h | 1 - net/openvswitch/flow_netlink.h | 1 - net/openvswitch/flow_table.c | 49 +++++++++++------------------------------- net/openvswitch/flow_table.h | 3 +-- 4 files changed, 13 insertions(+), 41 deletions(-) diff --git a/net/openvswitch/flow.h b/net/openvswitch/flow.h index c670dd24b8b7..4f06278166d9 100644 --- a/net/openvswitch/flow.h +++ b/net/openvswitch/flow.h @@ -30,7 +30,6 @@ #include #include #include -#include #include #include #include diff --git a/net/openvswitch/flow_netlink.h b/net/openvswitch/flow_netlink.h index 6657606b2b47..66f9553758a5 100644 --- a/net/openvswitch/flow_netlink.h +++ b/net/openvswitch/flow_netlink.h @@ -30,7 +30,6 @@ #include #include #include -#include #include #include diff --git a/net/openvswitch/flow_table.c b/net/openvswitch/flow_table.c index 80ea2a71852e..909372bd2621 100644 --- a/net/openvswitch/flow_table.c +++ b/net/openvswitch/flow_table.c @@ -111,29 +111,6 @@ int ovs_flow_tbl_count(const struct flow_table *table) return table->count; } -static struct flex_array *alloc_buckets(unsigned int n_buckets) -{ - struct flex_array *buckets; - int i, err; - - buckets = flex_array_alloc(sizeof(struct hlist_head), - n_buckets, GFP_KERNEL); - if (!buckets) - return NULL; - - err = flex_array_prealloc(buckets, 0, n_buckets, GFP_KERNEL); - if (err) { - flex_array_free(buckets); - return NULL; - } - - for (i = 0; i < n_buckets; i++) - INIT_HLIST_HEAD((struct hlist_head *) - flex_array_get(buckets, i)); - - return buckets; -} - static void flow_free(struct sw_flow *flow) { int cpu; @@ -168,31 +145,30 @@ void ovs_flow_free(struct sw_flow *flow, bool deferred) flow_free(flow); } -static void free_buckets(struct flex_array *buckets) -{ - flex_array_free(buckets); -} - - static void __table_instance_destroy(struct table_instance *ti) { - free_buckets(ti->buckets); + kvfree(ti->buckets); kfree(ti); } static struct table_instance *table_instance_alloc(int new_size) { struct table_instance *ti = kmalloc(sizeof(*ti), GFP_KERNEL); + int i; if (!ti) return NULL; - ti->buckets = alloc_buckets(new_size); - + ti->buckets = kvmalloc(sizeof(struct hlist_head) * new_size, + GFP_KERNEL); if (!ti->buckets) { kfree(ti); return NULL; } + + for (i = 0; i < new_size; i++) + INIT_HLIST_HEAD(&ti->buckets[i]); + ti->n_buckets = new_size; ti->node_ver = 0; ti->keep_flows = false; @@ -249,7 +225,7 @@ static void table_instance_destroy(struct table_instance *ti, for (i = 0; i < ti->n_buckets; i++) { struct sw_flow *flow; - struct hlist_head *head = flex_array_get(ti->buckets, i); + struct hlist_head *head = &ti->buckets[i]; struct hlist_node *n; int ver = ti->node_ver; int ufid_ver = ufid_ti->node_ver; @@ -294,7 +270,7 @@ struct sw_flow *ovs_flow_tbl_dump_next(struct table_instance *ti, ver = ti->node_ver; while (*bucket < ti->n_buckets) { i = 0; - head = flex_array_get(ti->buckets, *bucket); + head = &ti->buckets[*bucket]; hlist_for_each_entry_rcu(flow, head, flow_table.node[ver]) { if (i < *last) { i++; @@ -313,8 +289,7 @@ struct sw_flow *ovs_flow_tbl_dump_next(struct table_instance *ti, static struct hlist_head *find_bucket(struct table_instance *ti, u32 hash) { hash = jhash_1word(hash, ti->hash_seed); - return flex_array_get(ti->buckets, - (hash & (ti->n_buckets - 1))); + return &ti->buckets[hash & (ti->n_buckets - 1)]; } static void table_instance_insert(struct table_instance *ti, @@ -349,7 +324,7 @@ static void flow_table_copy_flows(struct table_instance *old, struct sw_flow *flow; struct hlist_head *head; - head = flex_array_get(old->buckets, i); + head = &old->buckets[i]; if (ufid) hlist_for_each_entry(flow, head, diff --git a/net/openvswitch/flow_table.h b/net/openvswitch/flow_table.h index 2dd9900f533d..de5ec6cf5174 100644 --- a/net/openvswitch/flow_table.h +++ b/net/openvswitch/flow_table.h @@ -29,7 +29,6 @@ #include #include #include -#include #include #include @@ -37,7 +36,7 @@ #include "flow.h" struct table_instance { - struct flex_array *buckets; + struct hlist_head *buckets; unsigned int n_buckets; struct rcu_head rcu; int node_ver;