From patchwork Tue Mar 28 13:12:52 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tetsuo Handa X-Patchwork-Id: 9649433 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 DC79860113 for ; Tue, 28 Mar 2017 13:14:43 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D7C31283C9 for ; Tue, 28 Mar 2017 13:14:43 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id CC5D028403; Tue, 28 Mar 2017 13:14:43 +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 autolearn=ham version=3.3.1 Received: from emsm-gh1-uea11.nsa.gov (smtp.nsa.gov [8.44.101.9]) (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 AB003283C9 for ; Tue, 28 Mar 2017 13:14:42 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.36,236,1486425600"; d="scan'208";a="4357928" IronPort-PHdr: =?us-ascii?q?9a23=3A66EXAB1OY9454uw1smDT+DRfVm0co7zxezQtwd8Z?= =?us-ascii?q?sewVLvXxwZ3uMQTl6Ol3ixeRBMOAuq8C27ed6viocFdDyK7JiGoFfp1IWk1Nou?= =?us-ascii?q?QttCtkPvS4D1bmJuXhdS0wEZcKflZk+3amLRodQ56mNBXdrXKo8DEdBAj0OxZr?= =?us-ascii?q?KeTpAI7SiNm82/yv95HJbQhFgDqwbalxIRi2ogndq9UaipZ+J6gszRfEvmFGcP?= =?us-ascii?q?lMy2NyIlKTkRf85sOu85Nm7i9dpfEv+dNeXKvjZ6g3QqBWAzogM2Au+c3krgLD?= =?us-ascii?q?QheV5nsdSWoZjBxFCBXY4R7gX5fxtiz6tvdh2CSfIMb7Q6w4VSik4qx2RhDoki?= =?us-ascii?q?MHPCMn/m/RhMJ7kaZXrAu8qxBjxoLZZpyeOvhjcaPHZd4URXRPUNtfWSJCBY28?= =?us-ascii?q?d4kCA/cPMOlXs4bzqEUBrQClCAmwBu7i0CNEi2Xq0aEk1ekqDAHI3BYnH9ILqH?= =?us-ascii?q?nassv6NLsJUeCoy6nD0DfNYOlQ2Tjg8ofDbxcsoemSUrJ2fsrR1EgvFwXcglWT?= =?us-ascii?q?t4PlJTWV2foJs2WA7upsTOavi2k5qw5vuDSv3d0jiorUhoIP0F/I7yN5z5gvKd?= =?us-ascii?q?26UE52eNipG4ZTuSGCL4Z6X8wvTm5ytCs617EKo4C3cScUxJg92hLTc+GLf5aJ?= =?us-ascii?q?7x75SuqdPzV1iGh4dL+whRu+61WsxvDhWsSyzV1EtDBKksPWuXAIzxHT78+HRe?= =?us-ascii?q?Zj8Uq5wjaP0hzT6vlDIUApiarXM54hzaA0lpoUqUnDAjX5mF/3jK+LbUUo4PSo?= =?us-ascii?q?6uT7bbXmoZ+QLYl0hR3lMqsygMC/BOU4MgwWU2ia/+SzyqHj8FXkTLhFgfA6iK?= =?us-ascii?q?nUvI3AKcgFqaO1HRVZ3ps75xa6FTim0dAYnXcdLFJCfRKKl5PpNE/KIPD5C/e/?= =?us-ascii?q?nlutnC5wyPDBI73hBInCIWbYkLr6YbZ861JTyAo0zdxF4ZJUEasOLOj8Wk/2qt?= =?us-ascii?q?zUFgU5PBCsw+b7FNV90ZsTWWCIAq+fKqzSrV+I6fgpI+SXZo8VvzD9K/0/6P71?= =?us-ascii?q?kX82h0UdfbKz0ZsQcnC4EexsI1+Fbnr0ntcBDWAKsxI8TOzoklKNTT1TZ221X6?= =?us-ascii?q?I65zE7FpmrDYnHRoCwj72Oxzq7HptKZmBbEFyMFm3od4qcUfcWdC2SOtNhkiAD?= =?us-ascii?q?VbW5RY4h1BWutArkxLp9NefU9DMXuo/k1Nhv/eLTjQsy9Tt2D8uDz26NU3t4nm?= =?us-ascii?q?QSRz85xKp/u1Byyk+f0ahkhPxVDcFc6O9MUgc9M57c0/F2BsvsWg3fZNeJSVen?= =?us-ascii?q?QtKgAT0rSNI+3cMOaV5nG9q+lhDDwzaqA7gNmrOWGJw76Ljc0mPtKMZ6znbJyL?= =?us-ascii?q?Muj0I6QsdVM22pmLJ//RDJB4HVi0WZi7qqdaME0S/N9WaDymyOsVpdUA50SKnF?= =?us-ascii?q?XHYfalHQrdvj/EPCTL6uCao5PQdbz86NNLdKYMXzjVpaXPfjJMjeY2WplmiuHR?= =?us-ascii?q?aH3KmMbIvxe2gGxCXSElIEkwEI/XaeMQgxHDuurHzEADxpD1LvbFvm8fNip3Oj?= =?us-ascii?q?Uk800waKYlVv17qv4BEVg+CTS/II3r8fvSchszR0EE+m39PYENqMvQ1hfL9TYd?= =?us-ascii?q?kl+ldIyXrZtxBhPpynN61ihUQRcwdwv0PzzBh3CZ9PkcstrHM31gZyLriY0FxZ?= =?us-ascii?q?fTOCwZ/wIqHXKnX1/B23caHZx0ve0NeI9acV8/k3sUnsvASzGkol6XVn3MFf02?= =?us-ascii?q?GA6ZXSEAoSTZXxX1439xdko7HaZi496pjQ1X1xLam0tTrC1MgzCOsi0BagcM9V?= =?us-ascii?q?MLmYGw/qD80aG8+uJfQxm1indBIEO/tS9LIvMsO9cfuG36CqPON6kzKgl2hH5p?= =?us-ascii?q?5y0l6U/SpmVuHIx4oFw+2f3gafWTbzllOhstzploBefjEfBXS/xjb+BIFKe61y?= =?us-ascii?q?eJwHCWC0I8243t9+nYLiW2ZE9F6/AFMLwNOpdgePYFz8xwJQ0V8armCgmSu90z?= =?us-ascii?q?N7iSoprraF0CzI3eviaAINOnRXS2l6kVfsPY+0gsgcXEipawgpkAWq5V3hyqdB?= =?us-ascii?q?uqt/NW7TTV1PfyjsIGFoSrGwuaaaY85T9JMotj1aUPq9YV+GVr79pAEa3zn/EG?= =?us-ascii?q?tewzA7cT6qt479nxx7jmKSNmxzrH3DdcF33xff68TWReRN0ToeWCl4lT7XC0C4?= =?us-ascii?q?P9mo5tWUi47PsvugWGKlV51TdzTrzIybuSug/W1qABu/n/Gvld38CwQ61zH018?= =?us-ascii?q?VyXyXSsBn8epXr17i9Me9/ZEloA1v8685kFYFkjoQwg58R1GMBhpWI4XUHin3/?= =?us-ascii?q?MdJB2aLxdHANXyIEw8bJ4Aj5301uNmqJyJjkVnWZ2MdufcO2bXgR2iI588BKD6?= =?us-ascii?q?GU4adBnSdppFq4qh7ebeJ7njgD1fsk8GQajP0RuAox0iWdBagfHUpGMizqjBSF?= =?us-ascii?q?9NO+o7tRZGa0d7i/ylZ+kcqmDLGYrQFWQGz5dYs6HS9s8sV/N0rB0GP16o75Y9?= =?us-ascii?q?TQc9QTuQCUkxvaiehaNo4xnOIQhSV7IWL9oWEly+kjgBx2x566oYyHJn5x86K4?= =?us-ascii?q?Hh5ZNiT5Z80J9THrl6pemdyW34+3FJV7BjoLRIfoTe6vED8Kr/ToKhuBHSYzqn?= =?us-ascii?q?eeFrvTBwmf51l6r3jXCZCkK2mXJGUFzdVlXBSdPFZQgB0QXDokhp42DAaqxND/?= =?us-ascii?q?f0dj/T0R+0X4pQVWyuJzLRX/SWDfpBqyajgoVpefIh1W7htN50jLK8Ce6Px8Hz?= =?us-ascii?q?1A9J27sAONMnCbZxhPDWwRVEyLHVbjPqWp5dnF6OWYCPSxIObJYbWUs+NeT+2I?= =?us-ascii?q?xZWt0oR44zmMKt+DPn54D/00wkBDR2x2G9zFmzUTTCwajyfNYNSfpBe45CJ3st?= =?us-ascii?q?y//+7xVw/044uAFadSMc5z9B+smaeMKfSchCBnJjZEzpkM32PHyKAD3F4OjCFj?= =?us-ascii?q?byOtHa4OtCLXSaLfgKtXDxkbai5oLsRH86c80hNKOc7BhdP/zqR4geItC1dZSV?= =?us-ascii?q?zhndmkZcIQI26jKVzHH1yENLKaJT3M2MH6ermzRqFVjOlOsB2wozmbGVf5Pjuf?= =?us-ascii?q?jznpSwyvMeZUgSGdJhxRopm9cg52BGjtTdLmcAa7MMN5jT03x707nHXKOnIdMT?= =?us-ascii?q?dmd0NBtLqQ7TlXgv9nAWxO8mJlLfWYmyae9+TYMogZvuB1DSRyluJa/HM6xqBU?= =?us-ascii?q?7C5aWvN6hjHertl0o1GpiuOP0CZoUAJSqjZXg4KGpV5tNr7e+plEWHbE5w4N7X?= =?us-ascii?q?6KBxQRudRqFsfju7tOxdjLlaLzLipC8t3P8MQAB8nUMt+HMGE7PRvnAjHUEBAF?= =?us-ascii?q?TTmtNW3FgExdiv6S/GWPrpcmspjshIYOSrhDWVwuDPwaFF5qHNMcL5dsRT4kiq?= =?us-ascii?q?SUjNAS6nqxshbRX99WvpbZWfKOGf/vMiqWjaFYZxsUxrP1NZ8cNoz020xlbFl3?= =?us-ascii?q?h5nFFFTLUtBMuCJhaBU4oEJX8HhxVmczwV7qahux4H8PEv65hgQ5igRkbuQz6j?= =?us-ascii?q?jh+FA3JkLUqys2lUk+g9TlgTSKfz72I6a8R4ZWCzD7t0IpKJP0Xx51bRGunUxj?= =?us-ascii?q?LDrEW7VRj756eWBxjw/duIVAGfhHQq1eZx8f2/KXau403lRbryWo2VVI5fDZCZ?= =?us-ascii?q?d4kgslb4KspWpa2w1/dN41ObDQJK1Rw1hThqOOujGn2/s0wA8ZKUYN/n2deDIU?= =?us-ascii?q?uEwIMbkmIjSn8vZq6QOchztJYHIMWOYyovJ26kM9PPyNzyT+3LFZLkC8LO+fL6?= =?us-ascii?q?SCu2jcj8GIREgw1kAJl0Vf+7h5z9sjeVKOV08z1LuRCwgJNc3aJAFPccVS72bc?= =?us-ascii?q?cjyUserRwZJ4JJ6yFuHyTeCTs6YUjFqkHBw3EIUM9MgBGIej0F3AJ8f9MLEF0Q?= =?us-ascii?q?kt5BjsJFidEftJfxSLkDEarM6hyJ933JJQKSsDDmVnNiW7/LHXphUlgPCbRtc5?= =?us-ascii?q?fm8aXpcYNnIxQMC1hjRWv2pBDDaqyeIU0xKN7yXmpiTXAjj8dMRsa+uJZRN2Cd?= =?us-ascii?q?G25TU+/7KwiVHJ7pXUP3v6Osh6ut/T9eMaoI6KBO5PTbZjqUjclJNYSGa0U2PU?= =?us-ascii?q?Ct66PZvwa5Q2bdPuEHq6VkG/izQvQMfrJdqtMq+IgQLoRIZTqoWb2i4sNdOlHD?= =?us-ascii?q?EEBxhwv/0D5L57ZQAbZ5o7ZgTouBo4N62+JweVydquQ2CwKTdMSPlf1+q6baRN?= =?us-ascii?q?zyUwdu+61GcgTpYiwums70ENQJAKjhfDxfesfIRRTS/zGnlBdArVvio5i3JtNu?= =?us-ascii?q?Aszecj2BnIq0UTMyiXdOx1b2xJp9I8BUmSIHpsDGo4W1+cgJHM4g6rx7Ad4zFR?= =?us-ascii?q?n9BK3u1ZqHL+pIPQYCqwWKy3rpXYqzYgbdkjo612LYzjIsuHuYjDkTzeTJjfqB?= =?us-ascii?q?aKXDS8F/VEhthaODhYT+VQmWE5JcwGvpJM5lA1Vsc/O7NAFrEjprWqaDpiCi4S?= =?us-ascii?q?yzUWWpib0zwDmOi83aLWlhmNcJg4NhwLrolCiMMHUyFqeiMeuLOjV4LOmmCfVG?= =?us-ascii?q?cLJhwe4h5R6wIeiIBwZPvl75DSTJ5M0TJWpOh0UiTTHJly61T7Un2WgUT/SPi5?= =?us-ascii?q?nOypwANSzPbo0tYFXR5yElVSyPhNmUspMr53LbMcvonQsj+HbUn6pn7iyPO6JF?= =?us-ascii?q?lNzs3Zb0f4DIzEtWXgUi0c/nkURZRXxn/GCJociRZ0ZqEwqVpQJ4Cmf1rx6CY/?= =?us-ascii?q?x4R1BbW4U96kx0o9p3YcWyiqC8ZBC/1hsF/PQj1qeYqrqJL+NJhJXm9Q4oeSq0?= =?us-ascii?q?lHn0VpMi65z5VcK8VM4j4DXDhPvTuds8GoSM1Gw8N2CYEDIstnsXfnBKxEIISR?= =?us-ascii?q?o2ExurH3xH7V4SwzsFe7xDW2Gq+3VeFZ8nYfGgo3OWuRtFMjD+w28mfd6lrNqE?= =?us-ascii?q?x7//9HBriTikV8uCxyHopTBjZPz3ylLE9+THhHs+VbNKTaaNZQQ/8sah+zIxY+?= =?us-ascii?q?D+Ip31SV/UFomnf0ey1ytg1G+y/DWwk7SywVjanxmT0EqsCqIjgaS4pWYjUnai?= =?us-ascii?q?fKMQObmSRMsxZYZEBmQZcZAsxK+7sDx4tb4tLCSVqwKSECRBFiORg43uBZlU5f?= =?us-ascii?q?q0iYeCfdDASudfbTsh14Y8aRrMi1LPvn5gdLkIXnv/4k968bXX2phRWtQczCr4?= =?us-ascii?q?/7rtCKqkyOdKLjPu2gfXPBSSPDgQq2hbg6E5nA5zLTPxZDK5lm1XokZoDsCW7R?= =?us-ascii?q?MhRcPa0bI1dUWLtnZtpYuuBaf9FreKIX9q93HB6HQQnvGIO3pvlcMlnTXSjeLz?= =?us-ascii?q?mG8uGno4LT6qLSRPP9acOS3HbIXbh3Potk5jbmAbvq15FR+lbu0Pd36kx6UUTG?= =?us-ascii?q?MzyGrNn5PQwL6tWtelfgs5E0Ez7bG4t/kH3oxk5cbcUXWDGq/I4eyJxH9Hb6Uf?= =?us-ascii?q?h43VTrsO1O67lk7pE646p3xsipJafdM+havFRjAhiTGAVl6IshD3R4R29MfOAd?= =?us-ascii?q?MvHRcroFjcr2seD4C7QX6AGJ++xecdbHP1rBmtWlBT6BVRxJhxwBqTkHLguGy/?= =?us-ascii?q?GKhal0Sdq/pefj3kIh+V++LgQJzLp1/4eL5rKIpPPLbxvW1bUERrLqSd3tobsx?= =?us-ascii?q?oE6S+PkklKIUemNvfQ2nEe8dVsoDyWf816wqyjgsE8zbFbL65PFDT245ni7nm5?= =?us-ascii?q?1lAloWHOkbEKGW8oRYhGg0gevZNscZcqpagGaACQakEqMeyX6s8yaXInNqggvJ?= =?us-ascii?q?0xHrRWO89kH2oDR9QSvRy9fjjktVWaW2BUhIWSqpIlV0sDSVPArnrND3o7g67F?= =?us-ascii?q?kqMmz4s9KAjGmhN6lRH83xPtycJjQ7q0wMgZ0tXNOv35sbGd2nLNcX7n5+cuPU?= =?us-ascii?q?63m3nC9Zv6dHm43e79mT+vXTBnSgjquaq7CXyDBZzHg4s0s/5cq7NvHS/d2KXu?= =?us-ascii?q?in13oMTydlpQTNRRm1qqbUr1oMI0yEzF/LmJAWPtFexXQ40EDm6/QkQNI37gpe?= =?us-ascii?q?DZzMZ/IFpTD0Izv02k2SY9c4WyiRyTdXGUj1EVZgEqgmxG3wpN7JlWvX+1AwWo?= =?us-ascii?q?Z/bUjnigJsD4UkKUMt70MawjEfHggMdx+bCq2oBUX/IoceU0gMdwiH1qCgeqgr?= =?us-ascii?q?xU1z3q+v5OjLYOx4HKoNM/ZQgxWAnFdFB50WtrceT6hke19H867XpBbtBJT7X/?= =?us-ascii?q?T8knowL/K1SNhA8c8Fr3si/hq/Rx245JdB7rYbjYuFdqtabpnMos989UZn5TgA?= =?us-ascii?q?diBXhhhwkQ+5W/gGpO//+tjbrIao6uG2WaYsRuQY7QI7CHhlgpvrnl8jvc/Y2P?= =?us-ascii?q?tGRo3Sk4T//xhHI2SWt4bCzxl8Ne0OJpqwc7Zh7HUGKTIRJ3APPdqKc/kz+TJt?= =?us-ascii?q?MDHI6lNeBcMDeM0XM9DQmQBOjU3pQqtc+tDcGl+CBId5b9oo4HbvyDAp7Zs8Vf?= =?us-ascii?q?7t6CesKpDD815NP/1CjCJ2lNLBveQV2uTdCCwW4Xmfdhh0zTiPy4GXBPbs4eqM?= =?us-ascii?q?yN/VV1QcHi41SYtdJySN+RahRuWrkJXlSASU6tX8gJgmbkKfWmSxnLgZsqZLCe?= =?us-ascii?q?NAlj/70SZaFo/vgfKarcGh53ZWtl1IEYZz8QfKGL5FMZVhJBT0jM+rSVZgBiHn?= =?us-ascii?q?YsHbagIuuPaKxucL++h+OFHxZZUFLRIYy7L38n5VTgpySLHovlaWR/8RZMB8RP?= =?us-ascii?q?PCsH9V9ZpqK7UTM1iFuJzqsjBIpUg5AAA3br8wsjtadk7JkA1ORan0vL8Aig0B?= =?us-ascii?q?Ud92okJMHXy/OHg+5jXdT6hVireeCOAN+DWJUqMOS1loMj95Qx6txJpueaGmku?= =?us-ascii?q?xcv2xamSN9pPwq0z14SxumpS3jub4C2TI69LG/rjUBtmRPTv+CnCfQFVVD0PMK?= =?us-ascii?q?gL8ZC3bl71y8fHYDY5Xp7bliJMTv748h7GojYRQteC0GR+egCzrqg6OOHIOPrM?= =?us-ascii?q?pWhASRt8XWcb+zMS8SO6wyyR3/XHh9yRHSkgtn/mUNQzWg6sIkJYqmNMYqwyqn?= =?us-ascii?q?A27be0gW7qNOqsvxukYBTPEqZlN53GVjzs+HSzUPRMzIG2Y1iBIoZnlEcJJH9B?= =?us-ascii?q?8VCqgpgjeOvqld/QEUYSzZEpqk+onOh8jI3WQyTdZwymLQuKKFmosg0Gd5lNNs?= =?us-ascii?q?8i6OpHMSevTZU89yGHfz0JxSyejjZ/qws+AHT5BmxK6mUP8YPcmp4XG214lyWk?= =?us-ascii?q?+52rQeGEK0MO0dybfVXSelTXaVWOqRfGiKgTk5LlT+5R+2IV0rcM1KtVMyMvPe?= =?us-ascii?q?hp5AkA3sSbx0RiGXpV7V0mMjNecaehktuIegfQwKTfIea/KaJecw3P00EEEMYG?= =?us-ascii?q?PRHStqF++2tkagnIp7O3Rg+UX6ZuDt8gH6MNSMARQEFI/aroJr+fOkXG6BPmVg?= =?us-ascii?q?zBJqNklu6+jfD0gxtvNbc5uJgdjQhtF73PUZd/dsLSI9ucAcmoZ55YmSzsiKbQ?= =?us-ascii?q?nbzozuKtHNvviYH/rfwlwvemFbUboZYgT16p44PtEjWL3TGr1ZsgoaBaQgRpwu?= =?us-ascii?q?KXvx/rluLAxvag7ReKi0gs7yq+2QeJRUoWPW40krLCfYvB0D1uC0TRJlYJ+3nX?= =?us-ascii?q?nyJ4owRj1Zpd13FhRmBJdPG98Hrwe/G56Un6W7hMWr+0J0vO8KtaTwB+vP1NS+?= =?us-ascii?q?2IVxRIZV6lCRPDbWH6lrmUVljuK9gvva1ZnxE8zic8seVOdnWm7FdqPGHoKnJz?= =?us-ascii?q?KAJM38f09G86aC379iUxSRZSX5X6+Yuy2+MPVr/183yotifOrc1DYt9a3U2MPu?= =?us-ascii?q?Z2FHoSeutXCININF7FzLGePRQQlZSf+E8GZ5B60Yc5H49OAUMdwt2NKc+RV87C?= =?us-ascii?q?xe0MuZJKistkjM2kZlep/ANEvp3zw2WZIWIBS+LUQsnXXZpWrDDnhGKMirN9Vt?= =?us-ascii?q?is6PDhPx/0lxhX0tZmlZF2rsRNeRP3Ub2s2naA2O9QJLFMoDn/WsdE45rKKyT+?= =?us-ascii?q?5oNo9CmeWwu7UNicxpJD3XRMhGIyHQK6d7PiFPAeXLpVgoZAMEsrcyVok6eZiO?= =?us-ascii?q?IF0IMF2exiPq1wTPyk70eMK21KaPPikW9m5Iz6/K0TRWoAm5o/mZiNX5UL/FdJ?= =?us-ascii?q?H2QOLSMC09WzGfXzs9DUap+Vaiu/oDp/eYP2YfolYKbSKWCQ4ToL1vrNfKAm/U?= =?us-ascii?q?g+1jc4UAhOqGVCDoVC14iK0yCz5JtU+WQPoDEhLZYmT8gGpapAyiJvhM/W/qb7?= =?us-ascii?q?2Y2qpZQeoWDZVQcveBWdvXZeheJys0ljUeIOu8cMfToK0j0lLJU2QZF7LF9EOa?= =?us-ascii?q?TEGMWfycxi/rUZ8Tv4cqpioi4sjQkTNvE6TUI7afoCaj8oy9jCafo+3eTGgtY1?= =?us-ascii?q?cujeIEGmaBxQdPKGAeB9ESokHtTbaKZ1xQ23IxleJuxxgMdRxoUn1g131ZgPew?= =?us-ascii?q?F85CRF4KkmyuWvwGbVFwDDM250OK5BP9YcAYs8DJW2Be7qcMSZYaLPQw6onXP6?= =?us-ascii?q?0QwPIy0TJjviM1riudD1RHjg2Z7aXcBqR8yaNe5Tpww/YjRUyLQjXCYkDb24Gm?= =?us-ascii?q?DIRJ3i4ornf6k4LQv+ZwJP5BqopkGlYWEGdzIdzA+T1pT275wk2xsgy9ETDYJy?= =?us-ascii?q?gWsxgRIilQSutp1PJ8+DbBcNrIoReIuqQutUqtTAWGELy53LRKT8Xuywj+ciBI?= =?us-ascii?q?bC+iUZZ77PRVwoVBKZg7bJSzVgiSZjP1CRiV7mVVrBU=3D?= X-IPAS-Result: =?us-ascii?q?A2GJAwAuYdpY/wHyM5BdGwEBAQMBAQEJAQEBFgEBAQMBAQE?= =?us-ascii?q?JAQEBgwApgWyOZI8uAQEBAQEBBph0KIkmVwEBAQEBAQEBAgECaCiCMyKCSAI3F?= =?us-ascii?q?CALAwMJAhcpCAgDAS0VGAcLBRgEiCGBOAwBrnUmAoolDCaGCYlaCgcBhgEFhxU?= =?us-ascii?q?HgXuHSU6LMpJRim+GQAJIkyJYfAgkFnWEWB2BcmaHMA8XghcBAQE?= Received: from unknown (HELO tarius.tycho.ncsc.mil) ([144.51.242.1]) by emsm-gh1-uea11.nsa.gov with ESMTP; 28 Mar 2017 13:14:40 +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 v2SDDrsh009344; Tue, 28 Mar 2017 09:14: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 v2SDDHXP044080 for ; Tue, 28 Mar 2017 09:13:17 -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 v2SDDGxI009319 for ; Tue, 28 Mar 2017 09:13:17 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A1BeCgD2YNpYfUhhtcpdHAEBBAEBCgEBgyt6gRuOZI8xAQEBBpRghB0ahgiDI1cBAgEBAQEBAhMBARY5hkSBAD8SiEKBOAyudYpNMoYJiWSCcAyDDQWHFQeBe4dJTosyHJI1kS8CSJMiVoEFJBaEfVAdgXJmhzCCPQEBAQ X-IPAS-Result: A1BeCgD2YNpYfUhhtcpdHAEBBAEBCgEBgyt6gRuOZI8xAQEBBpRghB0ahgiDI1cBAgEBAQEBAhMBARY5hkSBAD8SiEKBOAyudYpNMoYJiWSCcAyDDQWHFQeBe4dJTosyHJI1kS8CSJMiVoEFJBaEfVAdgXJmhzCCPQEBAQ X-IronPort-AV: E=Sophos;i="5.36,236,1486443600"; d="scan'208";a="5995113" 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; 28 Mar 2017 09:13:12 -0400 IronPort-PHdr: =?us-ascii?q?9a23=3A4fWi/RUJOww80F0KoSvuQ4Dg0wHV8LGtZVwlr6E/?= =?us-ascii?q?grcLSJyIuqrYbBaOt8tkgFKBZ4jH8fUM07OQ6PG9Hzxdqs/Z+Fk5M7V0Hycfjs?= =?us-ascii?q?sXmwFySOWkMmbcaMDQUiohAc5ZX0Vk9XzoeWJcGcL5ekGA6ibqtW1aFRrwLxd6?= =?us-ascii?q?KfroEYDOkcu3y/qy+5rOaAlUmTaxe71/IRG2oAnLtcQbgYRuJrstxhDUvnZGZu?= =?us-ascii?q?NayH9yK1mOhRj8/MCw/JBi8yRUpf0s8tNLXLv5caolU7FWFSwqPG8p6sLlsxnD?= =?us-ascii?q?VhaP6WAHUmoKiBpIAhPK4w/8U5zsryb1rOt92C2dPc3rUbA5XCmp4ql3RBP0ji?= =?us-ascii?q?oMKjg0+3zVhMNtlqJWuBKvqQJizYDaY4+bM+Fzcr/Bcd4AWWZMRNpdWzBHD4ih?= =?us-ascii?q?b4UPFe0BPeNAoofjuVQOsQC+BRSrBOjyyDFHnHn20rAg3O88FgzGxBIvH9QBsH?= =?us-ascii?q?TJrdX1Mr4eUeOrw6nSyzXMcfdW1Cz+5oTRdhAhpu+MUqxqfcTM1UQhEg3KgEmM?= =?us-ascii?q?pID/OTOayP4Bs2qD7+d5U++klm0pqxlprzSx2ssglJPFip8Wx1zZ7yl0xIQ4Kc?= =?us-ascii?q?e6RUJledKoDYVcuiCAO4doXM8vQXtktDs1x7AEo5K3YTUGxIkhyhXCcfKIaZKI?= =?us-ascii?q?7QjmVOuJITd3mnZleLWnihe8/0mhxPPwW8iq3FpQtSpKiNrMtm0X1xPJ8MSHTO?= =?us-ascii?q?Vy8l2j2TaXzwzT6+dELl4olafDNZIt3qA8moAOvUnAAyP6gkH7ga2Mekgm5OSk?= =?us-ascii?q?8+Hnba/npp+YOY90kAb+MqE2l8ynH+s4NAcOX3Wa+eS6zbHj/lP2QK9MjvIolq?= =?us-ascii?q?nUq5HaKd0fpq6+HQ9azJwv6w2lADelzdQYh2MIIEhDeB2ZlYTpOUnOLOjiDfij?= =?us-ascii?q?m1SsjCtrx/feM736HJrNKnnDkLH8fbdy8ENc1Aoywsxf55JTEL0BJunzVVXruN?= =?us-ascii?q?zXCR85LV/8/+GyE9h514UDSUqTE6SZN+XUqlbO6eUxZ6GIZYkIqHPmJvM4/f/y?= =?us-ascii?q?nDo8nlMAeaSBw5Qacja7E+5gLkHfZmDj0fkbFmJfggciV/HtwH2LVzJaLyKqUq?= =?us-ascii?q?Qz+zA9TYGrF4HOQqiMxbiGwir9JbR1W1pvTFaBV3XwIdbXE8wQYT6fd5cy2gcP?= =?us-ascii?q?UqKsHtcs?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0FbBwAuYdpYfUhhtcpdHAEBBAEBCgEBF?= =?us-ascii?q?wEBBAEBCgEBgwB6gRuOZI8xAQEBBpRghB0ahgiDI1cBAQEBAQEBAQIBAhABARY?= =?us-ascii?q?5L4IzIINCgQA/EohCgTgMrnaKTTKGCYlkgnAMgw0FhxUHgXuHSU6LMhySNZEvA?= =?us-ascii?q?kiTIlaBBiQWhH1QHYFyZocwgj0BAQE?= X-IPAS-Result: =?us-ascii?q?A0FbBwAuYdpYfUhhtcpdHAEBBAEBCgEBFwEBBAEBCgEBgwB?= =?us-ascii?q?6gRuOZI8xAQEBBpRghB0ahgiDI1cBAQEBAQEBAQIBAhABARY5L4IzIINCgQA/E?= =?us-ascii?q?ohCgTgMrnaKTTKGCYlkgnAMgw0FhxUHgXuHSU6LMhySNZEvAkiTIlaBBiQWhH1?= =?us-ascii?q?QHYFyZocwgj0BAQE?= X-IronPort-AV: E=Sophos;i="5.36,236,1486425600"; d="scan'208";a="4357794" X-IronPort-Outbreak-Status: No, level 0, Unknown - Unknown Received: from www262.sakura.ne.jp ([202.181.97.72]) by emsm-gh1-uea11.nsa.gov with ESMTP/TLS/DHE-RSA-CAMELLIA256-SHA; 28 Mar 2017 13:12:59 +0000 Received: from fsav405.sakura.ne.jp (fsav405.sakura.ne.jp [133.242.250.104]) by www262.sakura.ne.jp (8.14.5/8.14.5) with ESMTP id v2SDCsp7020964; Tue, 28 Mar 2017 22:12:54 +0900 (JST) (envelope-from penguin-kernel@I-love.SAKURA.ne.jp) Received: from www262.sakura.ne.jp (202.181.97.72) by fsav405.sakura.ne.jp (F-Secure/fsigk_smtp/530/fsav405.sakura.ne.jp); Tue, 28 Mar 2017 22:12:54 +0900 (JST) X-Virus-Status: clean(F-Secure/fsigk_smtp/530/fsav405.sakura.ne.jp) Received: from ccsecurity.localdomain (softbank126227147111.bbtec.net [126.227.147.111]) (authenticated bits=0) by www262.sakura.ne.jp (8.14.5/8.14.5) with ESMTP id v2SDCmwK020938 (version=TLSv1/SSLv3 cipher=DHE-RSA-CAMELLIA256-SHA bits=256 verify=NO); Tue, 28 Mar 2017 22:12:53 +0900 (JST) (envelope-from penguin-kernel@I-love.SAKURA.ne.jp) From: Tetsuo Handa To: selinux@tycho.nsa.gov, linux-security-module@vger.kernel.org Subject: [PATCH] selinux: Use task_alloc hook rather than task_create hook Date: Tue, 28 Mar 2017 22:12:52 +0900 Message-Id: <1490706772-8013-1-git-send-email-penguin-kernel@I-love.SAKURA.ne.jp> X-Mailer: git-send-email 1.8.3.1 X-Mailman-Approved-At: Tue, 28 Mar 2017 09:13:52 -0400 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: Tetsuo Handa MIME-Version: 1.0 Errors-To: selinux-bounces@tycho.nsa.gov Sender: "Selinux" X-Virus-Scanned: ClamAV using ClamSMTP This patch is a preparation for getting rid of task_create hook because task_create hook which can do what task_create hook can do was revived. Creating a new thread is unlikely prohibited by security policy, for fork()/execve()/exit() is fundamental of how processes are managed in Unix. If a program is known to create a new thread, it is likely that permission to create a new thread is given to that program. Therefore, a situation where security_task_create() returns an error is likely that the program was exploited and lost control. Even if SELinux failed to check permission to create a thread at security_task_create(), SELinux can later check it at security_task_alloc(). Since the new thread is not yet visible from the rest of the system, nobody can do bad things using the new thread. What we waste will be limited to some initialization steps such as dup_task_struct(), copy_creds() and audit_alloc() in copy_process(). We can tolerate these overhead for unlikely situation. Therefore, this patch changes SELinux to use task_alloc hook rather than task_create hook so that we can remove task_create hook. Signed-off-by: Tetsuo Handa Acked-by: Stephen Smalley --- security/selinux/hooks.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c index d37a723..d850b7f 100644 --- a/security/selinux/hooks.c +++ b/security/selinux/hooks.c @@ -3710,7 +3710,8 @@ static int selinux_file_open(struct file *file, const struct cred *cred) /* task security operations */ -static int selinux_task_create(unsigned long clone_flags) +static int selinux_task_alloc(struct task_struct *task, + unsigned long clone_flags) { u32 sid = current_sid(); @@ -6205,7 +6206,7 @@ static int selinux_key_getsecurity(struct key *key, char **_buffer) LSM_HOOK_INIT(file_open, selinux_file_open), - LSM_HOOK_INIT(task_create, selinux_task_create), + LSM_HOOK_INIT(task_alloc, selinux_task_alloc), LSM_HOOK_INIT(cred_alloc_blank, selinux_cred_alloc_blank), LSM_HOOK_INIT(cred_free, selinux_cred_free), LSM_HOOK_INIT(cred_prepare, selinux_cred_prepare),