From patchwork Wed May 17 18:54:33 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Jurgens X-Patchwork-Id: 9731801 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 C4D786022E for ; Wed, 17 May 2017 18:56:22 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A4477286E5 for ; Wed, 17 May 2017 18:56:22 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 97F7A287DC; Wed, 17 May 2017 18:56:22 +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=-4.2 required=2.0 tests=BAYES_00, RCVD_IN_DNSWL_MED, UNPARSEABLE_RELAY autolearn=ham version=3.3.1 Received: from emsm-gh1-uea11.nsa.gov (smtp.nsa.gov [8.44.101.9]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 88D8D286E5 for ; Wed, 17 May 2017 18:56:21 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.38,355,1491264000"; d="scan'208";a="5876312" IronPort-PHdr: =?us-ascii?q?9a23=3Apf92rBaiVjAAfzFZnG+D/Vr/LSx+4OfEezUN459i?= =?us-ascii?q?sYplN5qZoc24bB7h7PlgxGXEQZ/co6odzbGH7Oa5BidZus7JmUtBWaQEbwUCh8?= =?us-ascii?q?QSkl5oK+++Imq/EsTXaTcnFt9JTl5v8iLzG0FUHMHjew+a+SXqvnYdFRrlKAV6?= =?us-ascii?q?OPn+FJLMgMSrzeCy/IDYbxlViDanb75/KBe7oR/MusQUjoduN6g8xgfUqXZUZu?= =?us-ascii?q?pawn9lK0iOlBjm/Mew+5Bj8yVUu/0/8sNLTLv3caclQ7FGFToqK2866tHluhnF?= =?us-ascii?q?VguP+2ATUn4KnRpSAgjK9w/1U5HsuSbnrOV92S2aPcrrTbAoXDmp8qlmRAP0hC?= =?us-ascii?q?oBKjU2/nvXishth6xFphyvqQF0z4rNbI2IKPZye6XQds4YS2VcRMZcTyxPDJ2h?= =?us-ascii?q?YYUBDOQPOuRXr4flp1YMsBezCxejBPj0xzNUmnP7x7E23v49HQ3a2gErAtIAsG?= =?us-ascii?q?7TrNXwLKocX/q6zK/VxjvHcvNWwzj955bOchA6vPqBWq9/ftDXyUkuCQzFileQ?= =?us-ascii?q?pJfgPzyL0uQNt3KU7+xnVeOgkWIotwZxoj22y8oql4LHhZoVx0jZ+Sh2z4s5P9?= =?us-ascii?q?21RFNhbdK6H5ZcqTuWO5ZuTs8/R2xltjw2x7IEtJKhYSQHyZQqywTCZ/CZd4WF?= =?us-ascii?q?5A/oWvyLLjdinn1lfaqyhxO18Ue91OLxTtK00FNWripdldnMq2wN2wTT6seZTv?= =?us-ascii?q?t9+V+s2SqV2ADJ6+FEPFs0mbDHK58h3rEwlp0TvV7FHiDqg0X5kLWadkAl+uis?= =?us-ascii?q?8+jnY7PmqYGAN4Jslw3zPasjlta/DOglKAQCQWeW9fqm2LH+5UH5Ra9Fjvwykq?= =?us-ascii?q?nXqpDaIsEbq7aiAwBL1oYj6hC/Dyqp0dgBhnYHK09FeBSbgIf3IFHDO+z4DPej?= =?us-ascii?q?jFSslzdn3fbGPqb7DZnXIXjDl6nhca5n60FA0Aoz0cxf55VMB7EDJ/LzXFX+tM?= =?us-ascii?q?DYDhAjNQy52OTnCNJ71oMbQ22PGbOZP73IsV+T/O4vJPOMZIANsjbnN/cl/+Lu?= =?us-ascii?q?jWM+mVIFf6mp34EYZ2y7HvR9JEWZZ3vsgskaHGcEugo+UePrh0afUT5Ve3ayQr?= =?us-ascii?q?gw5jYhCIKpFY3DXJyigKSd3CenGZ1bfnhGBU6XHnj2cYWEWusMaCWJL89gjDML?= =?us-ascii?q?S6auR5Um1RG0uw/w06BnIfbM+i0EqZLj08B46PDUlRE08zx7EtqS02WMT2xvhG?= =?us-ascii?q?wHWSU23KdlrUx60FeD3rByg+ZEGtxL+/NJTgA6OIbBwOxmEd/yQBnMccuOSFaj?= =?us-ascii?q?XtqpGyoxTs4rz98IfUl9B82ojgrf0CqyH78Vi7uLCYQ18qLaw3j+OcJ9xGjD1K?= =?us-ascii?q?Y/k1kmWMtOOHahhq5n6QfTAYvJnF+Yl6aubqsc2yHM+H2EzWqUs0FSSBRwXrnd?= =?us-ascii?q?XXADekvWqsz050PDTr+pD7QqKQ5BycqbJqtLbN3ll1NGS+35ONTdYmKxhXm/CQ?= =?us-ascii?q?yOxryScIrgY38d0znFCEgYjwAT+m6LOhMlCSump2LeDSduFU70Y0/26ulxtm+0?= =?us-ascii?q?QlUvzw6Ua01h1ry1+gMahPGHV/wS3qgEuDo6qzluEleyxc7WC8GHpwpnZqlcZs?= =?us-ascii?q?k94Fhf32LDqwN9JoCgL7xlhlMGbQt3p1nh1w92CoVbisUqtGklzBBzKaKDyFNB?= =?us-ascii?q?cymX0ozuNbHNLWny5h+vYbbM2l7CyNaW5rsP6PMgplTtvQGpEk8i/Gt909RO3X?= =?us-ascii?q?uT+IjFDA0IUZ3rSkY37R96p7PEbSYh+4PYz3psMbO7sjXawdImGPMlygq8f9dY?= =?us-ascii?q?KK6EGhXyHNccB8eyKewqgEOkbhccPOBT7aI0JM2nd+Cc1K6sJuZgkyqsjX5b74?= =?us-ascii?q?BlzkKM6y18R/bL35kfwPGY2RaHWiz/jFi7scD3np1EaSsVHmqlxijuHJRRabFq?= =?us-ascii?q?fYYXFWeuJNW6yc9jiJ73Wn5X6kSjCkgc18C1fBqedVv93Rdf1U4Pu3yohTO4zy?= =?us-ascii?q?BokzEutqeQwDbBw+D8exocJm5KRG5igEz3IYeojtAVQk6obxQolBS//0r6wbZU?= =?us-ascii?q?pLhnJWnJXUhIZzT2L31lUqaorbqCbdRP6JQzsSVLS+m8elaaSrnzohsfySzjGX?= =?us-ascii?q?FSxDYleDG2op/5hQB1iHqBLHZvq3rUYc9xyg3b5NzAW/FRxCEGSTJmiTbJHFiz?= =?us-ascii?q?JMSp/dCOm5fEqOC+WHqrVodPfinz0YOAqCy76HV2ARKigv+zm8foEQwh3CDn0N?= =?us-ascii?q?lqUDnHowznYon3zai6N/xoflVwDl/m98V6Ap1+kpc3hJwIx3gah4ma/WYAkWfp?= =?us-ascii?q?K9lUxaL+bH0LRT4E2NPV5Anl2Et5IXKTwIL1THKdwtFuZ9OieGMZxjo979xWCK?= =?us-ascii?q?eT9LFEmSp1okGkrQ7IevhygDMdyfoo6H4HjOAEoxEtzj2cArAUHElXITfsmw6O?= =?us-ascii?q?79+gsKVdfHyvfqSo1EpigdChC6mPohtbWHb9fpctAzVw4dl4MFPCy3Dz8Zzkd8?= =?us-ascii?q?XLbd4JsR2UiRjAhfBPKJ0tjvoKmTZnOWXlsH090eE7kBhu0Yugs4SdMGpt+6a5?= =?us-ascii?q?AgJfNj3zfM4T/y3hjaBZnsmKxYyvGItuGikTVpvyUf2oCC4StejgNwuWEz0ztH?= =?us-ascii?q?GbGaHEEA+c9khmqWnPE5a1OHGLPnUZys9iRBaFLkxFnA8URCk6noI+Fg2y3Mzu?= =?us-ascii?q?alp55jQP6V7gsBRMzP5oOAflUmrEuQeocSk7SIKELBZM9QFC4FrVMdaC4e1tES?= =?us-ascii?q?FY+YehrAOTJWCBYQRHE30JUFSeB1//Jrmu+cXA8++AC+qgKfvBfK6DqfJYV/iV?= =?us-ascii?q?xZKjyI1m8CiQNs+XJHltE+U72lZfXXB+A8nZgy8ASzETly/Wc8GbpQu8+y1uos?= =?us-ascii?q?Cx6vvrXhjj5YyVC7tdKd9v4Qy5gb+fN+6MgyZ0MTVY15MIxXDW07Uf2VkSiy9g?= =?us-ascii?q?dzazDbQAqS7NTKXVmqBJFRIbbT18NNdQ5aImwgZNIdLbis/y1rNggP46EVFFVU?= =?us-ascii?q?DmmsGsfsEKLX+yO07ABEaRLruGPSfLw8b1YayiVbJQkP9YtxqquTaUC0XjJCiM?= =?us-ascii?q?lyH1VxCzNuFBlDubMAZQuY2ndxZiE2zjTNXmaxCgKtB4kTg2zaczhnPQOm4WKS?= =?us-ascii?q?J8fF9Vrr2M8SNYhe1yG2Jb7nV7MOaEgDyW7+/EKpYRqvtmGT57mP5f4HggzLtV?= =?us-ascii?q?9i5ETuRvmCTOtt5uv02mku6XxzphShpBsC5LhJqQsEVsOKXZ7IJAWWrK/BIM62?= =?us-ascii?q?WfERIKqMdkCtL1v6Bc0N/PlLj8KD1a6dLb4dMcB9TIKMKAKHcuLAHpFyDOAwsK?= =?us-ascii?q?Vz6kL3/fildGkP6I9X2Vs4I6pYL2lJoKV79bUkY6FukDBkR5G9wCI5d2XjQ+nb?= =?us-ascii?q?6dksEI+WK0rAPNS8VCopDHSvWSDO3pKDaYiblEYwUHwajjIIsJKIL7wUtiZkN9?= =?us-ascii?q?nITQFEraRcpNrTF5bg8ovEVN92BzQXYy20LqbQOt5mQeGuOqkREtiwtxe+It+C?= =?us-ascii?q?3r41ctKVrAvDEwn1UpmdX5nTCRdyb8I72/XY5MFSr7qVM8MpTjQwlraw2ymFZr?= =?us-ascii?q?NDbAR71KiLthenpniAjGuZtAAfRcV7FLYAcMxfGLYPUlyUhcqiKixUNd/+vFDp?= =?us-ascii?q?pjmxUscZG3tXJA3BxsbN0uKKPMI6pJy0RfibiVvi+0zOwxxhERJ1oV+mOIZCEI?= =?us-ascii?q?oFAINqUhJyew+Oxj9xaNmz9YdWgPUPoque5q+Vk7O+SbzCLg0qRPKkavOOyDN6?= =?us-ascii?q?mZoXTPldaUQlMs0UMFj1NF8qZt0cg9aUWUTVwgzLuKGhsSNMrCMxxab81c9HjL?= =?us-ascii?q?ZyaBr+XMzYhzP4qjCuDiVfWOu7oMgkK4AAYpGJwB4dkbEZmy0UHXMNznIaUfxh?= =?us-ascii?q?U3/gTrI1uEDO9Xdx2XjTcHucC/zIN33IVHIDESH3l9Oz2t5rnLvg8qnOaDXNAu?= =?us-ascii?q?b3ceWYsELGw5WMu7mi5epHlAAz+30v8DxAiF9T/8qTzaDCPgYNp7ePeUeRRsBc?= =?us-ascii?q?mt+Toh96i2iFjX8ojRJmzhKdtivdrP5v8AqJacF/NYV799vFnAm4NAXXylT3bP?= =?us-ascii?q?EcKpJ5j3c4QjcMD7CnO9Uly5lzI5Utz8PMizIaiSgAHpRIFUsI+B0DAlK8C9Ci?= =?us-ascii?q?kUGw1sqOEb+KJ8eQoDboI4YR7ytwUxLaq/IBuY0ti1TGatLiNWQOVFweW8ebNX?= =?us-ascii?q?0zImbvWmx3s4UpE60+63/FYRRJELixHewuqjZ4leUCXoB3NdegXOqjAimGR7MO?= =?us-ascii?q?Y93Ps/ygvSsVYAKzCLaPBpaGtcstEzH1OdO3N2CnYjSl+diorC7Ais36wS/yRD?= =?us-ascii?q?ntZU1/FFv2bkvpPFZjKjRrCro43PsyU8ddgmv7FxMYv7L8ScsJPenyDQQ4fIvQ?= =?us-ascii?q?2AUC+6Ef1amt5KLy9DW/ZImHsqOcoftYpP9Eo9TME+KKJTCKM0vLCldSJkDTIO?= =?us-ascii?q?zS8eT46PxyINguGn1rTAixiQbootMAYfsJpYmNscUzR6YiQEpK+sT4/WjXOLSn?= =?us-ascii?q?AXIAcP6gRB/BgAlolxfu/54IrIS5tMyyVOrfxtTyXFDIVl+VzgR26Khlj4Temu?= =?us-ascii?q?nPay3QJO1v7s1McUWAJnA0hH2+lWjlcoKK1wK6QIooHKsCWHel/hsW3xz+umIF?= =?us-ascii?q?1RyczKeF3iEIrKq3bzUi0G9X0TX49Px2nVFY4OnAphdKYruFJMLZi8eknk/Twk?= =?us-ascii?q?wJ9mEqKkVcCx3Vkls2gJRyOrE9pHBOFmtFPXWDJlY5C3ppXqIY9SQmpK9J2btV?= =?us-ascii?q?hZjF1nMzSlxppEN8FN/jkMUSBBoDmHoNSySMxD2cp3D5AWIddyoHb9F71aN5eP?= =?us-ascii?q?uXE2vabvynDB8TAmrFi63CmzG7O/T+9B520eHQEpKH6EqkghCOss9mnS/0vIsl?= =?us-ascii?q?Bz+OdbHaaAgllroDZ6BZBOHTdJ1XaqL1hpS3lGqepaIrzPc8NAW/kyeQOvOxsm?= =?us-ascii?q?GPE8xUyJ4Ed0kW36YyFptwta+iHdXxUvWiUPhLfihyEeoNm9OTAGU5JIcSkhby?= =?us-ascii?q?DdJgKHniBXuQ1Sa112V5AcGdlJ4bcb0pVI/sDaU0ajNTkFXAB+NgI/yfdflVRM?= =?us-ascii?q?sF+CdiDZEAWlbuvAvQNvfceJssGpKOr2/B1dhoPgquA4+L0JR2e6lg21XdDes4?= =?us-ascii?q?j8u8WItkuJaqj1KPCzbmHaTDfSlxCwmakrAITQ8yjVLgVbN4FwyWA4bpj5FW7L?= =?us-ascii?q?IRNGKroAKEpVSa92dddLrv1UasJ/ZKkJ/qptCQ6dSRP0BIyjtv9GIUjPRT7GNS?= =?us-ascii?q?WO7vS/oZ7P7bzaUeXgfNKDyGvHQ61tIpd38j37G7D00YBA5Eb5xvBt+V5kRlTc?= =?us-ascii?q?NSCOssjhLBsR5Ma+bkviooEpHTTODZdoi3rt2ltPeNcLQyCx65QYz45Z6GzsRu?= =?us-ascii?q?1m1EjzrPdS+KNg6YUt5LBp08i0L7/IKftGqU9nHgSUBgJy+5UxGmhwWX5ebfIK?= =?us-ascii?q?JffMeaQZkdrupPrpF6wW7x2V//JWacfdK0HGgMm/BSmWSQZYkwcZtT4aMgyc2u?= =?us-ascii?q?aAm6BuTcalofb22l4x41ekNBEL17Zt6pmY+qqTuODYdQPRwqYeVqjsWMzzsqwm?= =?us-ascii?q?u1mO6v08iL4OZmt1bhWlEOcHTM4dwXzgzaQwwiIyCM7DGq/g+PpfV3I4gj3gmo?= =?us-ascii?q?pyH1MNGv8OGrqL54telH8im+PFLt0WbrxCmmGXGB6mCLACz3Cr6zGQIGZ4nB7D?= =?us-ascii?q?yA3wTnm17F/tqi90Wy3MwMn/kkBNTLm4GV9SXza1OU9/qD6PMxfotNvzuaQx8k?= =?us-ascii?q?42N3fpu8+Tm2S6ObNYBcv/KMabISkuq1IdlIcxScC32YAHBdq9J88c8Hd6bvbF?= =?us-ascii?q?6mOrlSpBr71Gh4rY7MGV4O/YHWK8j62AtrWC2CxYymUivV4h8NygMevO59KSSf?= =?us-ascii?q?Syy2kRVzt/uxfGXxOtr7zbqFYUOVCE0EjVg4EKO9BZ0mM+1k74+OgiTtUz9B9d?= =?us-ascii?q?Fobbff8Coy78OCfsy1aFf903TjWe0ydQHl/tC1l3BbUz1Xn/vMLMmnbc4VsoSZ?= =?us-ascii?q?dsd0b/nxx4E504KV4x6FgQ2icDFRMNaRWbAbyzC0TqM5YLVU8ZaRudxLi6YKA3?= =?us-ascii?q?3U9tzbyz+O/fd+t8B7ACNvxFlA6BgEBbGo4Ksa0ZWL98YEVS9LDNqQjtFYfnRO?= =?us-ascii?q?PrlWEqOv2rWM9a/t4Wt2A47ga5WRWg9Y9J76wHh5CQaq5EfZ/Msdh+70dm4D4C?= =?us-ascii?q?bSlNjwZ/jhynS+Acpebj4tfBvJqu9OmuSL4nR/8L+BgsG2R+k5zwjUgiodDWze?= =?us-ascii?q?hTUJHahJ/k8A9TP36FpprV3wN7KeoUJIKhZKxg+GkfJygCO3IOOsKbZOI94y92?= =?us-ascii?q?PjTc/V5CAsIQZdMAJsXNhARUh1b1V7FU68XUBEWXC5ppd8Av9Wr40io58ZwmUu?= =?us-ascii?q?bv8DW2P4zQ70lRP/NfiyVhjMrCq/IJwfXOCCgW736ZawJ2wi+b0JmCFfLw/eSK?= =?us-ascii?q?yNHJWFILBTY2XJ1BJDWe+QymSO21lI/qUg+O6c/8nog+dESOSXy1hqgFtbxMEe?= =?us-ascii?q?FYgCXhwjdeDpz1h+6Ss9e09GtXrENIEIJp4h3DBqpSJYh0ORX3lsmqWkhzHDD/?= =?us-ascii?q?d9vOdhozouaWwPkD4/lmPUvkeYAbOg4Ey6796XdNQQthUqT2sUiFXeIRf9ZmTP?= =?us-ascii?q?LErmxL5oJgMaAPIUOdqIbsrjhWtFA8GBUpZ6MorjxGaknOmxVYW6nqt74Glgsc?= =?us-ascii?q?Vtl5tUhXGW2uPGI+5jzHVblajaSKDPwa7C+TT6wUXElyNCNxXQ+10o10e7S1hf?= =?us-ascii?q?BHrn9GniRlrfgs0jxpWBy8uSn2qKIWwz4g+ba4tDIauXxeVeielijFCFpZwPQN?= =?us-ascii?q?l6ccBG7o6Uagb3kbcIvy/L5nKNzv9YY9+HQ/egwvcTAJU+qmCiHwib6IA4OUvd?= =?us-ascii?q?JTgR6CosPOYqGpISgVLLQ9xgrpR2Jh3QjGgBZo7GwLTy2i7N8jJIW9P9wpyTao?= =?us-ascii?q?GWjfaVYD/6JIsMr3tV4QT+s2aEhswHti0siZXCINQNHAG2cvgggid2pEbIpJ6Q?= =?us-ascii?q?UGGKkwnjaIoq5G8xkVYDfKCIul/JLdncPV2XYgTNdqwXnWqreChpMw331vg8l0?= =?us-ascii?q?4TKWuHQOa+zYVNdhAnrt2YdRx+z+Y+6gs+4dR4tg1ruhTOUOMs+99muqwJ9qQF?= =?us-ascii?q?OqxqwCH1qlN+8O3rjbUyOiSWyWR+uLd2yMki0iMk714xmoL0E4ZN1Mr0AjLuvI?= =?us-ascii?q?noRcmBH5UbNoWiWQokfWzG4jMeIabwI2v4Onew0WTOEPfOWcIOkuwOEkCFQSdX?= =?us-ascii?q?PJGjF2C+Cuu163gId7I2lg4Vn9Yen17gDmMd6SFwIYEY7bspFx+uK1RmabNX9m?= =?us-ascii?q?0hJyIFF+9/3DGFQpqu9cb5GRkMDVh9R60u4FdPBtPDY/utEJmYJj7o+U39mMcR?= =?us-ascii?q?3LyJb9O83VqOCCA/LD10QqZn1aUr0BbAzu+Yo6OMI5VqbIHbtduhQcGbQ6QII/?= =?us-ascii?q?OGjs7q10KxlzcgHJbrSunsbqvv6LZodTp3LO4FI/MiPcuxwbyvOqVgF6bpGqh3?= =?us-ascii?q?D3IJ8uXDJBq8NiBgFhHItVFMMKtxCnDIKMmKGnl9+x/Ft3uuESsarqC/DFyMq2?= =?us-ascii?q?0p50X5hb+UyLJijeCLNsgkR/geS4mu3A3YXpCcP+ZdMEU/B2QmnBarDYBYi/Mj?= =?us-ascii?q?aONdjne05a8r6TzK55Ug+Pay/nRaaGsjOrNOl860Uh1oN4ZPbTzCAq77zD3Nvy?= =?us-ascii?q?ZmdbpjqsrHKQMJtf7UfKBfDFXx9PSPqK6mBlHaoNYYvz7ucOPsQowMKA7Alr8D?= =?us-ascii?q?RCzMyFLrC6rkDS3kJ7dJTbLFbm2io+VocKPBS/PlU2gWDHsnTSG29RLsu6Jsl3?= =?us-ascii?q?htaaEBjt6FJsmWEifGJBHXDoRdiJM2gBx82+fBGK9B5MD9sbmu64Y1I3tq2zSe?= =?us-ascii?q?luPZVIgvuqtLQBkdl3LyHPRc5aPzzfLbNsOTpRFOrPrkAyYhEYq7g1Rps1ZZ+W?= =?us-ascii?q?LUMFKkiAyiTywhDZ3E3pcdysyKaJICEL8nVIz7LFzSJApw+ntvaFmsfjSqzWbI?= =?us-ascii?q?nqXP7ONyooTj6aSi4pHkaz+Ferpf4EseGGIWcbuF8UeSOSCBMJqqBps9fQEnfZ?= =?us-ascii?q?mfd/c50SmPCaRyfwRTV6lKo3ASZLr1qMQ/sYFQTNaX/umm9ctxKjJvNW+nLldb?= =?us-ascii?q?KYzLJPW+MKGotMbuGZQ9zAdPBFKTcokykWNee/ctDHsbY2zEjITWoYEqnP8l2S?= =?us-ascii?q?VkiWTeKAx2GjYYJApIUwuyw16vrMjyR3FOLOJL/ZqDmwoaCiiyPNleTYHksweU?= =?us-ascii?q?M4hvlKVGWIxhhNLGMsDtwRvEjrRb7GbEFJgiF6wdly0gMBLVwgGkZl1WdbybPk?= =?us-ascii?q?QsA=3D?= X-IPAS-Result: =?us-ascii?q?A2GiBgAWnBxZ/wHyM5BcGwEBAQMBAQEJAQEBFgEBAQMBAQE?= =?us-ascii?q?JAQEBgwEpYoEMjniQdIIMAYsailYoA4F3iWpXAQEBAQEBAQECAQJoKIIzJIErW?= =?us-ascii?q?zwGAQJ5AwkBARcIKQgDAVMZBYhPgU8Ery4mAosPli0FiUaHYYxphxyMAYICVYh?= =?us-ascii?q?BDIZHlEZYgQpPIRWEeYJGc4hnAQEB?= Received: from unknown (HELO tarius.tycho.ncsc.mil) ([144.51.242.1]) by emsm-gh1-uea11.nsa.gov with ESMTP; 17 May 2017 18:56:19 +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 v4HIuEnM010289; Wed, 17 May 2017 14:56:17 -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 v4HIsuk3052535 for ; Wed, 17 May 2017 14:54:56 -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 v4HIstVJ009136 for ; Wed, 17 May 2017 14:54:55 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A1CyAwBomxxZ/4GlL8FcHAEBBAEBCgEBgyyBC4EMjniQdI0nil0cCIYAAoY2AQIBAQEBAQJrKIUZBnkQGAgxVxmIVIFTryuLBQEBCCiWLQWJRodhjGmHHIwBggJViE2GR5RGV4EKTyEVhz89NohnAQEB X-IPAS-Result: A1CyAwBomxxZ/4GlL8FcHAEBBAEBCgEBgyyBC4EMjniQdI0nil0cCIYAAoY2AQIBAQEBAQJrKIUZBnkQGAgxVxmIVIFTryuLBQEBCCiWLQWJRodhjGmHHIwBggJViE2GR5RGV4EKTyEVhz89NohnAQEB X-IronPort-AV: E=Sophos;i="5.38,355,1491278400"; d="scan'208";a="6056451" 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; 17 May 2017 14:54:55 -0400 IronPort-PHdr: =?us-ascii?q?9a23=3A7MDqnBETbWQYVF5+gL99+Z1GYnF86YWxBRYc798d?= =?us-ascii?q?s5kLTJ78pcuwAkXT6L1XgUPTWs2DsrQf2rWQ6v+rADZfqb+681k6OKRWUBEEjc?= =?us-ascii?q?hE1ycBO+WiTXPBEfjxciYhF95DXlI2t1uyMExSBdqsLwaK+i764jEdAAjwOhRo?= =?us-ascii?q?LerpBIHSk9631+ev8JHPfglEnjSwbLdwIRmssAnctMYajZZ8Jqsz1xDEvmZGd+?= =?us-ascii?q?NKyG1yOFmdhQz85sC+/J5i9yRfpfcs/NNeXKv5Yqo1U6VWACwpPG4p6sLrswLD?= =?us-ascii?q?TRaU6XsHTmoWiBtIDBPb4xz8Q5z8rzH1tut52CmdIM32UbU5Uims4qt3VBPljj?= =?us-ascii?q?oMOiUn+2/LlMN/kKNboAqgpxNhxY7UfJqVP+d6cq/EYN8WWXZNUsNXWidcAI2z?= =?us-ascii?q?cpEPAvIBM+hGsofzqVgAoxy8CgmiH+7j1iNEi2Xq0aAgz+gtDQfL1xEgEdIUt3?= =?us-ascii?q?TUqc34OqkIXuCz0aLGySjDb+lZ2Tjj7ojIaQ0qrPaRUr1qd8rRyFcgFwfHjliL?= =?us-ascii?q?rIzqITeV1uAXvGid6OphWvijhHIgqwF0uzWiwNonhIrRho8N11zJ8St0zJw6KN?= =?us-ascii?q?C6UkJ3fN+pHZtKuy2HKYd7RsUvSHxytikg0L0Jo5u7cTAKyJs5wx7fbOSKc42W?= =?us-ascii?q?7RLnUOaeOzF4hHVqeb6lmxmy9lKsyuz4VsWs0VZKqDRKksXUu3wQ0xHe5NKLR/?= =?us-ascii?q?R/80u7xDqC1gDe5vtZLUwqkafXM5shzaQxlpoXv0TDBCj2mEDugaCLbEok/Omo?= =?us-ascii?q?5PrjYrXkvZKcMpF7igX6Mqs0nMy/Bus5PhISUGic/OSwzKfj8lHhQLVWkv02lb?= =?us-ascii?q?HUsIvEKsQfp665BRJV04k45hajDzapzNQYnX4dIFJDYxKIlZLlO17JIPDmXr+D?= =?us-ascii?q?hAG3nTNqwe3WFqHwCZXKaH7YmfHueqguxVRbzV8fxNYXxY9OBbwHO7qnVkb3td?= =?us-ascii?q?HcDDc8PgiwyuDgGJN20YZICjHHObOQLK6H6QzA3ekoOeTZIdZN4Ds=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0G/BwAWnBxZ/4GlL8FcHAEBBAEBCgEBF?= =?us-ascii?q?wEBBAEBCgEBgwGBC4EMjniQdIIMAYsail0cCIF3hAkChjYBAQEBAQEBAQIBAmg?= =?us-ascii?q?ogjMkAYEqWzwGeRAYCDFXGYhUgVOvLosFAQEIKJYtBYlGh2GMaYccjAGCAlWIT?= =?us-ascii?q?YZHlEZYgQpPIRWHPz02iGcBAQE?= X-IPAS-Result: =?us-ascii?q?A0G/BwAWnBxZ/4GlL8FcHAEBBAEBCgEBFwEBBAEBCgEBgwG?= =?us-ascii?q?BC4EMjniQdIIMAYsail0cCIF3hAkChjYBAQEBAQEBAQIBAmgogjMkAYEqWzwGe?= =?us-ascii?q?RAYCDFXGYhUgVOvLosFAQEIKJYtBYlGh2GMaYccjAGCAlWITYZHlEZYgQpPIRW?= =?us-ascii?q?HPz02iGcBAQE?= X-IronPort-AV: E=Sophos;i="5.38,355,1491264000"; d="scan'208";a="5876202" X-IronPort-Outbreak-Status: No, level 0, Unknown - Unknown Received: from mail-il-dmz.mellanox.com (HELO mellanox.co.il) ([193.47.165.129]) by emsm-gh1-uea11.nsa.gov with ESMTP; 17 May 2017 18:54:51 +0000 Received: from Internal Mail-Server by MTLPINE1 (envelope-from danielj@mellanox.com) with ESMTPS (AES256-SHA encrypted); 17 May 2017 21:54:48 +0300 Received: from x-vnc01.mtx.labs.mlnx. (x-vnc01.mtx.labs.mlnx [10.12.150.16]) by labmailer.mlnx (8.13.8/8.13.8) with ESMTP id v4HIseKO010220; Wed, 17 May 2017 21:54:47 +0300 From: Dan Jurgens To: selinux@tycho.nsa.gov Subject: [PATCH 2/2] selinux-testsuite: Infiniband endport tests Date: Wed, 17 May 2017 21:54:33 +0300 Message-Id: <1495047273-96339-3-git-send-email-danielj@mellanox.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1495047273-96339-1-git-send-email-danielj@mellanox.com> References: <1495047273-96339-1-git-send-email-danielj@mellanox.com> 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: Errors-To: selinux-bounces@tycho.nsa.gov Sender: "Selinux" X-Virus-Scanned: ClamAV using ClamSMTP From: Daniel Jurgens New tests for Infiniband endports. Most users do not have infiniband hardware, and if they do the device names can vary. There is a configuration file for enabling the tests and setting environment specific configurations. If the tests are disabled they always show as passed. A special test application was unnecessary, a standard diagnostic application is used instead. This required a change to the make file to avoid trying to build an application in the new subdir. Signed-off-by: Daniel Jurgens --- README | 7 +++- policy/Makefile | 2 +- policy/test_ibendport.te | 37 +++++++++++++++++++++ tests/Makefile | 4 ++- tests/infiniband_endport/ibendport_test.conf | 14 ++++++++ tests/infiniband_endport/test | 49 ++++++++++++++++++++++++++++ 6 files changed, 110 insertions(+), 3 deletions(-) create mode 100644 policy/test_ibendport.te create mode 100644 tests/infiniband_endport/ibendport_test.conf create mode 100644 tests/infiniband_endport/test diff --git a/README b/README index b64e2de..8e1b391 100644 --- a/README +++ b/README @@ -200,7 +200,12 @@ INFINIBAND TESTS ---------------- Because running Infiniband tests requires specialized hardware you must set up a configuration file for these tests. The tests are disabled by -default. See comments in the configuration file for info. +default. See comments in the configuration file for info. The endport +tests use smpquery, for Fedora it's provided by the infiniband-diags +package. Infiniband PKey test conf file: tests/infiniband_pkey/ibpkey_test.conf + +Infiniband Endport test conf file: +tests/infiniband_endport/ibendport_test.conf diff --git a/policy/Makefile b/policy/Makefile index ab58d3b..dcefdb5 100644 --- a/policy/Makefile +++ b/policy/Makefile @@ -21,7 +21,7 @@ TARGETS = \ test_task_getsid.te test_task_setpgid.te test_task_setsched.te \ test_transition.te test_inet_socket.te test_unix_socket.te \ test_mmap.te test_overlayfs.te test_mqueue.te test_mac_admin.te \ - test_ibpkey.te + test_ibpkey.te test_ibendport.te ifeq ($(shell [ $(POL_VERS) -ge 24 ] && echo true),true) TARGETS += test_bounds.te diff --git a/policy/test_ibendport.te b/policy/test_ibendport.te new file mode 100644 index 0000000..9f0294d --- /dev/null +++ b/policy/test_ibendport.te @@ -0,0 +1,37 @@ +################################# +# +# Policy for testing Infiniband Pkey access. +# + +gen_require(` + type bin_t; + type infiniband_mgmt_device_t; +') + +attribute ibendportdomain; + +# Domain for process. +type test_ibendport_manage_subnet_t; +domain_type(test_ibendport_manage_subnet_t) +unconfined_runs_test(test_ibendport_manage_subnet_t) +typeattribute test_ibendport_manage_subnet_t testdomain; +typeattribute test_ibendport_manage_subnet_t ibendportdomain; + +type test_ibendport_t; +corenet_ibendport(test_ibendport_t) + +dev_rw_infiniband_dev(test_ibendport_manage_subnet_t) +dev_rw_sysfs(test_ibendport_manage_subnet_t) + +allow test_ibendport_manage_subnet_t bin_t:file entrypoint; +allow test_ibendport_manage_subnet_t bin_t:file execute; +allow test_ibendport_manage_subnet_t infiniband_mgmt_device_t:chr_file { read write open ioctl}; +allow test_ibendport_manage_subnet_t default_ibpkey_t:infiniband_pkey access; +corenet_ibpkey_access_default_pkey(test_ibendport_manage_subnet_t) + + +allow test_ibendport_manage_subnet_t test_ibendport_t:infiniband_endport manage_subnet; + +# Allow all of these domains to be entered from the sysadm domain. +miscfiles_domain_entry_test_files(ibendportdomain) +userdom_sysadm_entry_spec_domtrans_to(ibendportdomain) diff --git a/tests/Makefile b/tests/Makefile index 7dfe2a8..63e6f57 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -12,6 +12,8 @@ SUBDIRS:= domain_trans entrypoint execshare exectrace execute_no_trans \ capable_sys dyntrans dyntrace bounds nnp mmap unix_socket inet_socket \ overlay checkreqprot mqueue mac_admin infiniband_pkey +SUBDIRS_NO_MAKE:= infiniband_endport + ifeq ($(shell grep -q cap_userns $(POLDEV)/include/support/all_perms.spt && echo true),true) ifneq ($(shell ./kvercmp $$(uname -r) 4.7),-1) SUBDIRS += cap_userns @@ -56,7 +58,7 @@ all: test: all chcon -R -t test_file_t . - @SUBDIRS="$(SUBDIRS)" PATH=/usr/bin:/bin:/usr/sbin:/sbin ./runtests.pl + @SUBDIRS="$(SUBDIRS) $(SUBDIRS_NO_MAKE)" PATH=/usr/bin:/bin:/usr/sbin:/sbin ./runtests.pl clean: @for subdir in $(SUBDIRS); do \ diff --git a/tests/infiniband_endport/ibendport_test.conf b/tests/infiniband_endport/ibendport_test.conf new file mode 100644 index 0000000..601b290 --- /dev/null +++ b/tests/infiniband_endport/ibendport_test.conf @@ -0,0 +1,14 @@ +# Enable(1)/Disable these tests. +SELINUX_INFINIBAND_ENDPORT_TEST=0 + +# Device/port pair that should allow access. +# The test uses semanage to allow, because +# ibendports are all unlabeled by default +# the reference policy. This allows using +# the same device and port for both the pass +# and fail testing as well. +SELINUX_INFINIBAND_ENDPORT_TEST_ALLOWED=mlx5_3 1 + +# Device/port pairs that should deny access. +SELINUX_INFINIBAND_ENDPORT_TEST_DENIED=mlx5_2 1 + diff --git a/tests/infiniband_endport/test b/tests/infiniband_endport/test new file mode 100644 index 0000000..172ff03 --- /dev/null +++ b/tests/infiniband_endport/test @@ -0,0 +1,49 @@ +#!/usr/bin/perl + +use Test; + +BEGIN { plan tests => 2} + +$basedir = $0; $basedir =~ s|(.*)/[^/]*|$1|; + +my %conf; +my $confpath = $basedir."/ibendport_test.conf"; +open($f, $confpath) or die ("Couldn't open ibtest.conf"); +while($r = <$f>) { + if ($r =~ /^\s*#/ || $r =~ /^\s*$/) { next; } + chomp $r; + ($k,$v) = split(/=/, $r); + $conf{$k} = $v; +} + +if ($conf{SELINUX_INFINIBAND_ENDPORT_TEST} eq 1) { + @allowed_device_port = split(/,/, $conf{SELINUX_INFINIBAND_ENDPORT_TEST_ALLOWED}); + @denied_device_port = split(/,/, $conf{SELINUX_INFINIBAND_ENDPORT_TEST_DENIED}); + + foreach (@allowed_device_port) { + @dev_port_pair= split(/ /, $_); + + system "semanage ibendport -a -t test_ibendport_t -z $_ 2>/dev/null"; + $result = system "runcon -t test_ibendport_manage_subnet_t smpquery PKeyTable -C $dev_port_pair[0] -P $dev_port_pair[1] -D 1 2>/dev/null"; + system "semanage ibendport -d -t test_ibendport_t -z $_ 2>/dev/null"; + if($result ne 0) { + last; + } + } + ok($result, 0); + + foreach (@denied_device_port) { + @dev_port_pair= split(/ /, $_); + $result = system "runcon -t test_ibendport_manage_subnet_t smpquery PKeyTable -C $dev_port_pair[0] -P $dev_port_pair[1] -D 1 2>/dev/null"; + + if ($result>>8 eq 0) { + last; + } + } + + ok(int($result>>8) ne 0); +} else { + ok(0, 0); + ok(0, 0); +} +exit;