From patchwork Tue Feb 14 13:17:24 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: James Morris X-Patchwork-Id: 9571913 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 AC4E160578 for ; Tue, 14 Feb 2017 13:18:31 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 9C5FA28417 for ; Tue, 14 Feb 2017 13:18:31 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 911B82841C; Tue, 14 Feb 2017 13:18:31 +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=-1.9 required=2.0 tests=BAYES_00, RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 Received: from emsm-gh1-uea10.nsa.gov (emsm-gh1-uea10.nsa.gov [8.44.101.8]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id E969F28417 for ; Tue, 14 Feb 2017 13:18:19 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.35,161,1484006400"; d="scan'208";a="3843905" IronPort-PHdr: =?us-ascii?q?9a23=3A9I2RIRX6KouTibIyeh7VyGCN9NbV8LGtZVwlr6E/?= =?us-ascii?q?grcLSJyIuqrYYhaAvKdThVPEFb/W9+hDw7KP9fuxBCpYud3b7TgrS99lb1c9k8?= =?us-ascii?q?IYnggtUoauKHbQC7rUVRE8B9lIT1R//nu2YgB/Ecf6YEDO8DXptWZBUhrwOhBo?= =?us-ascii?q?KevrB4Xck9q41/yo+53Ufg5EmCexbal8IRiyrQjdrNUajZdtJqovyhbCv2dFdf?= =?us-ascii?q?lRyW50P1yYggzy5t23/J5t8iRQv+wu+stdWqjkfKo2UKJVAi0+P286+MPkux/D?= =?us-ascii?q?TRCS5nQHSWUZjgBIAwne4x7kWJr6rzb3ufB82CmeOs32UKw0VDG/5KplVBPklC?= =?us-ascii?q?EKPCM3/2HNjsx7kbxVrhSvqRdix4LYeZyZOOZ7cq7bYNgUR3dOXtxJWiJPAo2y?= =?us-ascii?q?cZYBAekPMulXt4nwpUYCoBWiCgejGuzv0SRFhmP00KAgz+gtDRvL0BImEtkTsH?= =?us-ascii?q?rUttL1NKIKXO6x1qbIyCvMb+hL0jn674jIaAohofCXXbltdsfRy0wvFwTfjlWK?= =?us-ascii?q?qIzlJCiY1uIXvGie8eVgVPiji2k9qwF+uzWiwNonhIrRho8N11zJ+ip0zJw1KN?= =?us-ascii?q?GlUkJ3f9GpHIVKuy2HL4d7Q8MvT3tstSs+0LEKpJq2cSkQxJg6xhPSavqKeJWS?= =?us-ascii?q?7B35TuaeOzJ4iWpgeLK4mhm971Ctyvb5VsmoyFZKqTdFksXUunANyRPT7s+HR+?= =?us-ascii?q?Nh/ki7wzaP1h3T6vpeLUAolavUN54hwrkqmpoVrUvDBTP5lF/zjK+XckUo4umo?= =?us-ascii?q?6+L5bbX6vpKQKoB5hw7kPqkuh8CzG/o0PwcQU2SB5OiwzLjj8lf4QLVOgP02iK?= =?us-ascii?q?7ZsJXCKMQAuKG5Bw5V0oA+6xewFjupy9MYnWQBLF1ZZh2HlJPkO03OIf/kDfe/?= =?us-ascii?q?hE6gkDFwx//cJLHhDZLNLmbbnLf7Ybl981JcyBY0zd1H5ZJUDbcBL+jvWk/xrt?= =?us-ascii?q?PYCAQ0Mw6zw+bhDdVyzJgeWX6RDa+DK6Peq1iI5vggI+OUfo8apC79K+Q55/7p?= =?us-ascii?q?lXI5m10dcrO10psUc3C4GfJmI0SHYXf3jNcBFXoKvwUlQ+z3jl2CTSNTa2y1X6?= =?us-ascii?q?Im6TExEJimApvbRoCxnLyB2z+2HoVIaW9dFF+MF3bod5mDW/oXaSKdPNFunSIe?= =?us-ascii?q?WbimUY8h2gmktBXmxLp/MurU5ioYuIr+29hy4e3Tkww9+iJwD8ScyGyCVX97nn?= =?us-ascii?q?kPRzMs26B/u0N9wE+Z0adkm/xYCcBT5/RRXwgnKZ7T1fZ6BsvuVQLGe9eGVEyp?= =?us-ascii?q?Qs66AT0rSNI+3cMOaV5nG9q+lhDDwzaqA7gNmryKApw07rzT33zvKMZ41XnGyL?= =?us-ascii?q?Mhjlk9T8tILW2pmKh/9w3JCI7Il0WWjKGqdKsG0C7K7meDwnKEvFtEXw5oTaXF?= =?us-ascii?q?QXcfa1PWrNX44UPCSaSjCbEjMgdYyM6CLLFGatvzglVcR/fjOcrebHyrl2e2Gx?= =?us-ascii?q?mI2quGbJD2dGUFwCXdFE8EnhgN8naeLwc+HCaho3nFATx2D13veULs8fJmqHO/?= =?us-ascii?q?VEA70x+FY1dm17qv9R4fneacRO8L3rIYpCchrC15HVi839LSDtqPuRBhcb5SYd?= =?us-ascii?q?wj/VhH0njZuBZlPpy6KKBihEARfBhrv0/00BV3EIpAm9AwrHw21ApyNb6Y0FRZ?= =?us-ascii?q?ejOWx5D/ILvXJXXz/BC0cKPW30ne0NeP9qcU5vU4sE/vvAazFkot639nycVa02?= =?us-ascii?q?OA5pXWCwofSZHxXVw09xh9urHXeSo96JnX1X1rLKm4qDjC28gmBOE90BavY89f?= =?us-ascii?q?ML+YFA/1C8AVHdWhKPYrm1e3dBIJJ/pd+7IxP8+8cPuGwqGrNv56nD26lWRH/J?= =?us-ascii?q?x90kWU+iVgUOHI24gKw+qE3gqHUDfxl0yhvdz2mY9aYzESAmu/xjL+CI5XeKJy?= =?us-ascii?q?YZ4BCX2yLM2v2tV+m5ntVmZY9FG9A1MG3MipdAGWb1zgwQ1Q0kEXrma9lSu/1T?= =?us-ascii?q?x0nCkjrrCD0yzW3+TiaB0HN3ZQRGlsl1fsJpO0j8wBUUizaQgpkxWk5UPgyKhd?= =?us-ascii?q?vqh/KXfcQVtQdSjsM25iSrewtqaFY8NX5pInqyFXUPiiblCAUb7wuAUa3D35H2?= =?us-ascii?q?RF2TA7ciumupLjnxx1kGidNmp8rGLFecFswhfS/MDcSuNM0ToHXiZ4jSLaCUS7?= =?us-ascii?q?P9ms4dqbjYzDsvykW2KnSJJTbTHhzZmcuyuj+W1qHRq/kui1mt3mFQg61TH018?= =?us-ascii?q?JxWCrSshn8eI7r2769MeJ9cUliHEX85NZiGoFijoswg4kd2WYbhpqJ4XoHln3z?= =?us-ascii?q?Pc9H1qL+a3oNQzELzsXR4Ajk3k1sNGiJx4XjWnWa2MthaMGwYnkK1SIl88BKFK?= =?us-ascii?q?CU4aRAnSt0uVq4sRvdYeNjkTcZyPsu7mMagu4StQo21iWdA7YSHUhEMiz3jRiI?= =?us-ascii?q?6c6xrLlPbma1bbewzFZ+ncymDLyauAFcX3L5epM8Ei9q8sp/N1zN3Wbo6oH5ZN?= =?us-ascii?q?bQdsgfthqOkxfPl+JVMo4+luIWhSp7PmLwpWUlxPQmjRxqx521ppKLJH5q/KK9?= =?us-ascii?q?Hh5YMTv1atgW+j3xi6ZemdqZ05qpHpp/BjUBRIHoQu6wEDIOqfTnMB6DED4ipX?= =?us-ascii?q?edArrSBgyf51lgr3LUFZCkKW2XKGMezdV4SxmXPFZfjxwMXDUmgp45ERinxNT7?= =?us-ascii?q?f0dk4jAe+Eb4pQFKyuJ0KRb/SHzSpBqzajgqUpifNwBa7hpF50fIK8yR8vx8Hy?= =?us-ascii?q?9f/p27owyCNHaXZwJWAmEVQkaEHUzsPqGy5dnc9OiVHvS+L/3TbriVt+xeUeqH?= =?us-ascii?q?xZK13otg4TmMKt2FPmN+AP0jxkpDQXd5FtzBmzoVViwXkznAYNKapBeg+ix7t8?= =?us-ascii?q?6//+7tWA714ouPEbRSO811+x+qmaeDK/KQhCFhJDZb1pIMwWHHxaMa3F4VhSFu?= =?us-ascii?q?eSeiEagctS7NS6LQn7FYAwQdayxtKMtC97g80RVVOc7HltP10aZ1jvAvBFdDSV?= =?us-ascii?q?zhncSpaNcEI26jKVzHA1yLO66eJT3RxMH3Y72zRqFMjOlOsB2wozmbGVf5Pjuf?= =?us-ascii?q?jznpSwyvMeZUgS6GOhxRopqwfQtrCWf5Vt7mbQe7MNBvhz0s3bI0nm/KNXIbMT?= =?us-ascii?q?VkaUNBtLOR4TldgvplH2xB6XpkIPKelCmF6unUMJEWseFkAi5sjeJV/Gw6y6dJ?= =?us-ascii?q?7CFDXPF1ljHSocBzrFG9iOaPzCZnUB1VqjtQno2EoUBiNb/e9plaVnbO5AgN4n?= =?us-ascii?q?mICxQWu9tlDcXiu6ZKytfVjKLzMCxP89zV/csGHMjUNMyHMHsnMRXzHj7bEAoF?= =?us-ascii?q?QiSvNW3FgExdiv6S/GWPrpcmspjshIYOSrhDWVMuDfwWDUBlHN0ZIJdrRTMoi6?= =?us-ascii?q?Wbg9AU6naktxneWsFavpHBVvKPDvTiMyqWjLleZxsV2rP0N4oSOZfn20x5bVl6?= =?us-ascii?q?mp7GG03KXdBCuidhdBM7oF1R8HhiSW0+w1nqagKi4H8UE/65hQM5hRVlbuQs7j?= =?us-ascii?q?js5U07Jl3QpCs/iEMxg8nqgSiNcD7tK6e9RZtZCyXuuEgvLJz2WAF1bRWskkxi?= =?us-ascii?q?MTfLXbNRj797emBshw7Qo5xPGeRTTadceh8f2emXZ+k00VRbsiin2UhH5e7fBZ?= =?us-ascii?q?t4kwsrcICjr3Rb1AJ5a946O6/QKbFVwVhXg6KBojWn1vstwAMEIUYC7n+ScjYS?= =?us-ascii?q?uEMULrkmOzao/ut05AyEhTRMYmwMWuEpovJt7UM9J/6PzyT7075AK0C9LeqfIL?= =?us-ascii?q?2Fu2LYj86HXksw1l8Ul0lC5bV2y9ksc1GKWE811rueCxQJONHZJgFUdcpd6X/T?= =?us-ascii?q?fSiWseXX3510P5+xFub2Qu+SrKwUmF6rHB41H4QQ6cQMBoSj31vGLcfmMbEF0g?= =?us-ascii?q?4g6x7xJFWfC/RIdgmLnykbrMGi1p933JVdJzEHDWV7Lyq3+q7dphU2j/qbQNc2?= =?us-ascii?q?fnAaU5MZOXItRsK1gSFZv25aAzmpye8Z0xKN7zzhpiTKFjbwdd5jZOqSZRx2Et?= =?us-ascii?q?G64Ck/86+1iV/X9ZXSPWf6Osp+utXX8+MVu46HC+9ITbl6q0rcn45YR2a0XG7J?= =?us-ascii?q?EN+1IIP9a4YqbdzpEHq6VUa/iz0tRcfrINmtNrSIgR3vRYtMq4mUwjQjNc67Fj?= =?us-ascii?q?EDFBZ9vP0M5KV5ZQIfeZU7egLoux44N6OhPAeSys+uTHq1KTtKU/lfyv23aKFL?= =?us-ascii?q?wCopae+6zmcgQowhwump70ENXpAKjxDZxfalfYVeVzb8GmBFcQXVuSU5j3RhNv?= =?us-ascii?q?o1wuonwxPIq1kdPCqNdOx1aGxJpN48BVSKIXpqEGY4QUGTjZbb6A62w78S5zdd?= =?us-ascii?q?n8pT0eBdrHj+v5rfYDWwWKyrqZTYqDcvbdkmoqJrKoPvOM2Gu43CnjbHVpnfrh?= =?us-ascii?q?WFUDKmF/pdgtVQLzhYT+NOmWE5IsEGuI1B6EQ3VsciJ7xAFqgspra2aTV6Fy4e?= =?us-ascii?q?1ykZWJ2c3DYamOezx6PalguMcJQlKBELqpFCgtoBXCFoeiweoa+iV4PRl2+CUG?= =?us-ascii?q?cGOxwc7QVW6wIGj4NwcP3l7JDOTJBS1z5cu+h0XTfTFpl061v7TXmbjkPmR/Wn?= =?us-ascii?q?iOGmxx9dzOzy3dkBQx5wE1JdxuZMmksvMrF3JLEavpTWvT+QaUP6oGXtxfO8JF?= =?us-ascii?q?lXyM3ba134DI3BtWrnSiMS4GAaS5VTxX/YDpkdjw15aKM3q1pWO4CmZlzy5zo6?= =?us-ascii?q?yIR1B7O4T9ykx045rXYaQCenC8ZOC+N8v13LQzBqf5erqJHhO5VTXGBQ4oGdpE?= =?us-ascii?q?lFn0VtKSK5zoBcK85V6D4WQDdPuSmdvMe1SMBbw895FYUMItBktHrmBKNEIoKe?= =?us-ascii?q?o2Motbzry3/Z/T88sFO7xDW8G6+4U+xZ8HcEGgUsPWierFcgD/c0+GfI7l/Nqk?= =?us-ascii?q?x0//tcBrWXg0R9uipyHpBPBjZM1HCqNVdzQWJHs+pENqvabdZQQ/4oZR+gIxY+?= =?us-ascii?q?D+Ip31SV/UFomnf0ezRytgxe+y/HRQk1Wy4VgrPjmTAFr8GnPjgaS4lWYjo9dS?= =?us-ascii?q?fFLBmbmTtWvBZZZEFmQZcZAsxK+7sDx4tb4tLCSVqwKSECRBFtLBg40edZlUJZ?= =?us-ascii?q?s0WVYiHdDQupdfbTqRJ7Z8GRo9C1LP7h5gdIlpvnsPwk96UEX3CmhQqtQdXFoo?= =?us-ascii?q?/gqtGKs1CBeL3+M+KifX/LVCLMggyohbc4E5nK+DDeMApBJJlg03UkZYXuBHXW?= =?us-ascii?q?MhtYP6IbP1RUVaRkZtVcuOxaYNVkeKkR8693Gh2HXg/vGJCorPReLFbTQirRIj?= =?us-ascii?q?6c/eOhuoLc86bdSfT+acOR3XrHRbx4Poti4znhB7jqyZNe+lbx2vp17Ux6R0TJ?= =?us-ascii?q?PzyDodj8KA4G/9WtdkznvpI1BzzWG4twnGDrxk5ea8odWzeq/4gAyJNF9HbwTv?= =?us-ascii?q?p10lLtv+JP97lr85U37qttycezO6fdN+pWvlNgAheJGApm7JMtD3ZjR2pJeO8e?= =?us-ascii?q?NO/RfbgFjcDps+33D7cX6AGP9ONEddvKPFrBms6iCjGGVRNLggEBqSIALgSG0/?= =?us-ascii?q?6Jgah0SdyqpeLhwEIi/0C+LgIazLBq/YqE5rCIq/HJYBTM1rUER6zqRt/prrs2?= =?us-ascii?q?pUOS5PoklLoQdWxpeQGnF/IdVsEFzGf60a8q1T4sE9/EH7/4/f5MTXY5njb+lJ?= =?us-ascii?q?BhA1UZAOkbEKGN/YtAgmc4gPDWOccOcq9cgGqPEwCrEqMaw36x9ySXOHVlgg3J?= =?us-ascii?q?0xzoQ2O89kX2rShjQSvI1djjjFFYVryqBUdWQyqpOFN3sDKVMwrur9r7o6M17F?= =?us-ascii?q?s5Mmb8rtKCiHOhOK9LH834PNGcIzM7pFQZjJ0rQdygxJ4UFMGhINgL9nF+dfze?= =?us-ascii?q?53mtkyBfv6dNn5De7d2N+vXLAXmgiLWXq7qQxDBZzng4uU8w6tW7O/7T+dKFWP?= =?us-ascii?q?Wo2HwXTytlvAvBRRG1oKTBr18IIUyLzFvLmIsSM9Ff2Xk1zUDm5O4mQN4p9QVe?= =?us-ascii?q?EIjAZ+kYqjDoJDv020ufbM4rVimDyTtYAEj5EV5iGKgzwGjwpt7GlW/M+100QY?= =?us-ascii?q?l9b0nnhRtxD4UkJkIi9kMawi8CEQcXbxCUEq2oBEriLYseVkgDcg6L3L6kdacr?= =?us-ascii?q?xUdz2K+g5PfPbexgAKoALuxdgROTk1VAFZIWtKIfTKh6e1BD6K7dvhLiBJT/X/?= =?us-ascii?q?j6iXowMuW4QsRB8cAct3Yv+Qi/SAS95pdE9bYUkoiIdrRDYZjOos9z81tn6SQI?= =?us-ascii?q?dixXjxh1lwm5XvwEpOD//tjbt4Kl6v20W6YzXeoX+AY7B39lgpvrml8jv8vY1+?= =?us-ascii?q?hCRY3Ok4j/9h5CI2KSsobAzxZ8MfYOK56sfLt49XUHJi0eKmkLPdWIa/gz/TVt?= =?us-ascii?q?MDTV51xNGM8MY80XPNbVkwBOlkLpQK1T9tbcGlKACodydton4HDrxz0u6pszTP?= =?us-ascii?q?rg5yGqKpzF6FFNJfxDhj12lN3evOgV3ebSCC8P7HaCahh12S2DxIOPC/bx4eWM?= =?us-ascii?q?0MvbV04CHiMtT4hdIyeN9hK9SeqojpXpVRmU5dXpjJI5bkKQSWS7nL4ZvaZUDe?= =?us-ascii?q?5AliL70yBGFo/vm/Kar9qs6WVQtl1dE4Z/9AbFF7tbPpV6PxT4i8aqS1NkBiTl?= =?us-ascii?q?ZMHbahouueSRxucW4OVyLUj+apEBIhIC1b367WBZTgx0SL75plyZR/4eZMN6SP?= =?us-ascii?q?PYqXBY8Z5gK7URM1iZvpPqqClHpUsrDw8oZ78wryBaeVPVnAJPQab0paQMig0C?= =?us-ascii?q?Xt5loUVMA36/OHoi5zrbUqRYlKaRB+YP8jqNUqwOU15lMid/QxOpxppue6Gmne?= =?us-ascii?q?1csm9cmCNyvuQq2SR8RBSgoS3su74N2TU49bG3qjoBv2BFTuKZkyvPElVM0vAK?= =?us-ascii?q?jaYaC3b/5l2xe30DY5Xo4LhnP8vs748h7GojYR87ZS0JQfygCz3sj6OPGoGPtt?= =?us-ascii?q?NciwKKuMXKd7CzNjIeNrU6yRLkXHh9yRPTnBNn/WoEWDmg68UkJIqlM8Y/2iWo?= =?us-ascii?q?AXTbdEoL4q5Rv8v+qUULTPAvZV18z2tt1MmHRisQRM3AAGs1gQ0kZn9CcJ1d8x?= =?us-ascii?q?MaELMogjmQtKlc4g4UeCvUEpii+oTIn8fI3nk9TdFwym3Kpq2Fgo4q32BkmtN1?= =?us-ascii?q?6C6Oo3cSd+3DXs9yA3jzyJ1QyejjaPWsqOwHTpVpyKi5Wv8YLsaj4Xe22IltWk?= =?us-ascii?q?K9x7QeAUC2MOkYy7ffTieqVGyYWeOQc2SWmDY5KEHy7wGyLlIrcMdKs1M9Muza?= =?us-ascii?q?i55eiQLhX710RiGLqF7V1mMjN/0Vdx4stIehZQMKUPYbZ/KAKug23P0+FFwMYm?= =?us-ascii?q?fGHStyDO+3v0CinIx/O3h7+kX6ZuLt8gH6P9eIHBkLD5LapIZr+fOmXmKBJWNg?= =?us-ascii?q?zBpqMUl29+feF0wxtuhYc5aQgdjfmc920esEd/dxKy0ypMQfmoV56YmbyM2Kaw?= =?us-ascii?q?3ezo7uJdHJpfiVG+Hfz0UvemxBTroZYB/654YkMd49QbHTG6VWvQgED6ggXJMh?= =?us-ascii?q?L3vx9L1zLA5rdw7RZbe0gsrtpu+QZJtbvXzW7lU2LCjCvR0P0Pq0QhJnb5qynX?= =?us-ascii?q?X9PIgwRi5dr91qEhZpB5VAG8Ucrwe8GJ6UnKa7i8Ot+0NkpeAFrLD8CvfQ1NS2?= =?us-ascii?q?x49xRYRV5VSXPDbNA6lmmkplgfq2gvfBypn+F9jveNIFVOh+R27KdKXGHoGhJT?= =?us-ascii?q?6UPcL8YUFG+aaG0L1lShWReDz5X62euSyqLPVk+0Q7xZBmc+fIyTwt7q3b2MHs?= =?us-ascii?q?aG1BoSejt3GJPoNF7FPWHezeQw5USf2d/WZiGa0Yc5D59P8KMdM429ic/whz4y?= =?us-ascii?q?he0MufPaeusFXA2kRlepLHNEHpwTo2WZEWIBSjNkshmWvZqnXbAXRBIcmoMM1t?= =?us-ascii?q?gNeODhzx/El8gmAtaXRHGmrvX9uRPnIb282mbg2Q6A1LF8oDn/KweUMgra29V+?= =?us-ascii?q?1oOpRDmeW3u7QLltlnKz3PRMdEJSHfMqd2MSBKA+XMulcoeBgEvKYxWogueJiO?= =?us-ascii?q?L1kLMECaySP91QHCy1H7d8Sw1KaVJyYb6nBHwKjZ3jhMpgm5v/GZj9b9ULDYap?= =?us-ascii?q?H5QvrSMCsjVjGHSjU+C0Gp+U2ru/AcpvqXPX8fokwIYiKVEAMTpLpgrdvXDmDI?= =?us-ascii?q?guBjYZsKhOyaWyD3VS14m6oyBjpRuUCKXfUDCRHcb2X9j2pEpAyiOvhM8Grqb7?= =?us-ascii?q?KC3aVVQe0WDZVIcvCCXdvYfepRJywpljUEIuq8ecPTr6oh2FLSUWQZC7XI9EGZ?= =?us-ascii?q?TEOOQPycwjXrXZ8Pv4g1oSol4dTQkTVyE6vWPraTvTmu8pS3jCyAo+3RSnEtY1?= =?us-ascii?q?ApgOIFGGSB2xdAKGQYBNwUu0zgWbCAaFhW1HIoiONu3BkMdB51UnJwzn1chOy9?= =?us-ascii?q?FdFBSV4IkGOuR+ULbFJwDDM2+U+H+QjybsIdtsDdQG9e7KcDRpQHIPku9obXJP?= =?us-ascii?q?hY/PF82DNgvTx/qCiWEklckhPA9q3cAaZx7qNN6HN+/PxsWEyLBTTFfTvp0I2j?= =?us-ascii?q?XuBGwCp16VXjzdDVpag5Nr5dvZt4G38MCCd7J5ba5z8XAjK84xe7oxvuRGfWGz?= =?us-ascii?q?ke+jteYHVdew=3D=3D?= X-IPAS-Result: =?us-ascii?q?A2H9AwBDAqNY/wHyM5BeGgEBAQECAQEBAQgBAQEBFAEBAQE?= =?us-ascii?q?BAQEBAQEBBwEBAQEBgyeBao5TkH2RAoZWKIV+A4F3VwEBAQEBAQEBAgECXyiCM?= =?us-ascii?q?xuCIwI3FCALAwMJAhcpCAgDAS0VHwsFGASJSrEfJgKLZ4ZMgg2HCBEBaIIADIM?= =?us-ascii?q?NBZtykhSBe4UXg0SGL0iSTVh4CCAUCCIIPYRFHYF1YQGHcoItAQEB?= Received: from unknown (HELO tarius.tycho.ncsc.mil) ([144.51.242.1]) by emsm-gh1-uea10.nsa.gov with ESMTP; 14 Feb 2017 13:18:17 +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 v1EDIDuC008176; Tue, 14 Feb 2017 08:18:14 -0500 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 v1EDICtV060949 for ; Tue, 14 Feb 2017 08:18:12 -0500 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 v1EDIB69008161 for ; Tue, 14 Feb 2017 08:18:11 -0500 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A1CtAwAlA6NY/6bEY0FeGgEBAQECAQEBAQgBAQEBg1KBap9QkQKCRIQbGoYIgXZXAQIBAQEBAQJihVI/gVGJa7EejA+GTIINiAKCAAyDDQWbcpIUgXuFF4lzSJJNV4EAIBQIIgiFAh2BdSw1AYofAQEB X-IPAS-Result: A1CtAwAlA6NY/6bEY0FeGgEBAQECAQEBAQgBAQEBg1KBap9QkQKCRIQbGoYIgXZXAQIBAQEBAQJihVI/gVGJa7EejA+GTIINiAKCAAyDDQWbcpIUgXuFF4lzSJJNV4EAIBQIIgiFAh2BdSw1AYofAQEB X-IronPort-AV: E=Sophos;i="5.35,161,1484024400"; d="scan'208";a="5943226" Received: from emsm-gh1-uea11.corp.nsa.gov (HELO emsm-gh1-uea11.nsa.gov) ([10.208.41.37]) by goalie.tycho.ncsc.mil with ESMTP; 14 Feb 2017 08:17:39 -0500 IronPort-PHdr: =?us-ascii?q?9a23=3AENwdgRdTHww4r/GHntO+MzhIlGMj4u6mDksu8pMi?= =?us-ascii?q?zoh2WeGdxcq9Zx7h7PlgxGXEQZ/co6odzbGH7ua4ASdavN6oizMrSNR0TRgLiM?= =?us-ascii?q?EbzUQLIfWuLgnFFsPsdDEwB89YVVVorDmROElRH9viNRWJ+iXhpTEdFQ/iOgVr?= =?us-ascii?q?O+/7BpDdj9it1+C15pbffxhEiCCzbL52LBi6txndutUZjYd8Kqs61wfErGZPd+?= =?us-ascii?q?lK321jOEidnwz75se+/Z5j9zpftvc8/MNeUqv0Yro1Q6VAADspL2466svrtQLe?= =?us-ascii?q?TQSU/XsTTn8WkhtTDAfb6hzxQ4r8vTH7tup53ymaINH2QLUpUjms86tnVBnlgz?= =?us-ascii?q?oBOjUk8m/Yl9ZwgbpVrhyhuRJx3o3ab4+aO/ViZa7dYc8WSHBdUspNTSFNHIWx?= =?us-ascii?q?ZJYPAeobOuZYqpHwqV8Uohu7GwasH/7kxDhPhn/sx6060v8hGhzB0QwiGtIOt2?= =?us-ascii?q?7UrM/0NKcJSu21yrPHzTDdYPNXwzv975LIch84rPyKQLl+ctLRxFEuGg7FlFmd?= =?us-ascii?q?rYjoMymI2ukJsmWX9fdsWOOuhmMhtgp/uCKgxt02hYnMno8Vyk7L9SF+wIstI9?= =?us-ascii?q?23Ukt7bsClEJdKsCGaLYR2TtsjQ2Fupik61qULtJ+7cSQQzJkqwwTTZ+GDfoWJ?= =?us-ascii?q?+B7vSeecLDZgiHJgYr2/hhKy8Ua6yu37U8m5yFRKri9CktnWrHAN1gfT59OBSv?= =?us-ascii?q?Rn+0euxzeP2xrU6uFeLkA4jbDbJII5wr4sipoTtlzOHjTol0Xyja+WcFgk++ez?= =?us-ascii?q?5uT7YrTpup+cN4huhgH4KaQhgNazAes/MggQDCCn/rG41bv+7QjiTb5XlPwqg+?= =?us-ascii?q?zct5zHIckzuKG0GUlW35wl5hL5CC2pg/oCmnxSDltAdQnPqo/zIVDVaKT6CPCl?= =?us-ascii?q?mVW3uDFiwv3HeLr7DcOefTD4jL79cOMluAZnww0pwIUH6g=3D=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0H8AwBDAqNY/6bEY0FeGgEBAQECAQEBA?= =?us-ascii?q?QgBAQEBFQEBAQECAQEBAQgBAQEBgyeBap9QkQKCRIQbGoYIgXVXAQEBAQEBAQE?= =?us-ascii?q?CAQJfKIIzGYJeP4FRiWuxH4wPhkyCDYgCggAMgw0Fm3KSFIF7hReJc0iSTViBA?= =?us-ascii?q?CAUCCIIhQIdgXUsNQGKHwEBAQ?= X-IPAS-Result: =?us-ascii?q?A0H8AwBDAqNY/6bEY0FeGgEBAQECAQEBAQgBAQEBFQEBAQE?= =?us-ascii?q?CAQEBAQgBAQEBgyeBap9QkQKCRIQbGoYIgXVXAQEBAQEBAQECAQJfKIIzGYJeP?= =?us-ascii?q?4FRiWuxH4wPhkyCDYgCggAMgw0Fm3KSFIF7hReJc0iSTViBACAUCCIIhQIdgXU?= =?us-ascii?q?sNQGKHwEBAQ?= X-IronPort-AV: E=Sophos;i="5.35,161,1484006400"; d="scan'208";a="3146608" X-IronPort-Outbreak-Status: No, level 0, Unknown - Unknown Received: from namei.org ([65.99.196.166]) by emsm-gh1-uea11.nsa.gov with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 14 Feb 2017 13:17:38 +0000 Received: from localhost (localhost [127.0.0.1]) by namei.org (8.14.4/8.14.4) with ESMTP id v1EDHOBM000370; Tue, 14 Feb 2017 13:17:24 GMT Date: Wed, 15 Feb 2017 00:17:24 +1100 (AEDT) From: James Morris To: linux-security-module@vger.kernel.org Subject: [RFC v2 PATCH 1/2] security: introduce CONFIG_SECURITY_WRITABLE_HOOKS Message-ID: User-Agent: Alpine 2.20 (LRH 67 2015-01-07) MIME-Version: 1.0 X-BeenThere: selinux@tycho.nsa.gov X-Mailman-Version: 2.1.20 Precedence: list List-Id: "Security-Enhanced Linux \(SELinux\) mailing list" List-Post: List-Help: Cc: selinux@tycho.nsa.gov, kernel-hardening@lists.openwall.com Errors-To: selinux-bounces@tycho.nsa.gov Sender: "Selinux" X-Virus-Scanned: ClamAV using ClamSMTP Subsequent patches will add RO hardening to LSM hooks, however, SELinux still needs to be able to perform runtime disablement after init to handle architectures where init-time disablement via boot parameters is not feasible. Introduce a new kernel configuration parameter CONFIG_SECURITY_WRITABLE_HOOKS, and a helper macro __lsm_ro_after_init, to handle this case. Signed-off-by: James Morris Acked-by:  Stephen Smalley --- include/linux/lsm_hooks.h | 7 +++++++ security/Kconfig | 5 +++++ security/selinux/Kconfig | 6 ++++++ 3 files changed, 18 insertions(+), 0 deletions(-) diff --git a/include/linux/lsm_hooks.h b/include/linux/lsm_hooks.h index e29d4c6..c4b149f 100644 --- a/include/linux/lsm_hooks.h +++ b/include/linux/lsm_hooks.h @@ -1908,6 +1908,13 @@ static inline void security_delete_hooks(struct security_hook_list *hooks, } #endif /* CONFIG_SECURITY_SELINUX_DISABLE */ +/* Currently required to handle SELinux runtime hook disable. */ +#ifdef CONFIG_SECURITY_WRITABLE_HOOKS +#define __lsm_ro_after_init +#else +#define __lsm_ro_after_init __ro_after_init +#endif /* CONFIG_SECURITY_WRITABLE_HOOKS */ + extern int __init security_module_enable(const char *module); extern void __init capability_add_hooks(void); #ifdef CONFIG_SECURITY_YAMA diff --git a/security/Kconfig b/security/Kconfig index 118f454..f6f90c4 100644 --- a/security/Kconfig +++ b/security/Kconfig @@ -31,6 +31,11 @@ config SECURITY If you are unsure how to answer this question, answer N. +config SECURITY_WRITABLE_HOOKS + depends on SECURITY + bool + default n + config SECURITYFS bool "Enable the securityfs filesystem" help diff --git a/security/selinux/Kconfig b/security/selinux/Kconfig index ea7e3ef..8af7a69 100644 --- a/security/selinux/Kconfig +++ b/security/selinux/Kconfig @@ -40,6 +40,7 @@ config SECURITY_SELINUX_BOOTPARAM_VALUE config SECURITY_SELINUX_DISABLE bool "NSA SELinux runtime disable" depends on SECURITY_SELINUX + select SECURITY_WRITABLE_HOOKS default n help This option enables writing to a selinuxfs node 'disable', which @@ -50,6 +51,11 @@ config SECURITY_SELINUX_DISABLE portability across platforms where boot parameters are difficult to employ. + NOTE: selecting this option will disable the '__ro_after_init' + kernel hardening feature for security hooks. Please consider + using the selinux=0 boot parameter instead of enabling this + option. + If you are unsure how to answer this question, answer N. config SECURITY_SELINUX_DEVELOP