From patchwork Tue Feb 14 13:24:19 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Morris X-Patchwork-Id: 9571963 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 2F0FA60586 for ; Tue, 14 Feb 2017 13:24:51 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1FB1927C2D for ; Tue, 14 Feb 2017 13:24:51 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 1464D28417; Tue, 14 Feb 2017 13:24:51 +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=unavailable 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 3123F27C2D for ; Tue, 14 Feb 2017 13:24:50 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.35,161,1484006400"; d="scan'208";a="3844177" IronPort-PHdr: =?us-ascii?q?9a23=3A8/+ysB1hnUSVGLHlsmDT+DRfVm0co7zxezQtwd8Z?= =?us-ascii?q?sewULf3xwZ3uMQTl6Ol3ixeRBMOAuq8C07Kd6fCocFdDyK7JiGoFfp1IWk1Nou?= =?us-ascii?q?QttCtkPvS4D1bmJuXhdS0wEZcKflZk+3amLRodQ56mNBXdrXKo8DEdBAj0OxZr?= =?us-ascii?q?KeTpAI7SiNm82/yv95HJbQhFgDqwbaluIBmqogndqMobipZ+J6gszRfEvmFGcP?= =?us-ascii?q?lMy2NyIlKTkRf85sOu85Nm7i9dpfEv+dNeXKvjZ6g3QqBWAzogM2Au+c3krgLD?= =?us-ascii?q?QheV5nsdSWoZjBxFCBXY4R7gX5fxtiz6tvdh2CSfIMb7Q6w4VSik4qx2RhDoki?= =?us-ascii?q?MHPCMn/m/RhMJ7kaZXrAu8qxBjxoLZZpyeOvhjcaPHZd4US2pPUNhMWSJCDIyz?= =?us-ascii?q?YJMPAugcMetWs4bzqEUBrQClCAmwBu7i0CNEimPs0KEk1ekqDAHI3BYnH9ILqH?= =?us-ascii?q?naqM/6NKIMXuCu0aLGyjLDb+lM2Tf884jDbxcsofOJXbJ3a8rR00gvFxjeg1WW?= =?us-ascii?q?s4PlOi2a1uUXv2ic9epgWvuihmg6oA9yujii3togh4bGi44Pyl3I6D91zJg6KN?= =?us-ascii?q?GmUkJ3fMaoHZpQui2AM4Z7RtkuT3xstSs70LEKpJ+2cSkMxZ863RDQceaHfJKN?= =?us-ascii?q?4h/7UeaRJip3i2x9dbKkghay7VCgyurhVsmoyFpKrjRKkt3Ltn0Vyxzc8NKHSv?= =?us-ascii?q?pg/ke6wzqPywDS5f1EIUAzj6bbLYIuwqUsmZYJtETDHyv2lF33jK+QaEok5vCl?= =?us-ascii?q?5/nob7jpvJORN5J4hhvgPqkhhMCzG/k0PhALX2eB+OS80LPj/Vf+QLVPlvA2ib?= =?us-ascii?q?fWsJTbJcQdu664DBZZ3Z0k6xaiCTepzMoXnWIcIVJZeBOIk4jpO1bULPD+Fvew?= =?us-ascii?q?mU6gkDhsx/DYJrHhGInCLmDfkLf9erZw80xcyA01zd9F+5JUCqsOIPToV0/zs9?= =?us-ascii?q?zYCBo5PBavw+b7Ftp9zJgeVXiIAq+DP6PYqUWI6f43I+mQeI8Vvy7wK/on5/H0?= =?us-ascii?q?kXA5mkQdfa6v3ZsWdnC1BfpmI0GEYXvjmdgBDGEKvhYjTODwj12CSzFTbW6oX6?= =?us-ascii?q?0g/jE7FJ6mDYDbS4GjgbyB2CK7EYNMZm1dBFCDD2rnd4KeW/gWcCKSOMhhkj4a?= =?us-ascii?q?Wre9V48tzxautBX1y7B/NOrb5jUYtY7/1Nhy/+DciA099TlzD8Sbz2GBUnp5nn?= =?us-ascii?q?0WSD8s3aB+oEt9ylGZ3ah+nfNYCcRZ5+lVXQciKZ7c0+t6BsjvVQLdZNiJUk2r?= =?us-ascii?q?TcmhATE0Ut0+2cQOY1pnF9WkkB/DwzKgA6UJmLyTGJw07qXc0mDxJsd8zHbG0r?= =?us-ascii?q?Isj1wiQsdWNG2mgLRz9w7JCI7TkEWZlriqeroG0C7L6miD0XKEvFtEXw5oTaXF?= =?us-ascii?q?QXcfa1PIotTh/EzCVb6uCa88PwtZ08GCMKpKasbxjVVCXvjsJMrRb3i2m2eqCh?= =?us-ascii?q?aC3qmMY5bye2UBwCXdD1AJkw4J/XmcMwgxGiaho3nFATxrDVLvYlrg8fJwqXOg?= =?us-ascii?q?VEM0yBuKb0J53bqv5hEVneCcS+8U3r8cuycusTZ0HFGg39/NCNqPvQlhfKJBYd?= =?us-ascii?q?8n51dHz23ZvRRnPpO8N6BimkIecwNvskz0yhp3EIRAntYwrH4x1gV9NaeY3ElG?= =?us-ascii?q?dzOC0pD6IqfXJXXq/BCzd67W3UnT0NaI9acL7PQ4rE7uvAW0Fko+9HVn1sNa32?= =?us-ascii?q?Gb5pXQAwoYSYjxXVov9xhmu7HaZTEw55ja1X12Nqm0qSPC1skyBOsjzRahcdJf?= =?us-ascii?q?P7mCFAPoFc0VGdSuIvQwm1e1dhIEIPxS9KksMsKobfSG3LKrM/h6nDK9lmlH/p?= =?us-ascii?q?5y0liX+CphT+7ExZEFw+uX3gGfTTfzkE+hstzrmYBDfTwSAnewxjXlBIFLYq1/?= =?us-ascii?q?ZpoECWCrI8Kr3Np+nILtV2Re9FG9G1MMwNWpdgaKb1zhwQ1Q0lwaoXqmmSu8yz?= =?us-ascii?q?x7jSopo7GF0yPQ2eTicwALOmlRRGltlV3sO5S7j8gGXEi0aAgkjAWl5UfmyKhH?= =?us-ascii?q?o6R/NXPfTltIfyjxKWFiXbC9tr6DY85J8pwoqyJXXP67YVCARb73uwEa3D/7H2?= =?us-ascii?q?tC2DA7cCmnupH4nxxhlGKRNW1zo2TdecFxwxff+dPdSOVK3joeRSl4jzjXCUSn?= =?us-ascii?q?P9Wz+9WbiYvDuPikV229Tp1TbTXrzYSYuSuh4m1qBRm/kO6pmtL7Fgg73zT218?= =?us-ascii?q?J3VSrUtxbweI7r1761Meh/ZElnGEf869ZmGoF5ioYwnIsf2WUehpmP53ULi3z8?= =?us-ascii?q?MdJf2aLia3oNQyUGw9vJ7Ajj301sMmiFx4TnWXWB2sFhfcW1YnsK2iIh6MBHEK?= =?us-ascii?q?SU46JCnStuuVe4rhzeYf5mnjcb1/Qu9GQWg+YTuAoi1i+dGKwdHVFEPSzwkBSF?= =?us-ascii?q?986+rKNKa2u0b7iw0ldxndC7ALGEvA5cRG7zeo0+Ei9o8sV/LFXM3WXr6o7+Zd?= =?us-ascii?q?nQackeuQGVkxfcj+lZMZwxmeAMhSZ9PmL9p3IlwfYhjRNyxZG6oJSHK2J18aKh?= =?us-ascii?q?GBFYKzn1aN0L+j73i6ZegtiZ35q0E5V8ATUEQoHoTemyHDIJsvTnKhyOHyEipX?= =?us-ascii?q?eVHrrfBwCf51l8o3LJDZ+rK2mdJGMFwtV6WBmdOEtfjRgaXDogmJ45CgeqxMn6?= =?us-ascii?q?fUd3+D8e+1n4qgFWxeJwLRn/VWXfqxm0ZTcoUpSfKwBW7g5a7UfPLcOe9v5zHz?= =?us-ascii?q?1f/pC5qQyCMGibZwBWAmEVRkyLHUrsM6Ko5dbe7+iYHfaxIOHWYbqQs+BeUemH?= =?us-ascii?q?xY632It84zmMLtmPPmVlD/AjwEpPR354F97cmzoVTywXkCLMYtWBqxig/y17tM?= =?us-ascii?q?e/8O7kWAj3/4uAF6NSMclz+xCxmaqDOfSQizhkJjZDzJwMw2PIyL8E3FMJkS5h?= =?us-ascii?q?azytHa4HtS7XQ6LagrVXAAIDayNvKMtI6Lox3g9XOcHBktP1zqV1jvA0C1dfTl?= =?us-ascii?q?zhhs+pZc0MI26nMlPIGEeLO66CJTHRxMH3e6y8Q6VKjOpIrx2wpSqbE0j7MzSb?= =?us-ascii?q?iTbmTA6gMedNjCGHOxxTo4C9fQhzBmf9Vt7mbQe7MNBvhz0s3bI0nm/KNXIbMT?= =?us-ascii?q?VkbkxNtaOf4jlXgvVlAWNB8GFoLfKelCaa8unYMIwZveFvAiRpkeJV+m46x6JJ?= =?us-ascii?q?7CFDR/x0mCzSosRoo164jumF0iBnXwZWqjZXmIKLul1vOb7D+ZleQ3nE8wwC7X?= =?us-ascii?q?6LBhQRvdRlFMfgu69OxdjUjq7zLilN887M98sGG8fUMN6HMGYmMRfxAzHUDQQF?= =?us-ascii?q?TTmtNWzEmkNSjuqd9nyPoZg8sJTsn4AOSrBDXlwvCvwaElhlHMAFIJpvRDwknq?= =?us-ascii?q?SUjNAW6nelqxnRXNtVvpbCVv2IAPXvLC2Wjb5LZhcSxrP4N4sTPJXh20N+cll6?= =?us-ascii?q?gJjKG03IUNBRpS1haxU4oF9K8Hl/UGIz3Vnqahmq4HANFv65hQI5igx7Yesx7j?= =?us-ascii?q?js+Es3KkDMpCQujEk7gc/ljiyJcD7tMKewWplbCyn0tkg1LJz2WAN1bQq8nUxq?= =?us-ascii?q?KjjEW65Rj7tndWBulgDQo51PFuBATadceh8f2emXZ+k00VRbsiinw1FI6vHBCZ?= =?us-ascii?q?Z5lwsqdoWsr25a1AJld941Jq3QKLBPzldOmqKEpjWo2fwpwA8CO0YN93ufeDQW?= =?us-ascii?q?t0wTKLYpPTCo8fBs6QGZgDRDeXIMWOctovJk7kM9IfqPziL6375FNE+xK/SVL7?= =?us-ascii?q?mFtGjYic6IXlQw21sVmElC+7h219osfFSQV0Au17aeDQoGNdDFKQ1PaMpS7nfT?= =?us-ascii?q?dz6UserR2ZJ1I5m9FufwQOCTrqkUnEOkExsyH4kX9MsBBIOs0EbWLMf8MrEK1Q?= =?us-ascii?q?gt5B7qJFWZDPVFYhSLnykbo8un1p94wZFdJi0BAWV6KSi34rHXphU0j/qFXdY2?= =?us-ascii?q?ZWwXXoQCNnIrQsG6nDRZv3tYBjmtzu0Z0BSC7yP7pinIFznzcd5jZPaSZRNxB9?= =?us-ascii?q?C74ikw86+ziVHL6JrePH36Oc5kutDR9eMQv4yHBO9MTblhr0fcnJFVR3+wU2/P?= =?us-ascii?q?C9G1IYTwa4k3YNz7DXa6SkCwhygzT8jvINanNrKIjh3wRYZIrImb2yguNdO8Fj?= =?us-ascii?q?EbHBdwu+ED5aJnaAIeYpo6YQTnuB8kO6y5PgiYzs2kQ3yxJjtOU/lf0eK6aqRN?= =?us-ascii?q?wCoob++11GUvQYk/z+i3904NQ5cKgQvFyPm4ZolRSy7zFmVTewXSvyY5kXZuNv?= =?us-ascii?q?oqyOcl3BzIqUUcMyyMdOFxc2NLodc8CEiILnprFGo3WUWcjZHZ7Q6237Ee5Sxd?= =?us-ascii?q?n8xb0eddqnjxooffYC6wWKyssZjVvDcgbdkio611L4PjJ9CLu47AkTPETZnfqA?= =?us-ascii?q?uFXDS9F/pAldhaODhYT+VQmWE5JcwGvpJM6VA3Vsc/O7NPCK4sprSxaTR8FCAc?= =?us-ascii?q?0DUXWp+H0jEZnui83L7amQuKf5Q5LBwIqpNCjcUBUyRueCMRuLejV5nKl2+DUm?= =?us-ascii?q?ULOhoc4hlX6QIPk49xcfrp4IzWQ59Q0zRWue57UjPXFpl08Fv2UnuWjkLiSPWm?= =?us-ascii?q?iOOkxh5SzOj23dkFRhF/DUldx+BZlkssKbF3JKkQvpLEsjCSb0P6uXjhyO24K1?= =?us-ascii?q?lN0cfUbUH3DJLZtWrgVS0R4XMVSZVTx3HfFJQSlgt5Z7wopFhXIYCpZFjx6CI+?= =?us-ascii?q?y4RuBbm4Wtihx0w5onYeWyeqD91BBvl8v1LNRT1lZYqnqJb+NpVTQ29Q+YGdpE?= =?us-ascii?q?xDnEVrLSG51YJWK9tR7T4UQDhPvTKdscOzSM1Fxc95EZsMLcl6u3jjBKNEIpiQ?= =?us-ascii?q?rmYxurz31HDZ/TU8v027xDW3AKC4SO1Y83cZGgUzKGSUslMvAPc08mfO7lDNtU?= =?us-ascii?q?h5/+hBBreVi0VxvC1wHpFJBjdH03ClM1RzQ2dHs+VcNKTabdZcT+M0ZRCxJxw0?= =?us-ascii?q?DeQm0FCR/UFogXf5ZDR/thdd+yDYRAQ0STUZgrL2ljEErMGoJyMaQYpSbTo9dy?= =?us-ascii?q?fFNx6bmSdPsRZfcU5qQYoWAtJY9LwAwIRb4NLCSV6yJiEBQhNiLBg00f1FlU5M?= =?us-ascii?q?qE+YYzzSDRK0dfbTtR16ZcWRrMm3I/ni4QhIlJjnv/4i96UfWXKphBehQdbAoI?= =?us-ascii?q?/grteKrFeBdL/kM+2gZn/MVCPDjR6sirs4DZTG4ibePRFHJJl9zHorfYLuCXXX?= =?us-ascii?q?PRhcIaIUOVZbX7hgadpauuBae9NkeKER9K93GB2IWxPvF5azrPRdKlbTQireID?= =?us-ascii?q?uf/uOjpoLc8KLSRfLmZsOS23bNW7h3MYti6TnnB7fq1pdT+lLt2vdx7Ex1VETG?= =?us-ascii?q?PjuarNTmOwML/tWteVXkvp01BzPZGpNwnGDqxkFaeModWzeq/4gAyJNF9HbwTv?= =?us-ascii?q?p10lTpsOJM6bZr9JI6461tyceoP6fdM+pasU5gAhiQGApq6o8hAG9lR2BeeuUR?= =?us-ascii?q?MuvefbwFjcDyrOD6D7EY6BuP9OFCdNTHIVvOltO4CjGGRhxOhB0BpiICLguAy/?= =?us-ascii?q?6FnLd5ScS/qujj3UIt+Fy+IQQYzL124IeE566IpPPWbxTNzLgLQK7qRtjporQr?= =?us-ascii?q?oUOS6uUulKQSdWxtfw2nDO8dW9Yfxmj6y6AqwzgsE8TeEL3+4/NDS2g2njT7m5?= =?us-ascii?q?B6BVkWHO0bHaaT94REgmg4g/DZNsERcq1anGaPEQWpEr4EyX6u8SeXIW9lgh/U?= =?us-ascii?q?0x7qWmOz8EX2rTJkTivQ0tfjiFRaWqOwBUdIUCqjIVV4vy+XPAr0qNr3vrw47E?= =?us-ascii?q?c3MmP4s9KNkHGuOKhNE83+I9ycJjI0pEkMgZ00SdGu1poXGd2nINce6Ht+dOfR?= =?us-ascii?q?63u3ky9dpKdKn5bR7duR+vrJBnmgk62bq7KWyTBD1nc4vE8w6ta8NvHP/dKGWf?= =?us-ascii?q?Ko2HgNTy1noQvOQwa1qqDHr1ATIUGL1FzLmIkKM9xC03k3yFzp5O85QN0p7AVe?= =?us-ascii?q?DIHAZ/Ecqj/vJDv421GfY8g4ViOGyTtYAkr1EUVkGKg7wG/wvsPJlXLL9l0tWI?= =?us-ascii?q?Zxd1LohQZ2D4U+JkIh8l4XzTQfEQIVcxCUEKmoBVj5LYsDTUUDaBWG06Kgdagr?= =?us-ascii?q?xkBz2a2g5PPNYuNgHaYNMexdjgGWllhBBp0WqbEeQK57e1JF76HXpxPiCob9UP?= =?us-ascii?q?jklHowKeW1TdpH8cAdrHYt/gG/SAe+5phZ8rYbkpeIdrRebpTWu8B89Uhn7yYV?= =?us-ascii?q?diNRmBh/kw+5UecEqeD7+NfbrIan6uagVaYqXeUX9AE4B39ggJv0gVAjp8zX1u?= =?us-ascii?q?hHR43Nk4v/7BxCI36EuYbdyRl8KvACK4G1c7Z68XUIOSweK2gJPdqMZPk2+zVt?= =?us-ascii?q?PynL51xeHsMMYssVPNbXmQ9Kjk3mQrdT+dTAF1CFCodzeMEo73btxzAu65Q8SP?= =?us-ascii?q?vg5CWwJZ/B81FHJ+lDgzl0lNLeuOgVxuLfCCcN7nmDdRd13iOCxoKJC/bx4eWD?= =?us-ascii?q?1tHUWEkbHi4tSYtdIiSN+RC/TOqviJrpSh+U6tP0gJ8me0KfWHqxnLgCsqZLFu?= =?us-ascii?q?JAkTv03jxfFoDzmvKUvMGh6G9JuV1dEId89wfJGKNBMZVnIR74jNWkRlBgBivj?= =?us-ascii?q?f8HZbgYhuOiMyegQ+OhxK0z+ZYsfIhIF1b3682ZVQRVyR772pFqZWvgRZNR+Qv?= =?us-ascii?q?Pesn9V8Z5gK7MIPFWFoZzqqTFIqEw5AAA3c7Iwqz1aeVPInAJLR6b1trkAihEf?= =?us-ascii?q?Ud5io0NMH3y/OH4m7TrdSatVlLWRCOAS8jiLQawBT15oMjhnTx2o15tgfbqpnf?= =?us-ascii?q?ZasmJJhS59r/0q3CZgRBSioyHsoLgN2T048rGiqDoBoWBFTvmZkyrQC1VDy/QK?= =?us-ascii?q?jaEGB3n+6Vy8ZGQDY5bz4blmI8Tg7ooh43UkbBU9fi0GQ/6vCyXtgKOJGICPts?= =?us-ascii?q?xThAKVssXUcbCzNTQSNqg6yR/7Rnh9zBLRnBBz/WsPXzWv8d4kJIKmOco/wSqo?= =?us-ascii?q?A2fbfk4W4qxVqMvxqUILTOwuZFNj3mpj3MaHRikWSc3BAWk1iBYraXlefJJF9x?= =?us-ascii?q?AaC7EigiyUsale4gEUfDDUH5yq+onUmsfJ12cyTdNuxm/Nva2FgZUq0Hx5lN9u?= =?us-ascii?q?6C6BpmgSffTCU8BwGnjzyptfyevmavWvsuAGSJNmyLOlUP8DLsms53C72JBrWk?= =?us-ascii?q?+53LQRAUC1MOgZxrfUSy2lU3GXWfyXc2iQmDY0KlLy5RitLlAsdMdKrlMyMujc?= =?us-ascii?q?iZ5YjQHhV617RjmIr1/B0GMjKf8adx4xuIq/fgwKTe0RZ+ubJeU1wv0xElgMb3?= =?us-ascii?q?jPHSRoDe+6q1itk5ZnO394+0X1ffzt8hz6MNuVAhQLCpDVrpht+fGhXWKBPXhg?= =?us-ascii?q?zAFuPElq6ejQCk49tuhGc5aehdLQnch00fYZd/dxNi0wosYTmoVn6YaOyseLfx?= =?us-ascii?q?bRzpL8JdzOp/iYBPrfz180dW5GSLoZZhj15547Pt4/VL3fB7xZvQ4TBaIiWpwu?= =?us-ascii?q?K3/x9L1oLAN0agPRaqq7gs3rpuKTeJRZvH7X7lM1LCfZpRID0Pi0QhJhY5CtnX?= =?us-ascii?q?XyL4g6RihdoN11FhtmAIxPFtsOrgq/GZ6Umb20hMGq9kN/uu8KrbDwBe7Q2NS+?= =?us-ascii?q?xYVxUIBQ5VaXMzbJGKlrnkNlg/y1gvfEzJb8EtviedceW+hgXm7Fa6PJHpmlKj?= =?us-ascii?q?2QJM3wYUhG/KCA0LhhSBWeeDj5X7aatC2jLPhk5UQ7yoplfOvc1TAt67Db2MDu?= =?us-ascii?q?Z2FAvSqjrGSGNJ1Y7FDQAuzeRR1UQ+Kf8Gl5Ba0XcZf09OAWPNw53tec5whz7D?= =?us-ascii?q?Jf0MqKJKSvoVPM2kJlepLBMkTpwzw2VJIJIBuhK0ssh3HWqnDGDnRBIcioM85t?= =?us-ascii?q?gMyaDhb1/Ul+hXktZnJdGmrvXdqRPHIU1N6+ZA2L8gJLCM0On/C2eU4+qKKyTe?= =?us-ascii?q?hoOpNYmeSlrrkHlsxpKy7XTshAIy7QNKN2PiZWDujXplgneB0Es78uVYoueJiO?= =?us-ascii?q?Jl8HMEeHySPvwgvC0VH0e8aq1KmXPCYc6m9HwK7d0ThQuwm5vu6Ujdb4X7zeaJ?= =?us-ascii?q?H2XeXSMDY+Vj2AXjQ9D1qm9U2/u/UauPqYIGEfok0bYy+JFAESprpvrcXLDmPJ?= =?us-ascii?q?l+xsZoEKhOudWyD2UiF4k7AyBilTv0CWX/UDDRXWb2PmgGdEtwytPORD/Wjkb7?= =?us-ascii?q?KGwqpYQPIWAo9Wff2CQtvYZOpSJzE2mTUFIOy8ZcHTr64l0lLUSmsUC6vI9FiZ?= =?us-ascii?q?TE6MWPycxinrUJ4Tv4cuvyon5NPQkjVwE6TSMLaVvySu/ZKgjCaEpe3eUXEgY1?= =?us-ascii?q?c7gOIHHGaMwRpNJXoaC94LokHtQ6+BZ0FK1H4zj+JhxQMMchxpUnJyyn1WgOq9?= =?us-ascii?q?GspBRF4Wi2OuRvkGYUtyDDwu4ECK7AryYcYcts/NXWNe8KUDSZZOZMUvvY3WPr?= =?us-ascii?q?YAhe0k1y98oTAr9iCaA05Zgyqb/KfKWqFx3LtP4S8/5f4lcFuIRmb9e23K0cKD?= =?us-ascii?q?DNhVxDwm9XLh0NDOv/tFMrJfqoA/B00FV3ElbuvB9CxMBDmnkDC5uAy2SXHHeD?= =?us-ascii?q?8=3D?= X-IPAS-Result: =?us-ascii?q?A2H9AwDFBKNY/wHyM5BeGgEBAQECAQEBAQgBAQEBFQEBAQE?= =?us-ascii?q?CAQEBAQgBAQEBgyeBao5TkH2XWiaFfgOBeFcBAQEBAQEBAQIBAl8ogjMbgiMCN?= =?us-ascii?q?xQgCwMDCQIXKQgIAwEtFR8LBRgEiUqxJiYCi2eGTIINhwgRAYYBBZtykhSKVoY?= =?us-ascii?q?vSJJNWHgIIBQIIgg9hEUdgXVhAYdygi0BAQE?= Received: from unknown (HELO tarius.tycho.ncsc.mil) ([144.51.242.1]) by emsm-gh1-uea10.nsa.gov with ESMTP; 14 Feb 2017 13:24:48 +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 v1EDOZR4010113; Tue, 14 Feb 2017 08:24:36 -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 v1EDOXcD060974 for ; Tue, 14 Feb 2017 08:24:33 -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 v1EDOXbf010111 for ; Tue, 14 Feb 2017 08:24:33 -0500 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A1BMBABUBKNY/6bEY0FeGwEBAQMBAQEJAQEBg1KBap9Qk0aEGxqGCIF2VwECAQEBAQECYoVSP4FRiWuxIowPhkyCDY0bBZtykhSRBUiSTVeBACAUCCIIhQIdgXUsNQGKHwEBAQ X-IPAS-Result: A1BMBABUBKNY/6bEY0FeGwEBAQMBAQEJAQEBg1KBap9Qk0aEGxqGCIF2VwECAQEBAQECYoVSP4FRiWuxIowPhkyCDY0bBZtykhSRBUiSTVeBACAUCCIIhQIdgXUsNQGKHwEBAQ X-IronPort-AV: E=Sophos;i="5.35,161,1484024400"; d="scan'208";a="5943248" 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:24:33 -0500 IronPort-PHdr: =?us-ascii?q?9a23=3AmyvpRxcQ3Yzx2koSBavd6ZtolGMj4u6mDksu8pMi?= =?us-ascii?q?zoh2WeGdxcq9Zx7h7PlgxGXEQZ/co6odzbGH7ua4ASdasd6oizMrSNR0TRgLiM?= =?us-ascii?q?EbzUQLIfWuLgnFFsPsdDEwB89YVVVorDmROElRH9viNRWJ+iXhpTEdFQ/iOgVr?= =?us-ascii?q?O+/7BpDdj9it1+C15pbffxhEiCCzbL52LBi6txndutUZjYd8Kas61wfErGZPd+?= =?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?A0GqBACZBKNY/6bEY0FeGwEBAQMBAQEJA?= =?us-ascii?q?QEBFgEBAQMBAQEJAQEBgyeBap9Qk0aEGxqGCIF2VwEBAQEBAQEBAgECXyiCMxm?= =?us-ascii?q?CXj+BUYlrsSWMD4ZMgg2NGwWbcpIUkQVIkk1YgQAgFAgiCIUCHYF1LDUBih8BA?= =?us-ascii?q?QE?= X-IPAS-Result: =?us-ascii?q?A0GqBACZBKNY/6bEY0FeGwEBAQMBAQEJAQEBFgEBAQMBAQE?= =?us-ascii?q?JAQEBgyeBap9Qk0aEGxqGCIF2VwEBAQEBAQEBAgECXyiCMxmCXj+BUYlrsSWMD?= =?us-ascii?q?4ZMgg2NGwWbcpIUkQVIkk1YgQAgFAgiCIUCHYF1LDUBih8BAQE?= X-IronPort-AV: E=Sophos;i="5.35,161,1484006400"; d="scan'208";a="3146908" 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:24:32 +0000 Received: from localhost (localhost [127.0.0.1]) by namei.org (8.14.4/8.14.4) with ESMTP id v1EDOJdi000905; Tue, 14 Feb 2017 13:24:19 GMT Date: Wed, 15 Feb 2017 00:24:19 +1100 (AEDT) From: James Morris To: linux-security-module@vger.kernel.org Subject: [RFC v2 PATCH 2/2] security: mark LSM hooks as __ro_after_init 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 Mark LSM hooks as __ro_after_init (via the __lsm_ro_after_init macro). Signed-off-by: James Morris --- security/apparmor/lsm.c | 2 +- security/commoncap.c | 2 +- security/loadpin/loadpin.c | 2 +- security/security.c | 2 +- security/selinux/hooks.c | 2 +- security/smack/smack_lsm.c | 2 +- security/tomoyo/tomoyo.c | 2 +- security/yama/yama_lsm.c | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/security/apparmor/lsm.c b/security/apparmor/lsm.c index 709eacd..e287b69 100644 --- a/security/apparmor/lsm.c +++ b/security/apparmor/lsm.c @@ -587,7 +587,7 @@ static int apparmor_task_setrlimit(struct task_struct *task, return error; } -static struct security_hook_list apparmor_hooks[] = { +static struct security_hook_list apparmor_hooks[] __lsm_ro_after_init = { LSM_HOOK_INIT(ptrace_access_check, apparmor_ptrace_access_check), LSM_HOOK_INIT(ptrace_traceme, apparmor_ptrace_traceme), LSM_HOOK_INIT(capget, apparmor_capget), diff --git a/security/commoncap.c b/security/commoncap.c index 6d4d586..a9db18c 100644 --- a/security/commoncap.c +++ b/security/commoncap.c @@ -1070,7 +1070,7 @@ int cap_mmap_file(struct file *file, unsigned long reqprot, #ifdef CONFIG_SECURITY -struct security_hook_list capability_hooks[] = { +struct security_hook_list capability_hooks[] __lsm_ro_after_init = { LSM_HOOK_INIT(capable, cap_capable), LSM_HOOK_INIT(settime, cap_settime), LSM_HOOK_INIT(ptrace_access_check, cap_ptrace_access_check), diff --git a/security/loadpin/loadpin.c b/security/loadpin/loadpin.c index 1d82eae..dbe6efd 100644 --- a/security/loadpin/loadpin.c +++ b/security/loadpin/loadpin.c @@ -174,7 +174,7 @@ static int loadpin_read_file(struct file *file, enum kernel_read_file_id id) return 0; } -static struct security_hook_list loadpin_hooks[] = { +static struct security_hook_list loadpin_hooks[] __lsm_ro_after_init = { LSM_HOOK_INIT(sb_free_security, loadpin_sb_free_security), LSM_HOOK_INIT(kernel_read_file, loadpin_read_file), }; diff --git a/security/security.c b/security/security.c index d0e07f2..75ed309 100644 --- a/security/security.c +++ b/security/security.c @@ -1622,7 +1622,7 @@ int security_audit_rule_match(u32 secid, u32 field, u32 op, void *lsmrule, } #endif /* CONFIG_AUDIT */ -struct security_hook_heads security_hook_heads = { +struct security_hook_heads security_hook_heads __lsm_ro_after_init = { .binder_set_context_mgr = LIST_HEAD_INIT(security_hook_heads.binder_set_context_mgr), .binder_transaction = diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c index 9bc12bc..b1a9916 100644 --- a/security/selinux/hooks.c +++ b/security/selinux/hooks.c @@ -6104,7 +6104,7 @@ static int selinux_key_getsecurity(struct key *key, char **_buffer) #endif -static struct security_hook_list selinux_hooks[] = { +static struct security_hook_list selinux_hooks[] __lsm_ro_after_init = { LSM_HOOK_INIT(binder_set_context_mgr, selinux_binder_set_context_mgr), LSM_HOOK_INIT(binder_transaction, selinux_binder_transaction), LSM_HOOK_INIT(binder_transfer_binder, selinux_binder_transfer_binder), diff --git a/security/smack/smack_lsm.c b/security/smack/smack_lsm.c index 60b4217..71e24d8 100644 --- a/security/smack/smack_lsm.c +++ b/security/smack/smack_lsm.c @@ -4633,7 +4633,7 @@ static int smack_inode_getsecctx(struct inode *inode, void **ctx, u32 *ctxlen) return 0; } -static struct security_hook_list smack_hooks[] = { +static struct security_hook_list smack_hooks[] __lsm_ro_after_init = { LSM_HOOK_INIT(ptrace_access_check, smack_ptrace_access_check), LSM_HOOK_INIT(ptrace_traceme, smack_ptrace_traceme), LSM_HOOK_INIT(syslog, smack_syslog), diff --git a/security/tomoyo/tomoyo.c b/security/tomoyo/tomoyo.c index edc52d6..b5fb930 100644 --- a/security/tomoyo/tomoyo.c +++ b/security/tomoyo/tomoyo.c @@ -496,7 +496,7 @@ static int tomoyo_socket_sendmsg(struct socket *sock, struct msghdr *msg, * tomoyo_security_ops is a "struct security_operations" which is used for * registering TOMOYO. */ -static struct security_hook_list tomoyo_hooks[] = { +static struct security_hook_list tomoyo_hooks[] __lsm_ro_after_init = { LSM_HOOK_INIT(cred_alloc_blank, tomoyo_cred_alloc_blank), LSM_HOOK_INIT(cred_prepare, tomoyo_cred_prepare), LSM_HOOK_INIT(cred_transfer, tomoyo_cred_transfer), diff --git a/security/yama/yama_lsm.c b/security/yama/yama_lsm.c index 88271a3..8298e09 100644 --- a/security/yama/yama_lsm.c +++ b/security/yama/yama_lsm.c @@ -428,7 +428,7 @@ int yama_ptrace_traceme(struct task_struct *parent) return rc; } -static struct security_hook_list yama_hooks[] = { +static struct security_hook_list yama_hooks[] __lsm_ro_after_init = { LSM_HOOK_INIT(ptrace_access_check, yama_ptrace_access_check), LSM_HOOK_INIT(ptrace_traceme, yama_ptrace_traceme), LSM_HOOK_INIT(task_prctl, yama_task_prctl),