From patchwork Wed Apr 26 15:02:16 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sebastien Buisson X-Patchwork-Id: 9701555 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 C4D986032C for ; Wed, 26 Apr 2017 15:27:08 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id B6D221FE95 for ; Wed, 26 Apr 2017 15:27:08 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id AA5B22029C; Wed, 26 Apr 2017 15:27:08 +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.8 required=2.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, RCVD_IN_DNSWL_NONE, T_DKIM_INVALID autolearn=no version=3.3.1 Received: from emsm-gh1-uea10.nsa.gov (smtp.nsa.gov [8.44.101.8]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 16EE21FE95 for ; Wed, 26 Apr 2017 15:27:07 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.37,255,1488844800"; d="scan'208";a="6363495" IronPort-PHdr: =?us-ascii?q?9a23=3AIXI+lBH/7RfcxFKuqra6sJ1GYnF86YWxBRYc798d?= =?us-ascii?q?s5kLTJ79pcqybnLW6fgltlLVR4KTs6sC0LuI9fy8Ejxbqb+681k6OKRWUBEEjc?= =?us-ascii?q?hE1ycBO+WiTXPBEfjxciYhF95DXlI2t1uyMExSBdqsLwaK+i764jEdAAjwOhRo?= =?us-ascii?q?LerpBIHSk9631+ev8JHPfglEnjSwbLdzIRmsogjcucYajIhsJ60s1hbHv3xEdv?= =?us-ascii?q?hMy2h1P1yThRH85smx/J5n7Stdvu8q+tBDX6vnYak2VKRUAzs6PW874s3rrgTD?= =?us-ascii?q?QhCU5nQASGUWkwFHDBbD4RrnQ5r+qCr6tu562CmHIc37SK0/VDq+46t3ThLjlS?= =?us-ascii?q?kINyQ98GrKlMJ+iqxVqw+lqxBm3oLYfISZOfxjda3fYNwaX3JMUMZPWSJcDI2y?= =?us-ascii?q?bIwBAOgPPeZArYTxulUDogWlBQS3GO/j1iVFimPs0KEmz+gsFxzN0gw6H9IJtX?= =?us-ascii?q?TZtMj7O7kJXu+v16nI0TTDYO1Q2Tzg9YXIbxEhoeqXXbJ3d8ra1E4iFxjegVWN?= =?us-ascii?q?qIzlJCiV1uMLs2SB8uVvSOSvhnUoqwF0uDevx8MshpPViYISz1DJ7CN0y5s2K9?= =?us-ascii?q?2gUEN3fNGpHZRKuyyaKod6WN0uTm52tCog17EKoZC2cSwQxJg62hLTd+aLf5aU?= =?us-ascii?q?7h7/TuqdPDh1iXR4c7ylnRmy61KvyujkW8mx11ZFszRKn8HXtnAIyxzT8s+HSu?= =?us-ascii?q?Zh/ku52TaAyQTT6uZcLEAoj6XbMZ8hwqMrlpYJrUTCHjP5mEXxjKOMcEUr5vOo?= =?us-ascii?q?5Pj9brXjp5+cM5d4igD4MqswhsyyGfk0PwcBUmSB+emwyafv8VP2TblUlPE6j7?= =?us-ascii?q?HVsJXAKsQaoq65DRVV0oEm6xunFDepztAYnXgBLFJYdxOLlpPmO1bTIPD+Efiw?= =?us-ascii?q?nU+snSx3x/HGIrLhApLNImLFkLf6Z7lx8UFcyA0tzdxH/ZJbFqkBIO7vWk/2rN?= =?us-ascii?q?HYDBg5MwquzOb7CNVyzIUeVHmNAq+eNqPStEWH5vkzI+aSfo8VoyzxK/8/5/7h?= =?us-ascii?q?lXU5g0MSfbG13ZsLb3C1BvZmI0eDbnXwgdcBCmAKvgw/TOz0k1CCXzpTZ2u9Xq?= =?us-ascii?q?0n+zE7Dp6mDZrZSoCqmryB0z+xHodKaWBeFlCMDXDoep2cW/gScy2dPMlhkj0Y?= =?us-ascii?q?VbimUIIh1A+huxHkxLZ9KerU4CIYv4r51Ndp/+3TiQ0y9TtsAsuA1GGNSWd0kX?= =?us-ascii?q?4WSD8y3aByulZyxUmZ0ah/mfBYEsZT5/xRWAcgKZHc1/B6C8z1Wg/ZY9iJVEyp?= =?us-ascii?q?Qs+9DD4tSdIxxsMBbFxmG9W+lBzD2TSlA6MNnbyRGJM06r7c32T2J8tlynbG0r?= =?us-ascii?q?UhgEciQsRRMG2pmLJ/9xLTBoPSlEWZj7ildaIZ3CHX9WeDyXGBvEZXUQJqVqXF?= =?us-ascii?q?R38fbFPMrdvl/kPCU6OuCbM/PwpByM+CLa1KZ8bsjVVCXfvjOdLeb3i3m2iqHx?= =?us-ascii?q?aIxbKMbJT0dGkH2iXSFlQEmRgJ/XmaLQg+Gjuho2XGAT1gFFLvZ0bs/vdkqH6g?= =?us-ascii?q?QE870RyFb0p717Wv4h4Vn/ucS/EN0b0YpCctsTJ0HEyy39jOEdqPuxJhfLlAYd?= =?us-ascii?q?M6+FpH23jZuBZ7PpO8LqBinUUTcwFvv0Pvzhl3EYtBkdMwoHMt1gpyJrqS0Eld?= =?us-ascii?q?eDOAwZDwJrrXJ3Hx/B+1aK7W3Uze3c2V+qgV6/Q4rEjjsBuuFko4/HVty8NV3G?= =?us-ascii?q?eE5pXWEAoSVor8XVwq+BhgprHVfDM96pjO2nJwNKm4qDjC28gmBOE90BavY89f?= =?us-ascii?q?ML+YFA/1C8AVG9KhKOg0lFiychIFPOdS+bUvP8y6dvuJxqirPPphnD28l2hH5p?= =?us-ascii?q?5y0l6U/SpmVuHIx4oFw+2f3gafTDf8gk2hssfsmYBYfjwSBWy/yS/qBY5UfKJy?= =?us-ascii?q?e5wHCWGwLM2r3t9+nYLiW2ZE9F6/AFMLwMGodgCWb1zhwwJQz18XrGe5mSSm1T?= =?us-ascii?q?x7iCwprq+F0CzJ2eTiewINOnRXS2l6kVfsPY+0gsgGXEe1cgcplQGq5ULhyqdH?= =?us-ascii?q?o6R/KnXcTl1TfyjqNW1iVLW/tqaaac5V9JwoqTlXUPi7YV2CVL79ogcV0z/kH2?= =?us-ascii?q?tE3jw0azGqupL/nxx1k2+dKHdzrHzDdsFqwhfT/tvcReRe3jAeXil3lSHXBkSg?= =?us-ascii?q?P9mu5diUk5bDsvuiV264TZ1cby3rzYKGtCum6mxnGga/n+iymt3hEAg1zTT728?= =?us-ascii?q?NsVSrWsBb2epPr2LiiMeJ7YkloA0fx69B9GoF6los/mosQ1mQdhpSb5ncHinrz?= =?us-ascii?q?PslA2a7ka3oNXzELycbP4Af5wE1jMm6Jx4XhW3WF2MRhet26bnkM1S4n9M9KD6?= =?us-ascii?q?OU7KBDnStzuVe4qB7dYf56njgB0/cu7mAVg/0Rsgo30iqdGqwSHVVfPSH0lBSH?= =?us-ascii?q?8da+rL5MaWasb7ew0lF+nda/A7GeuA1cX2z5epg6Fy9q8sp/KE7M0GH06oz8YN?= =?us-ascii?q?nfd88TthmKnBfYledVLo4xmeQQhSd8JGL9pmMqy/QgjRB0xpG6u5WHK39x862n?= =?us-ascii?q?DB5YMSf1Z8wN9T33i6ZRgNqW1Zi1Hpp9AjULQIfoTfWwHTIMs/ToKh2DECM6qn?= =?us-ascii?q?iGGbrTBwmf51l6r3jXCZCkK2mXJGUFzdVlXBSdPFZQgB0QXDghgpE5Fxyqxcz4?= =?us-ascii?q?fEd3/D8R4ET0qhxWyuJnLxP/SHvQpB+0ajcoT5iSNBlW7wFG50jLKsGe6+VzHy?= =?us-ascii?q?9W/pK/sAyNNmybZwNNDW4XQECEAU7sPqW279na7+eYHva+L+fJYbiWp+xRTfGI?= =?us-ascii?q?xY6o0otj5DuMONuAMWRlD/0hwEVDRWp5G8PbmzoRVyMXizjBb8mBpBez4id3tN?= =?us-ascii?q?yw8Oz3WALz4ouCE6FSPshy9B2tjqeDMuGRiDx/KTlGypMG3WXIx6QH3F4OlyFu?= =?us-ascii?q?cCGgEa4auS/DVq7Qn7VYDxocayJzL8ZH9b4z3gxXNc7ckNP12aZyjuQpBFddSV?= =?us-ascii?q?zhhsapaNQEI2GnKlzIGV2LO66AJT3XxMH3erixRqdMg+VRrRGwviybE0D7NDSZ?= =?us-ascii?q?izbpTwyvMf1LjCyDOhxeopuycg51CWX4QtLmawe7MMRrjT04wL00gGnFNWgAPj?= =?us-ascii?q?h9aUxNqqec7SRCgvVwA2ZB9GZqLfGYmyaF6OnVMosZseB1DStumOJa+m41y6VO?= =?us-ascii?q?4SFfXvN1mzbSrsR0rF28lumP1zxnXwBUqjpSmIKLukZiOKXe9pVaX3bL4g4N53?= =?us-ascii?q?2KCxsWv9tlFsHvu6dIx9jJlaLzLDNC/MzP/cYHHcfbNtiHMH07PRruAj7UAxMP?= =?us-ascii?q?TSS3OmHHm0xdjPaS+2WOoZg7pZjsn5wOR6RGW1MrDfwaC15qHNoYLJdwRDMknq?= =?us-ascii?q?aRjNQU6nqmsBnRWMJas4jdWfKdG/rvNiiWgKJDZxsQ37z4K4ETOZf620xmcVZ6?= =?us-ascii?q?m4vLF1DXXdBXrS1rdhU0r1lV8HhiUm0z3Froah+q4H8WD/K0hBk2iwpgbuQr7z?= =?us-ascii?q?js+VA3KUTJpCYrjEYxntDljiyLfz7qMKe8R4dWBDTot0IpKJP0Xx51bRGunUxj?= =?us-ascii?q?LDrEQaxegKFkdW1wiw/cvoBPGeJGQq1Cex8QxvCXa+8u0VtCtiWt3VVH6vfdCZ?= =?us-ascii?q?t+iAsqdoahr2he1AJ4ctE6P7bQK7ZJzlVLna2OvzWo2f02wA8QP0YN6n2deS4S?= =?us-ascii?q?tEwOKLYmOzKi/vZw5gyahztDZG8MWuI3rf1w6EM9OvmPzzn73rFZMECxLeufLq?= =?us-ascii?q?2Cu2feicGIX0kw1kIUl0hF57R219ksc1aMXUA10LSRDwgJNdbFKQxNa8pS82LT?= =?us-ascii?q?cjiIseTMxpJ4JIq9Fub1TeOUs6YUmE2kFh4zH4sQ9sQBAoWs0EbAIMf8MrEFzR?= =?us-ascii?q?Qt5AL2JFSKF/lGZBWLkDIbrM6l1593wZNRJjcDDmVhKS+3/KrYphc2gPqfW9c7?= =?us-ascii?q?emoVUZcBNnIxXs26hzNVsm9eDDapyOIZyQmD7zj6pijKCjnzccZjbu+OZRxwEN?= =?us-ascii?q?G25Sk/86+uhF7U6JXfJ3v1NdJ+ut/P8u4aqJGHC+tIQrVntUfThZVYTWSwU2HT?= =?us-ascii?q?Cd61O4Twa440YNzoC3a6V1u/iy41T8bxJ9uiM6mIgAHySolPqoWb2i4sNdOlHD?= =?us-ascii?q?EEBxhwv/0D5L57ZQAbbJo7ewTntwIiN6GkIQeY1duvQ2CxKTtWUfZfzOO6Z6BJ?= =?us-ascii?q?wCo2dOO6zmUvTo0ixemt7UENXI0Kjg3Zxfu7fYZeVSnzFWBDdArXoCo4l25hNu?= =?us-ascii?q?E0wugl2x7HqlgcPCqNdOBwZmxEosswBVWMLnVqEmA4XUOTjZLf4g6w2LAf5zBS?= =?us-ascii?q?kMhS0eBeqnfxo4Hfbyy2WKyws5rVqSohYcIho61rPozpOtGGu4/GnjzDUJnQtR?= =?us-ascii?q?WIUDS8F/pbhtdQICVYQP1TmW89IMIIpJBP5FY2WMolO7NPD6wsqaywZjp/ES4e?= =?us-ascii?q?1ykZWJ2c3DYamOezx6PalguMcJQlKBELrJdCjcEBXCNtfiweo6ujV4HXl2CaUG?= =?us-ascii?q?gLPBkc4hhM5A4akY9wZO/l6pLSTJBQ0z5Wv+50UizTG5ly7VT7UGaWjkPjRfW9?= =?us-ascii?q?ieymxxxSw+zo0tkaXh5/Bkxdx+dZlksoNLF3JbMfvpTPsjOSc0P1on7twvO8JF?= =?us-ascii?q?ZN0c3Ua0H4DI3duGvySCET5X0URY5KyHHeD5sSkBF0aKc1q1pSPo+qYEH+5yYr?= =?us-ascii?q?x45xBbm3Sdirx0o5rXYBXyqqC91BC+V8v1LNVjxlZJSrqJv+NpVXRW9Q/4adpE?= =?us-ascii?q?lFn0V3NC650oFcK8BL4j4DRjRPpi+dvNSqQs1ZxcB2F4MMIst4u3rlAqxEIoWR?= =?us-ascii?q?o3sstrzs0XLZ+jE8sFamxDqoAaO4SfxW/3EGEAUzO2ueslUvD/cr8mrK7lDNtV?= =?us-ascii?q?V08vxHBrSTiEV+uyxxHpZQCTZVzXqlNUh8TGFas+VGL6TYa8xcTOMoZRC1Pxwx?= =?us-ascii?q?COUr0FGX8kFshXf2fShyuRVA+yzHWAk0TyYViK/3mTICssGnJSMaS5VQYDUjaC?= =?us-ascii?q?fKNRmWlj1JsxZEdU5qQYwZDchY9L0B24tb4NbCQ162KS4ZRBxiKh440f1HmEFY?= =?us-ascii?q?vkWXZTzRAAi1efvBqRB4YcCRrMu1I/vj5wdHlpnrsOYm+KUfX3emgxGiQcjCr4?= =?us-ascii?q?/gsd2HrlGOe7nlPO28e3DBUCPBjRS3hbc6EZbG4TTcMA1GJJZk03YkZ4buCXLT?= =?us-ascii?q?NxRcO60bP1ZbVbx9adheuuBafNNkd7wU9q9xHR+HXRTvGJG1rPZaMFnTQyjeLz?= =?us-ascii?q?+b/ey7u47T6qbdSef4bMyW23nHW753Pot96TTjB7fqy5FR9VTr1fp260N6TUTG?= =?us-ascii?q?Mzqbo9T/JwML482ieVX+vpEzGjPWGphwmmL3xk5cb8oXXzGq8JMAxZNc8nnwTe?= =?us-ascii?q?Z43VbvsO1O7bZr85I647Z3xseoPqfdNe5VsVd5DRSOAAVl6IktCnBlR29Neu8R?= =?us-ascii?q?NOvRfaMBgMDsse/3DasX6AaR++NDd9vKPETBmtS7CjGASBxLgAYBpiQcLguHzf?= =?us-ascii?q?KFnLV0Scm9r+jjxk0t+0S+LgIBzL1154eL4KyIpOHNbxvW0LcLRLPnRt/pobQq?= =?us-ascii?q?oEOS4ucolLgQdWxpewenCvQSVtYBxmf8yqAn1S0sE97CH7Lk/P5MSXc5kyn9lJ?= =?us-ascii?q?9jBFoWG+kbHbyR8YRZhGc4lPTTNscKfaBahmaPCRmkH6cEyX6v8CaXIW9lghTU?= =?us-ascii?q?3xHxR2Oz4kX2ojVjQSvQ1dfjj1ZaVqWqBUdIQSWlI0h4sCmAPADwrtr4pbw17F?= =?us-ascii?q?0qMmzjrN+NkWyhOLVLH83wOtOROiw0pFMNg503WNOvxY4aGd2nINcS63FydP3e?= =?us-ascii?q?5H23kyVZuadIm5Le4t2J+vXQBXSgi7aaq7CNyT1DxHg3o0ww6te6Nv7U/92KWf?= =?us-ascii?q?Oo12QPQChjpwvNRRm1qqbUr1oMI0yEzF/LmJAWPtFexXQ4zVvp5PY5T9I86gpe?= =?us-ascii?q?DZ3NZ+gYqjDtIjT0zkiQY8ktWimYzTRXAkr/EUNkF6gkxGLwoMXJmG/S+10pQ4?= =?us-ascii?q?l9bEnnigJ3DoomM0It6V4XwiUZHQgLdx+bEKmiBV75IoscSUgDdROH0aC7eqY2?= =?us-ascii?q?x0J82K+g6fTIbeNiG6oCKOpSghSJnFhBFZIcqbceT65ke19B6K7XoRDvBJPmX/?= =?us-ascii?q?j9m3s/L/+1QsFG8cABrXQi/wK/SgG85pdE8rkUloqHdrNeYZjLpsBz9V1r5TkV?= =?us-ascii?q?dixCmBJ/lQ+2UfgApOD/5djWqIKo5fyyVKkxR+UW+R80B359j5fpm1Asv9XX1+?= =?us-ascii?q?ZaSo3IhoXy6xhNLGSWuInG0xl9J+0OK5iofLp69HUIOTIeJ3QQMtqScfU85DVt?= =?us-ascii?q?MDrL7VxYHswMfc8YPNbKmQ1Mlk3pQq9c9s7BFV+eFYh+bN0n72v4yDA07ZszSP?= =?us-ascii?q?3g5yWsJZDC9V1NOe1MjDl0ntLYuOcV2ebSCDQQ4XSBZBh62DmCxIeRC/bw5uiM?= =?us-ascii?q?zNDUV08YES42SYhdOSGC9RahRuWriJXjShmU5dPrgJIiaEKQQWS8nKsbvaZKDe?= =?us-ascii?q?5AjSL70j9FFo/rg/KVstys6HZYt1BcFIZ88wfFGaVFMZlhPxT3iNWrTFBmBiTj?= =?us-ascii?q?YMHUagYuuO2Oy+cK4uVxK0z+ZYsBLRIf0b766H1VTgx1SL7tpVuZWO0cZdR8RP?= =?us-ascii?q?PDtHBV5ppqK7UTM1iFuJzqsjBIpUg5AAA1c78wtSVWeFTBkgNTWqb0vqMAiwQH?= =?us-ascii?q?XN52vE9DA2SwN3wk6zrAT6RVg7GbCOYJ/TWLUqwOT0JoPzt8QxOy2JVufaGlku?= =?us-ascii?q?xHsmNCgyNyvfkr0z1gRBunui3sprkA2Swh+LGmrjoBvWFKTuSEnyfOF1pD0OwA?= =?us-ascii?q?jb0ABHb69Vy8fH4DYZPz4Ll5P8vg85Is43AiYRo+fi0GWv+gBzv3j6OSDYyFqM?= =?us-ascii?q?hciwKVuMXScb+zKjAfNrYjxhLtSXh91hPTnRhy/2sNXDqg8MUoJIOjNsY53iCo?= =?us-ascii?q?A3TUdE4Q4qNVt8v8rVELTO8xaVJv3mpj1syHSzYWRMzIHWY1jxQrZX9CcJ1d9R?= =?us-ascii?q?8QD7MojSqQvqla4gEUZy/ZEoal+ojQhcfI3n09TdZ2xm3IvaCFg5Iq0GF/m9xq?= =?us-ascii?q?9CKOv24Sd+PAWc92HnfzzptfyfD5Z/i1veAHVYpmx6mmUPIZLsmj43W52JN2Wk?= =?us-ascii?q?C/wrQRBVy5P/MCxrjBSSulT3OXWfiTeWiWgzk5KlLy5QWvLlAvdMdKrko9P/De?= =?us-ascii?q?hp5diwLhUq17RiGKqV/d0mMjLfsQdxgqt4e/ZwwKUOkRavCZJegvw/0+C1wMYm?= =?us-ascii?q?TLHSRsCO+2tlitk5Z9O3l650X1f/jt+Bj8MNSOAhkEDZLarplp9POhWG2BP2Ng?= =?us-ascii?q?wQZpPElw8OffC0gxtvFCfJmMh9TQgM570eEdffd3LSI9osITmp5k6YSM3seFbx?= =?us-ascii?q?XRzpfqJd7LufWZAvzfz0Evem5ESLoZZR366589Pt4jVL3ZBaFZsggEBagmXJwh?= =?us-ascii?q?MH/89a9sLANpcw7eeKq7j9LvpuKKeptUvWHZ4kg3LCfGtB0J0ua0QhBjb5C2m3?= =?us-ascii?q?XyJ4g9RjVFr9JzERZmBI9PFNkbrwq7Ap6bhL27i8Wv9ExkoeMKt7T/CuzS3tSj?= =?us-ascii?q?w4pxR4Ra5VCMPDvJAKlrg0Jljvm9g/vZ1pnxCNjiec8fVOVgQ27KcLnGHoKlJj?= =?us-ascii?q?KJIML8dFZM86SA37JhThWReCf5UrKdtCK6MPVk4EM7ypF3febUwzIt87Hb18Xo?= =?us-ascii?q?Z25Fviest2WENJhB41zQA+zRQRZURuGY8GZqB6EXapH09OgWO9w43Nec+xVz7C?= =?us-ascii?q?hF0MadJqiutFPD2kJ6dZLdK0vkwDg5WYgMIBuhNUssgGnZqmnSAHhGKcikM8Zt?= =?us-ascii?q?is6PDhPx/0lxhX0tZmlZF2rqX9iROm8b1NmlaQ2X8gJLE9YDn+mqeU43tq2yVf?= =?us-ascii?q?NkOpNbluW2rL8Hi8pmKznTRMhGOCHdNKR5MSFWAuXLpVgoeQIEs6MvVocue5eB?= =?us-ascii?q?PFkLMFyexiP2zAvC11D0dtO32amVICcW6GhHz6nf3TlCvQa5pe2ZgsrlULzDa5?= =?us-ascii?q?H2RvHSOjI/Vj6GXTQyDVqp+VC8tvoLpvWXOn0folEKbSKWEwMTuKRvosLLDm/S?= =?us-ascii?q?hO1vZpsKi+6GWyroUi13iLIyBjpXtUCLW/cDFwzWb3j7gGpGuQyiPeRB/XT/YL?= =?us-ascii?q?2d2KVVWvYaAoxWcv2WW9HYY+xRJy80ljUFP+axZ8bcr7g80l3UTGYUELLF9EOA?= =?us-ascii?q?Q06MQ/ydxjXrXYMPs4gypCUo5sranjVrHKTQI7afuzmu/5a6jCafv+3eUnIgY0?= =?us-ascii?q?krj+0fDmmBxwNAJ30aBN0PvkHiXLKANA5w0yctiORzy1oXdQ9uSHxywzhTm/qg?= =?us-ascii?q?HsBxV1EZliWtTecAYVQxCyk/uQeO4wvvcZkDtNrVSmt26LQBU8weIeMu5Y2RP7?= =?us-ascii?q?EfhL4y0TZnpjEqmzmMBFNayASe+uzfG7wv6KdF4DwD8vt/RV2OTjWXWHXG0ZGh?= =?us-ascii?q?DYob3i1zoGv/0MySsuxrHLRfroB9RlwNBHQldZjm4TldXDSsi0OJtBGhEWHbeW?= =?us-ascii?q?oU?= X-IPAS-Result: =?us-ascii?q?A2EQAgBYuwBZ/wHyM5BbGgEBAQECAQEBAQgBAQEBFQEBAQE?= =?us-ascii?q?CAQEBAQgBAQEBgyqBbY5xmWeOJzoqiilXAQEBAQEBAQECAQJoKIIzIg1GKS8BA?= =?us-ascii?q?QEBAQEBAQEBHwIrJQEBGQYBAj0BGx0BAgECCQEBBRIxCAMBHxEBBQEcBxIFiX0?= =?us-ascii?q?BAxQBnX4/jgwFARwmAoJiBYNlChknDVaDCQEpAgYShDKIRIkIAQSREYw9kw2CA?= =?us-ascii?q?IhpJwyGQJJfM4EVWIEHJx0hhTcPDBCBcmaGOiuCEAEBAQ?= Received: from unknown (HELO tarius.tycho.ncsc.mil) ([144.51.242.1]) by emsm-gh1-uea10.nsa.gov with ESMTP; 26 Apr 2017 15:27:03 +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 v3QFR24u021812; Wed, 26 Apr 2017 11:27: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 v3QF3QYR160402 for ; Wed, 26 Apr 2017 11:03:26 -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 v3QF3N6X014020; Wed, 26 Apr 2017 11:03:25 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A1DrAgDqtQBZekFTfUpbGwEBAQMBAQEJAQEBhUKOcZlnjmqGJAKEJFcBAgEBAQEBAhMBAQkLDAcohUUDA0ABGx0BAwwGSyMRAQUBHAcSigIBAxQBnXE/jgwFARyDCgWDZwoZJw1WgwkBAQEBAQEEAgEdAgYJAQiEMohEiQgFkRGMPZMNggCIaTOGQJJfM4EVgV4nHSGFNw8MEIFyZoY6K4IQAQEB X-IPAS-Result: A1DrAgDqtQBZekFTfUpbGwEBAQMBAQEJAQEBhUKOcZlnjmqGJAKEJFcBAgEBAQEBAhMBAQkLDAcohUUDA0ABGx0BAwwGSyMRAQUBHAcSigIBAxQBnXE/jgwFARyDCgWDZwoZJw1WgwkBAQEBAQEEAgEdAgYJAQiEMohEiQgFkRGMPZMNggCIaTOGQJJfM4EVgV4nHSGFNw8MEIFyZoY6K4IQAQEB X-IronPort-AV: E=Sophos;i="5.37,254,1488862800"; d="scan'208";a="6030967" 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; 26 Apr 2017 11:03:24 -0400 IronPort-PHdr: =?us-ascii?q?9a23=3AshPUsxSwToMKdD+dgJI0wPtAh9psv+yvbD5Q0YIu?= =?us-ascii?q?jvd0So/mwa6yYhyN2/xhgRfzUJnB7Loc0qyN4v6mBTBLvsfJmUtBWaQEbwUCh8?= =?us-ascii?q?QSkl5oK+++Imq/EsTXaTcnFt9JTl5v8iLzG0FUHMHjew+a+SXqvnYdFRrlKAV6?= =?us-ascii?q?OPn+FJLMgMSrzeCy/IDYbxlViDanb75/KBS7oR/eu8QZjodvKKI8wQbVr3VVfO?= =?us-ascii?q?hb2XlmLk+JkRbm4cew8p9j8yBOtP8k6sVNT6b0cbkmQLJBFDgpPHw768PttRnY?= =?us-ascii?q?UAuA/WAcXXkMkhpJGAfK8hf3VYrsvyTgt+p93C6aPdDqTb0xRD+v4btnRAPuhS?= =?us-ascii?q?waMTMy7WPZhdFqjK9DoByvuQFxzYDXbo+SNvV+cLjQcc8GSWdbQspcTTBNDp+6?= =?us-ascii?q?YoASD+QBJ+FYr4zlqlUTsxSxHhOjBPjzyj9JmHD227Ax3vk8EQHHxwwgBNUOsH?= =?us-ascii?q?LJp9jyL6cdSv21zKjTzTXYaPNW3y3x55XVfRAnuvyMUrdwftDQyUkrDQ/KklKQ?= =?us-ascii?q?qYn8Mj6Ty+8DsHCb4vJiWO+gkWIrth99rzi1ysovhITFnIMYx1Dc+Sh3xIs5P8?= =?us-ascii?q?C0RFNnbdK+Dpdcqz2WO5FrTs4tRWxjpTw0xaccuZGheSgH0JQnyADba/yAa4WI?= =?us-ascii?q?5wjsVOeVITthnHJld66ziw+88UWhyuDwTMa00FFNripKltnDqGoB2ADU6siCUv?= =?us-ascii?q?d9/0Gh1iiT1w3L6OxJLlo4mbfFJ5Mh2LI9lZQevV7CEyL2gEn2ibWZdkQg+uim?= =?us-ascii?q?8eTnZbDmq4eHN4BvlwH+M78umte4AeQ+KAQBQnWU+eKn2b3s+E32WrRKjvksnq?= =?us-ascii?q?bFt5DaINwXprSlDA9NzoYj9xG/Ai+90NsGmXkHLVRFeA+IjoXyJ1HPIOz3Dfe4?= =?us-ascii?q?g1i2ljdr3OrJMqfuApXKMHjJiK3hcqpl605A1AozyshS54lJBbEaO//zRk/wu8?= =?us-ascii?q?DYDh8+KQC0xf3nB89n2oMRXmKPHPzRDKSHtV6O+/JqOOSHeZUUpCe4Lv8p+vrj?= =?us-ascii?q?pWE2lEVbfqSz25YTLneiEbAuJ0SffGqpgdobF2oOlhQxQfasi1CYVzNXIXGoUO?= =?us-ascii?q?Z0/Tw/CYS7Ha/fV4uth/qHxy79EZpINU5cDVXZKnrifp6YWvoKIAiPI9R6lTpM?= =?us-ascii?q?AaOrVo46zhao8gP2zZJoK+PV/msTspe1h4s93PHaiRxnrW88NM+ayWzYF2w=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0G9AQBztQBZekFTfUpbGwEBAQMBAQEJA?= =?us-ascii?q?QEBFgEBAQMBAQEJAQEBhReOcZlnjidDhiQChCRXAQEBAQEBAQECAQIQAQEJCww?= =?us-ascii?q?HKC+CMyAPRikvAQEBAQEBAQEBAR8CKyUBARkDA0ABGx0BAwwGSyMRAQUBHAcSi?= =?us-ascii?q?gIBAxQBnXU/jgwFARyDCgWDZwoZJw1WgwkBAQEBAQEEAgEdAgYJAQiEMohEiQg?= =?us-ascii?q?FkRGMPZMNggCIaTOGQJJfM4EVgV8nHSGFNw8MEIFyZoY6K4IQAQEB?= X-IPAS-Result: =?us-ascii?q?A0G9AQBztQBZekFTfUpbGwEBAQMBAQEJAQEBFgEBAQMBAQE?= =?us-ascii?q?JAQEBhReOcZlnjidDhiQChCRXAQEBAQEBAQECAQIQAQEJCwwHKC+CMyAPRikvA?= =?us-ascii?q?QEBAQEBAQEBAR8CKyUBARkDA0ABGx0BAwwGSyMRAQUBHAcSigIBAxQBnXU/jgw?= =?us-ascii?q?FARyDCgWDZwoZJw1WgwkBAQEBAQEEAgEdAgYJAQiEMohEiQgFkRGMPZMNggCIa?= =?us-ascii?q?TOGQJJfM4EVgV8nHSGFNw8MEIFyZoY6K4IQAQEB?= X-IronPort-AV: E=Sophos;i="5.37,254,1488844800"; d="scan'208";a="5231702" X-IronPort-Outbreak-Status: No, level 0, Unknown - Unknown Received: from mail-pg0-f65.google.com ([74.125.83.65]) by emsm-gh1-uea11.nsa.gov with ESMTP/TLS/AES128-GCM-SHA256; 26 Apr 2017 15:03:22 +0000 Received: by mail-pg0-f65.google.com with SMTP id t7so652410pgt.1; Wed, 26 Apr 2017 08:03:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=pIFTMkNvtUHNxcNsO66UPgi5WtmEqa0bE66VhHihbfo=; b=Pix14s5Gla4FU2nbj++N38W6S2dGXX34sZkMbHDtTRxPUPcbOxz682s6/IpSRH6iIN 7ARdy3fkh2Jo8nlAgAq929g0rxAVo6hpNU334hkFWqjuCfrKu8CJl767IY7SITutdrnm dTd5eS0T3KdU9/Gfkzf4D/izpK/Kdx/h5YjvD5Y5Qcrk2b4avYGNbwhgsJGjt6bqgLCo Zi0viqiUPL/6Ylr6IzQtfVeVRtBluIbShwIr/KGZ9wXMKlfWeT8XDVM2GxeNRv/QW8pQ FkAq/4Y5k8/POkUKwE2rv9f9tAgOZwk6LVxCbqyOi4ROGcPm8KDkmGMnqisoatDOug8g yUpg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=pIFTMkNvtUHNxcNsO66UPgi5WtmEqa0bE66VhHihbfo=; b=RvpbTkqAu41q3RhFrJXEu2QCjvg4INkpQfl9VWzeZVaC4X4hYR3IblgEVwP6G44E0H RKygFUw3JNHT0OWie9COU4b4EulNHZ9FVDfV13lj6Y7ssHVJfnV5OMsAqVaVVWEXnotQ U0jO8K8SidTvMrLqw/erXAb6+InG57lpGrL9Hk749d40sX/oRrd1+GW1E6kBm+XTQbHz 5fM/rEM6yDuLz5PVafyB75PRIn/JNCWVlgCdXY48XkrGGdAqARL1aD7FHsSetxutX2LI yL2SPZApxiSk5CmZDRB2MJ0w1+T91pUpDvhYbUfGZ02HcDO+lbYV97ibY8l8dqHsqM3j rg/Q== X-Gm-Message-State: AN3rC/4S2mshPROKND1cA0BGFpYeE8WMxTBR6tPZdsAwHEq2G4xg2KgQ sIcIonZj1LQO2A== X-Received: by 10.99.3.212 with SMTP id 203mr273404pgd.0.1493218999977; Wed, 26 Apr 2017 08:03:19 -0700 (PDT) Received: from ltest-vm7.localdomain (fs276ec80e.tkyc203.ap.nuro.jp. [39.110.200.14]) by smtp.gmail.com with ESMTPSA id 17sm756929pgg.48.2017.04.26.08.03.17 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 26 Apr 2017 08:03:19 -0700 (PDT) From: Sebastien Buisson X-Google-Original-From: Sebastien Buisson To: linux-security-module@vger.kernel.org, linux-kernel@vger.kernel.org, selinux@tycho.nsa.gov Subject: [PATCH 3/3] selinux: expose policy SHA256 checksum via selinuxfs Date: Thu, 27 Apr 2017 00:02:16 +0900 Message-Id: <1493218936-18522-3-git-send-email-sbuisson@ddn.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1493218936-18522-1-git-send-email-sbuisson@ddn.com> References: <1493218936-18522-1-git-send-email-sbuisson@ddn.com> X-Mailman-Approved-At: Wed, 26 Apr 2017 11:23:22 -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: Sebastien Buisson , james.l.morris@oracle.com, sds@tycho.nsa.gov Errors-To: selinux-bounces@tycho.nsa.gov Sender: "Selinux" X-Virus-Scanned: ClamAV using ClamSMTP Expose policy SHA256 checksum via selinuxfs. Signed-off-by: Sebastien Buisson --- security/selinux/selinuxfs.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/security/selinux/selinuxfs.c b/security/selinux/selinuxfs.c index ce71718..b2d5deb 100644 --- a/security/selinux/selinuxfs.c +++ b/security/selinux/selinuxfs.c @@ -30,6 +30,7 @@ #include #include #include +#include /* selinuxfs pseudo filesystem for exporting the security policy API. Based on the proc code and the fs/nfsd/nfsctl.c code. */ @@ -99,6 +100,7 @@ enum sel_inos { SEL_STATUS, /* export current status using mmap() */ SEL_POLICY, /* allow userspace to read the in kernel policy */ SEL_VALIDATE_TRANS, /* compute validatetrans decision */ + SEL_POLICYCKSUM,/* return policy SHA256 checkum */ SEL_INO_NEXT, /* The next inode number to use */ }; @@ -313,6 +315,22 @@ static ssize_t sel_read_policyvers(struct file *filp, char __user *buf, .llseek = generic_file_llseek, }; +static ssize_t sel_read_policycksum(struct file *filp, char __user *buf, + size_t count, loff_t *ppos) +{ + size_t tmpbuflen = SHA256_DIGEST_SIZE*2 + 1; + char tmpbuf[tmpbuflen]; + ssize_t length; + + length = security_policydb_cksum(tmpbuf, tmpbuflen); + return simple_read_from_buffer(buf, count, ppos, tmpbuf, length); +} + +static const struct file_operations sel_policycksum_ops = { + .read = sel_read_policycksum, + .llseek = generic_file_llseek, +}; + /* declaration for sel_write_load */ static int sel_make_bools(void); static int sel_make_classes(void); @@ -1825,6 +1843,8 @@ static int sel_fill_super(struct super_block *sb, void *data, int silent) [SEL_POLICY] = {"policy", &sel_policy_ops, S_IRUGO}, [SEL_VALIDATE_TRANS] = {"validatetrans", &sel_transition_ops, S_IWUGO}, + [SEL_POLICYCKSUM] = {"policycksum", &sel_policycksum_ops, + S_IRUGO}, /* last one */ {""} }; ret = simple_fill_super(sb, SELINUX_MAGIC, selinux_files);