From patchwork Wed May 24 14:18:43 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Jurgens X-Patchwork-Id: 9746061 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 07247601C2 for ; Wed, 24 May 2017 14:32:50 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id EDE692898F for ; Wed, 24 May 2017 14:32:49 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id E25BB28991; Wed, 24 May 2017 14:32:49 +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 (emsm-gh1-uea11.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 A20F02898F for ; Wed, 24 May 2017 14:32:47 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.38,386,1491264000"; d="scan'208";a="6065933" IronPort-PHdr: =?us-ascii?q?9a23=3A+Br8fR2BQHqgeH8dsmDT+DRfVm0co7zxezQtwd8Z?= =?us-ascii?q?sewXKPnxwZ3uMQTl6Ol3ixeRBMOAuq0C0LOd7f+ocFdDyK7JiGoFfp1IWk1Nou?= =?us-ascii?q?QttCtkPvS4D1bmJuXhdS0wEZcKflZk+3amLRodQ56mNBXdrXKo8DEdBAj0OxZr?= =?us-ascii?q?KeTpAI7SiNm82/yv95HJbQhFgDiwbal8IRmrognct8sbipZ+J6gszRfEvmFGcP?= =?us-ascii?q?lMy2NyIlKTkRf85sOu85Nm7i9dpfEv+dNeXKvjZ6g3QqBWAzogM2Au+c3krgLD?= =?us-ascii?q?QheV5nsdSWoZjBxFCBXY4R7gX5fxtiz6tvdh2CSfIMb7Q6w4VSik4qx2RhDoki?= =?us-ascii?q?MHPCMn/m/RhMJ7kaZXrAu8qxBjxoLZZpyeOvhjcaPHZd4URXRPUNtfWSJCBY2z?= =?us-ascii?q?bYUPD/IDMOpFoYTyuUAOoACiCQWwHu7j1iVFimPq0aA8zu8vERvG3AslH98Wvn?= =?us-ascii?q?rbttP1P7oWX+Co1qnIwivMb/VN2Tzg74XHbwouofeNXb1udcrRy1IiFwbbgVWU?= =?us-ascii?q?rYzqJTWV1uMCsmSB8+VgUuevhnchpgpsoTav3t8hhpTGi48a0FzJ9Th1zJwrKd?= =?us-ascii?q?C3VkJ3e8OoHINNuyyeOYZ6WMwvTmNytCony7ALuYS3cDUUxJkjwRPUduaJfJKS?= =?us-ascii?q?4h35UeacOTJ4hHV4d72hnxuy6k2gyvHkVsmzzVZKsjJJktnSuXAJ0Bze8tSHRe?= =?us-ascii?q?Fn/kegxDaPzBrf6v1EIE8olarbLIQtwrgsmZoIrUvPBCr2mETyjKOOd0Uk/Pan?= =?us-ascii?q?6/j/b7n7qZKROJV4hwHjPqg0hMCyDvo0PhITU2SD/OSzzrzj/Un3QLVQif02l7?= =?us-ascii?q?HUsIvEKsQfp665BRJV04k65xmkCDemzdIYkmUZI1JeYx+Hk4joNE3OIPD/F/u/?= =?us-ascii?q?hU+sny1xy/DJOb3hHI3BLmLfn7f5YbZ990lcxRIxzdBY4ZJbEK0BIPLpVU/3r9?= =?us-ascii?q?HYDBg5Mwqxw+n9E9V9yp0RWXiUAqODN6PSq1CI7Po1I+aQfI8VpCr9K/896v7s?= =?us-ascii?q?j382g0MSfaqy3ZsQbnC4H+pmLl6XYXron9cAHnwFvhc4TOz2lV2OSzlTZ2y9X6?= =?us-ascii?q?gk/DE0FJqmDZvfRoCqmLGBxDm0EYZIaWBAC1CMDXDoep6FW/gSdi2dPNVtkjse?= =?us-ascii?q?VbiuU4Uhzw2htBfmy7p7KerZ4jAXtZXl1Nhz+uLcixUy9T1vAsuHzW6NVWZ0kn?= =?us-ascii?q?kPRz8s06B1uVZ9xUub0ahkn/xYEsRe6O5VUgggL57R1PB1C9f3Wg3dZNiJU0qm?= =?us-ascii?q?Ts+gAT4vUtI728UObFplG9W+khDD2DKnA74Tl7yXGpM09rzT333vKMZh0XbH1L?= =?us-ascii?q?Isj14+QsRRM22mg7Rw9wnXB4HSlEWYmLymdaMG3C7C7G2D13aBvFlEUA5sVqXI?= =?us-ascii?q?RXAeZ0rRrdT//U7CSruuBa0mMgtH08KCLLFFasfqjVVHWvfsJs7SY2SvlGesHR?= =?us-ascii?q?yI3K+DbJL2e2UB2yXQEFYLkxgJ8nacNAg+HTyso3rEAzx0FFLveFvs8e1kp3yn?= =?us-ascii?q?UEA41QaKb1du17Ct4B4ameScS+8P3rIDoCogpTR0HFK4393IEdqNvARhc7tBbt?= =?us-ascii?q?M6+ldIz3rZtxZ6PpyiMa9tmkIefx5wv0P02BV9Ep9AntQyrHM20ApyLrqV0F1b?= =?us-ascii?q?dzyC25D/JrzXKnLp8RCqc67W20jS0M2Y+6cU8vg4rE/jvA6xHEo473pny8VV02?= =?us-ascii?q?eb5pjSDwodS5HxUkEq9xVhpLHVeCo954TJ1XF2Nqm0qDDC0cozBOQ50hagY8tf?= =?us-ascii?q?MKScGQDoDsIaHcmuJ/Iwm1WydB0LIOVS+LQzP8O8ePuMwLSrM/p4nDK6kWRH55?= =?us-ascii?q?hw3V6W+Cp4VOHIxIoFwvGf3gacTDfzkFahvd7xmYBYZDEdBHCzyS76C45Nfqdy?= =?us-ascii?q?Z5oECX+yI82rwdVzn4XtW3BC9F6kHFMGxNSkeQGUb1z60wxQ0F4YoXq9lSu+0T?= =?us-ascii?q?N0jykjrrCD0yzW3+TiaB0HN3ZFRWZ4iVfsPZa7j8oBXEWzcQgmigGl6l3nx6he?= =?us-ascii?q?vqh/KHPTQUhQdSjsM25iSrewtqaFY8NX9JMnrDhYUOWmblCeUbPyvxwa0yb/EG?= =?us-ascii?q?RE3zA7ayumupPnkBxmkGidNmp8rGLFecFswhfS/MLcRf9N0ToaQyl4kyPbCUS8?= =?us-ascii?q?P9mu+9WUmIzOsuS/V2KnTJJTay7rwZmHtCuh6m1gGQe/kOyrmt37DQg61jf219?= =?us-ascii?q?1rVSXTsBbwe5Lr2Lq+MeJmeEloGVD95tFhGoFmk4swgpAQ1mQBhpmP+3oIj3vz?= =?us-ascii?q?O81B2a3idHoNWSILw9nN7Qj/301jKnaJyJzjVnqBxctgacK3YngL2i0h9MBGEq?= =?us-ascii?q?CU7KZLnSFtuFq3sRrRYeRhnjca0fYu8GQVg/wNuAY31CqRGKsdHU5cPSzwkBSI?= =?us-ascii?q?6cuzrKBLaGapdri/yFBynda/A7GeugtcQmr2eo8+HS9s6cVyKFHM32P16oH/Y9?= =?us-ascii?q?TQbswcthuPkxfGkedVNIg9lv0QhSpoIWj9p2Eqy/YnjRxy2pG3pJCHJH9w/KK9?= =?us-ascii?q?HBFYLif6Z8UP+j7zl6ZThduW35uxEZV7ATUHRoDoTfW1EDIIqfvoKQiOEDomqn?= =?us-ascii?q?eUB7XTBwmf51l6r3jXCZCkK2mXJGUFzdVlXBSdOkpfjx0PUTUkmJ42CwCqyNbn?= =?us-ascii?q?cEhn+jAb/kT4pQdUyuJ0Kxn/VX/SpB+yZTcpTJiSNwZZ7gBe50bVKMCe4Ph8Hy?= =?us-ascii?q?dC8p2mtgyNJXSRZx5UAmERRkyEG1fjM6Gt5djA9+iXGPGzL/7JYbWAp+xRSeuI?= =?us-ascii?q?xY6v0oth+jaDKN+DPn98AP0nwkBDR2x2G9zFmzUTTCwajyzNYNSdpBeg/S13q9?= =?us-ascii?q?uy8Pr1Vw3y4ouPEaFdMc11+xCxg6eMKfKfhDpjJTZfzJMMymfCyKID014KlyFu?= =?us-ascii?q?az6tHKwatSHQUa3dgaBXDxsUai9pMstH8b481BFXOcHHktP1yqJ4jvktBldfT1?= =?us-ascii?q?DglNulZckQLGG5M1PGBF2GO66aKj3O2c33Zrm8SbJIhuVOqxKwoSqbE1PkPjmb?= =?us-ascii?q?mTnpTQ6gPvxXjC6BOhxepIa9cg12BGf5UN3mbwe3MNhtjT052bc0nG/FNXYAMT?= =?us-ascii?q?hgdENAtruQ7TlCjfVnA2xM9XRlLeiemyaC8+nYJJcWsf1xDSRyi+1a4W41y79P?= =?us-ascii?q?4CFDXvx1lzPYrsRyrFG+jumP1j1nXQJVpTlQg46LuURiOb7F9plbQ3rE5wwC4n?= =?us-ascii?q?mKBxQRudRlDtzvu6ZNytnAj6/8NDdD88jJ/csHHcTVJtiIMGY6MRruHj7YFgwF?= =?us-ascii?q?TSSkNWvHnUxSjOmS9mGJrpg9spXsnpsOSrtfVFMrDfMXEV5qE8IYIJdwRD8klq?= =?us-ascii?q?SbjMEQ73qksBbRXNlavozAVv+KGvrvKTmZjb5CZxYT3Lz3M58cNozh1ExkcFV6?= =?us-ascii?q?m57KG0XIV9BXviJhdhM0oFlK8HVmVGIz1Fjqah2z73IIEv60hgA5ig17Yes39T?= =?us-ascii?q?fs50w4Jl3FpScql0kxg9rliyiLcDHtNKewQZ1WCy3sukgtNZP7Rhx5bRe1nU1l?= =?us-ascii?q?KjjEQalej6FndW91iw/RoodAGflZTaJYehAQ3u2Xa+8u0VtCtiWt3VVH6vfdCZ?= =?us-ascii?q?t+iAsqdoahr3Re1A15aN44Pq/QJK1SzlhMnK2OuDSo1uMwwAMEIUYC7n+ScjYS?= =?us-ascii?q?uEMULrkmOzao/ut05AyYhTRDY3YDWOAwov129kMwIP+PzyP607FeLUCxOfSfL7?= =?us-ascii?q?mHtGnAj8KIRE0/1l8QnUlf4bd2ydsjc1aTV0030bSeDQoJNcvfJgFOdMdd7mLT?= =?us-ascii?q?fTyJseTD2pJ6IZmyFv3yTe+PqKYVglioHAA3EIQQ9s4BBIWj0FnELcf7K74I0Q?= =?us-ascii?q?gi5B/1K1qfA/RJYgiEkCkcrsGk1pB33pRdJisHDmlnNSW3+7DXqRUwgPaaQNc2?= =?us-ascii?q?ZXQaX4sDNn4sXs21hTJZtWxaDDaryuIZ1BSC7zjkqyTUCzn8dcRsZPGVZBNrE9?= =?us-ascii?q?y29jM/87WshV7Q6JXeKHnwNc5+td/X9eMau5GHButPTbZjt0fcmo9YR2GlUmPU?= =?us-ascii?q?DdG1IJ3wZJU2YtzvFna2SFq/hCwpT83pJtaiMrCIgR30RYZTqISUwSwsNcq6Fj?= =?us-ascii?q?EYBxd8uvoO5Lxiag0ZYpo6YBnotwIkO6y5PgiYzs2kQ3yxJjtOU/lf0eK6aqRU?= =?us-ascii?q?zyo2bu610n0gTo06z+Ss/k4NQ4kKgQ3EyfaleYZeTTD5GmZBdAXXuSo5i29hO/?= =?us-ascii?q?4uwuc+xRPItkUcMzCLdeFydWNEvtE9CkmJLnlsDGo3WUOch5LZ4gGwx7AS4zdd?= =?us-ascii?q?n9FM3O1KqnjxpJnfYC63VayqrpXUvSwgbcQmo6JvMIzjJNeGu43EnjDFSpnfrB?= =?us-ascii?q?GFWjagF/VGgthQPD5YQP5QlG4/PcwGuJZO5lQpWcc7J71PDq4sprawZjd/FiES?= =?us-ascii?q?zDUWV4WZ0DwMn+ewwb3amQmMcJ46KhwLrI1CgscBUy5xei4Rv7GsV4PNmmCeV2?= =?us-ascii?q?cLPhkc7R5X5A0ajI9xfvrp4I3STJ9D0zRWue57UjPXFpl08Fv2UnuWgV75SPq9?= =?us-ascii?q?k+yp2gZSzOn03NcCRRBxE1RQyeFNm0Q0L7F3LrUfsZTRsj+Ub0/6unziyPe+Ll?= =?us-ascii?q?lL1cLUb0H4DJbCtWfkTiIc+2cbSpNUxX7DEpQSlw55aKc1q1VWPICpZFrx5zw+?= =?us-ascii?q?y4RuBbm4Wtihx0w5onYeWyeqD91BBvl8sF3NQj1lZIukpY75O5VIWGBQ5oOSq1?= =?us-ascii?q?NYkEVrPC65zZtcK85N4j4QUjhAuy+dvN6oRM1Fx8B2E4cGIs1jtHflBKNEJJ+R?= =?us-ascii?q?rmU4u7D11nDZ+zE8sFK7xDqpGK+1VONZ8HMAFQo3PWierVMvD+Q0+GfI7l/Nqk?= =?us-ascii?q?x0//tcBrWXlUVxpzJ9EYpUBjdH0nClK1pzQWJDs+VdL6TVaNJTTOUoZR+oIBw+?= =?us-ascii?q?Dv8m30qG/U1umnf5eSNyvBNA+y/BRwk0STUVgrD1lDIEsMGnJDkaR4hLbTg6bi?= =?us-ascii?q?fFKgObmTxMsxpFbUFlRYwZCM5f+74HxYtU4tbCSUG0JCEZWxxiMxk10eZDmU5G?= =?us-ascii?q?q0qUYybdAhS0dfzXqB14Yd+RrNK1LPT+5ApHipnosPoi+KUHWnKrghCiTs7Gr4?= =?us-ascii?q?/kqNKKslWBdL3iP+27e3/BQyDGjQqsirc8E5nK4y/TPRJZK5l913UpeoXuBnDQ?= =?us-ascii?q?PRtYPaIbO1RUWr1gZdVAvO9ae9dueLwV9q91GhKHWhTvFZS0o/lIMlnfWTbTIz?= =?us-ascii?q?iP/+GkvY3T6rndRvT6acyX23bLWaR3MYlm6TPjAbflzZde+lbq2vdq7k56U0bJ?= =?us-ascii?q?PD2BrNv7OgMG/82idkz8vpI3Az/ZHJBwn2fzyU1accoYXTGq+owCyJxF8HbwVf?= =?us-ascii?q?540k/rve1K7Llk9ZM47K11ycqvPqfSLulasVV7DReKAAVq6o8tD3J7R2xLZe8R?= =?us-ascii?q?MvjRd7wDjc/ys+D3C7AX6BqN9uxFc9vIOV/OldSkBzGBTRxEgB0BpiQELgud0P?= =?us-ascii?q?6Fn7F7Sdq/qej+wEIt7EC0LgQaw7B1+YeE5q2IqffSbxTLybgEXrblRt/vrrs2?= =?us-ascii?q?oUyf/vskm6ASemxufwKoCvAdWdAHymfm068q0TomE9nfELL45P5DS3U5kyrim5?= =?us-ascii?q?9nBVUWHegUHb6R8oRAhWo4nvHZNtkKcqBDhmmPFASrErkZyXKx7CuXOmZliAnU?= =?us-ascii?q?0x7sWWOz8EP2rShgTCvO1djjlERVVqOwBUhPQSWkIlN4vymJPArzs9r7o6I141?= =?us-ascii?q?8qMmb8rtKCiHOhOK9LH834PNGcLjQ0pFMTjJ01WNOv3JsWFsejL9gK8XFxdP3e?= =?us-ascii?q?53msky9brKdNn5De7d2N+vXLAXmgiLWXq7OJxD1Dy3g4u1Q/5sqhNvHI6d2KWe?= =?us-ascii?q?6n130NTydlpgvOQwK1qqHBr18KI0CL113LmIMSNNFDwXY4zl3m5PQkQN8r8QVe?= =?us-ascii?q?EYDAZ+8NpT/tIzb0xFefbMgxViaAzztWEFX1EUN7GKgnwm7wutzGlWvI8V0yWo?= =?us-ascii?q?Zwb1DnhQBwD4ggLUIt810XzyoYHAgDdx+UEbaoBV7/IoscT0gDbhaH06amdacr?= =?us-ascii?q?x0Fzxamv5ODLZ+xmG6UNLupdjhKJnFVDAZIZq7MeT6hze1BD767avRPiBJL5X/?= =?us-ascii?q?f8mno/K+a1Ttpc8c8Hq3so+hy/SAa46Zdf87Ybj4iFdqxFYZjJp8186llo5D4R?= =?us-ascii?q?eSxXgRh/iRy5XfoapO/9/tjRqICo5fq2VKYxW+UX8AA5B2V/jpTqml8svcra1/?= =?us-ascii?q?xCRY3Jl4vw7BpBI3mQuIbVyxN8M/YBK5q3fLZ88HUKPzMRJ3MVPduYcfY84S5t?= =?us-ascii?q?MCnL51NYH8MMYcgVM9bKmQ9JlELmQqxT9tDcGl+CEYh/bcco73D4yDot65szTv?= =?us-ascii?q?7g6COqJZDY91xNJ+lMjDlwm9LCqukVxuDSCCsO7XmCdRd1xiKCy5+QC/f/5uiM?= =?us-ascii?q?0MvbV08aES42XYZdIyCC+Q+9Suq2iprpSAWU5dH3gJ4kc0KQXHOxlrwfsqlQCe?= =?us-ascii?q?5Aljn73j9GG4DpnfKard6s53FRtlJZC4t88BzFGKpePpVnIxv4jdOkRlJhBifl?= =?us-ascii?q?fsHbaAYusvKMxugQ++V+K1f+ZYgDLxIL0b3682RaThduSLPtulaZXP4Ra8VmSP?= =?us-ascii?q?zes3BV8phsK6kRM1iBvJbqtCtHqEgqAA81b789tjNaeVfInA1JXKb0v7kMihAC?= =?us-ascii?q?Xt59uE9MH3+wOW0l6jrDS6tVlqmQB+YP/jWVUKMOT11iMjliTBOtxJVuZ7ypkO?= =?us-ascii?q?hBsmNHgix9p/wq3CZ9RBemuC3soKUN2Sk7+LyjsTUMtnNEQv+ZkyfSBlVJ1O4K?= =?us-ascii?q?grsEC3b+9Vy8Z2EObITu77l8PsTs7JQv7Xs5bxUieS0GQOuhBjr/j6ONGIOPts?= =?us-ascii?q?xTiASKuMXUYr+5NTISOaglyRL/W3h91RDTnBRv8GsLRDWs9sMrJIW5OcY42yWp?= =?us-ascii?q?GGnbdFAX4qNKscv8rkALTOooaVx7xGVsz8mHSjcLRMPRB2Y/lhIkZnlccJJf9R?= =?us-ascii?q?8aELElgjeWvqZc+AEZezPUEpm49YnRmsfIwmMxTdBwxmLZvqeFnI8l0GV5m9No?= =?us-ascii?q?6S6DoHYSePLWU89iBnj+zYlexvb4Z/qzruALUo1mx6q9UPUaKMms5XO22Il2Wk?= =?us-ascii?q?+i3rkeEF65MOgNx7jFVyelTXaVWf+Mc2iKnjY2LlT+5R+2IV0rcM1KtVMyMvPe?= =?us-ascii?q?hp5AkA3sSbF0RiWQpF/Dy2wjNeIadx4ot4q8fgwKTfIRZ/KCKuQ0x/0+ElQMZW?= =?us-ascii?q?fTHSRqE++2rUKtnI9jNnV84EX6ZP/g8hznMNSOGRkLD4raooR3+fOkWmKLIWVg?= =?us-ascii?q?wwFqPElo6+ffEEw8tupdc5aSntjQgM920ewfePduNi09vMAcmoR55YmSzsiKbQ?= =?us-ascii?q?nbzozuKtHNvviYH/rfwlwxdW5EVLoZfRj4554+Pt4+R73TAaVZsgoBCqQgR5wh?= =?us-ascii?q?LWjx/rluLAxvag7ReKi0gs7yq+KFeJRUo37W7kouIyrHuhwDy/m0TQllYJCwg3?= =?us-ascii?q?X9Poo8RjVbr91iEhFmBpdAG9scrwq7BJ6ZgK+6i8er+0N7p+AFr7H9CvXL1NSl?= =?us-ascii?q?xYV+QYJW5UuRPDbeHKNrmFhqjvyugvfc1Zn8EcTiedcaW+VgWm7FbqXJHp6jKj?= =?us-ascii?q?KPJs38Z1RG/KCC375jVBWeejz5VbKctCK4LPVk/Vk7yotgcerXzTwt6azb2dTr?= =?us-ascii?q?a2FfpyejtmKJNIBE4VzLH+PeWRVUReCC8GZ/Eq0ddZH0+/sWMdw+3Nic5BF+7C?= =?us-ascii?q?9c38uBIqihqFLM2018eZzUMEvp2zg2WZMULxSnK0QhmmzZpWrHAXRaMMekLdJi?= =?us-ascii?q?gMuaDhD34Elxg24tbHZbGmX0XdeRJXQb28WmaQ2P7g1EE9YDn++xeU4/raCyV+?= =?us-ascii?q?hoOpNbluWutbUHl8tpKi7VSMhdJSHQI6d8PiBNAeXXuFgofhkEvqA3WogvZpiO?= =?us-ascii?q?J1gIPVydySP00QvC0Ur0d8Gj1KaJPCYa6HNHwKzZ0TJUvQm2pe6ZgtH/ULDedJ?= =?us-ascii?q?z2U+TdPzE/VjGbWzsyFV2k+Umgu/Uep/qYIHofrkoSYi2MFA4ZvrpvosTIDm/P?= =?us-ascii?q?he1je4UHhPKfWyD3Ui14jqsyBj1QuECKWfUDEBfZb377jGpbogyiKedG/Wj5YL?= =?us-ascii?q?2A2qpVR+sWD5NXcv2XRtvXZfFTKjQzmzUHJum8Zdzcrrc+0lLOV2cZFbfH9EHN?= =?us-ascii?q?BHKRF+eRwzPtQJU9o5k/ui1u/MnZ2CBwDffmJbGa8hKn9MaakTyXtOvFHj0hak?= =?us-ascii?q?o0jeYAKGyMxB1JLmYUTdoSvRe+Eea7e09Q2Sdx2qpV0BgWdVE2CyVj?= X-IPAS-Result: =?us-ascii?q?A2GsBQBSmCVZ/wHyM5BdGwEBAQMBAQEJAQEBFgEBAQMBAQE?= =?us-ascii?q?JAQEBgwEpYoEMjnqQZYIMAYscilYoA4F3hnlXAQEBAQEBAQECAQJoKIIzJIErW?= =?us-ascii?q?zwGAQJ5AwkBARcIKQgDAVMZBYhRgVAErwsmAotHli8FiUeHZYx3hyCMCoIEVYh?= =?us-ascii?q?HDIZJlE5YgQpPIhWEeYJGc4kjAQEB?= Received: from unknown (HELO tarius.tycho.ncsc.mil) ([144.51.242.1]) by emsm-gh1-uea11.nsa.gov with ESMTP; 24 May 2017 14:31:01 +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 v4OEUQeq028656; Wed, 24 May 2017 10:30:43 -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 v4OEJPJv210201 for ; Wed, 24 May 2017 10:19:25 -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 v4OEJOKP022590 for ; Wed, 24 May 2017 10:19:25 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A1B5AgBslSVZf4GlL8FdHAEBBAEBCgEBgyyBC4EMjnqQZY0pil0khgACg0UBAgEBAQEBAhMBAQsWXYUZAwN5EBgIMVcZiFaBVK8Eiz0BAQgoli8FiUeHZYx3hyCMCoIEVYhThkmUToFhTyIVhz89NokjAQEB X-IPAS-Result: A1B5AgBslSVZf4GlL8FdHAEBBAEBCgEBgyyBC4EMjnqQZY0pil0khgACg0UBAgEBAQEBAhMBAQsWXYUZAwN5EBgIMVcZiFaBVK8Eiz0BAQgoli8FiUeHZYx3hyCMCoIEVYhThkmUToFhTyIVhz89NokjAQEB X-IronPort-AV: E=Sophos;i="5.38,386,1491278400"; d="scan'208";a="6064692" Received: from emsm-gh1-uea10.corp.nsa.gov (HELO emsm-gh1-uea10.nsa.gov) ([10.208.41.36]) by goalie.tycho.ncsc.mil with ESMTP; 24 May 2017 10:19:24 -0400 IronPort-PHdr: =?us-ascii?q?9a23=3A3+zSCB2U30AWGDlIsmDT+DRfVm0co7zxezQtwd8Z?= =?us-ascii?q?se0ULvad9pjvdHbS+e9qxAeQG96KtLQf0qGI7ujJYi8p2d65qncMcZhBBVcuqP?= =?us-ascii?q?49uEgeOvODElDxN/XwbiY3T4xoXV5h+GynYwAOQJ6tL1LdrWev4jEMBx7xKRR6?= =?us-ascii?q?JvjvGo7Vks+7y/2+94fdbghMhjexe71/IAi5oQjQtsQdnJdvJLs2xhbVuHVDZv?= =?us-ascii?q?5YxXlvJVKdnhb84tm/8Zt++ClOuPwv6tBNX7zic6s3UbJXAjImM3so5MLwrhnM?= =?us-ascii?q?URGP5noHXWoIlBdDHhXI4wv7Xpf1tSv6q/Z91SyHNsD4Ubw4RTKv5LpwRRT2lC?= =?us-ascii?q?kIKSI28GDPisxxkq1bpg6hpwdiyILQeY2ZKeZycr/Ycd4cWGFPXNteVzZZD428?= =?us-ascii?q?cYUBEuQPM+VfoYb/qVsDtgeyCRW2Ce/z0DJEmmP60Ksn2OohCwHG2wkgEsoAvn?= =?us-ascii?q?vOqtX+KaMcUf2vzKnH0zrDaehW0ir65YfVaB8hp/CMUqx0ccrT0kQvEh3KjlGU?= =?us-ascii?q?qYP/OTOV0esMv3KH4OpnUOKikmgqoBxyrDi33sogl43Ei4wPxl3L9yh12ps5KN?= =?us-ascii?q?y4RUJhfNKoDp9duieHPIVsWMwiWXtnuCMix70Gp5G7eC8KxYwixxHBb/yHd5KH?= =?us-ascii?q?4hTkVOeeOzt3mHVldKi+hxa26USgy+v8Wdeo0FtSsyZIltfBumoC2hHR8MSLV/?= =?us-ascii?q?pw80e71TqSyQze7vlIIUUumqraL54hzKQwlp0WsUnbAyD5gkP2jK6IeUUg+Oil?= =?us-ascii?q?8OHnbavipp+YLYB0jAb+M6s0lsOjBuQ4NxACX3KH9uSkyL3j4Ur5Ta1RjvIolq?= =?us-ascii?q?nZsZbaJdkUp6OiHw9U0pos6xa4Dzu81tQYhmMIIEhKeBKAkYi6c23Jdev1Cfa5?= =?us-ascii?q?nkSEjCZgx/eAOKboRJrKMCvtirDkKJp07QZ+1RA8wNZEr8ZYA7cALfbxckr8sN?= =?us-ascii?q?jRCBgpdQezxrC0W51GyooCVDfXUeeiO6TIvArNv7p3Lg=3D=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0FeBADqlSVZf4GlL8FdHAEBBAEBCgEBF?= =?us-ascii?q?wEBBAEBCgEBgwGBC4EMjnqQZYINixyKXSSBd4QJAoNFAQEBAQEBAQECAQIQAQE?= =?us-ascii?q?LFl2CMyQBgSpbPAMDeRAYCDFXGYhWgVSvAos9AQEIKJYvBYlHh2WMd4cgjAqCB?= =?us-ascii?q?FWIU4ZJlE6BYk8iFYc/PTaJIwEBAQ?= X-IPAS-Result: =?us-ascii?q?A0FeBADqlSVZf4GlL8FdHAEBBAEBCgEBFwEBBAEBCgEBgwG?= =?us-ascii?q?BC4EMjnqQZYINixyKXSSBd4QJAoNFAQEBAQEBAQECAQIQAQELFl2CMyQBgSpbP?= =?us-ascii?q?AMDeRAYCDFXGYhWgVSvAos9AQEIKJYvBYlHh2WMd4cgjAqCBFWIU4ZJlE6BYk8?= =?us-ascii?q?iFYc/PTaJIwEBAQ?= X-IronPort-AV: E=Sophos;i="5.38,386,1491264000"; d="scan'208";a="7398848" 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-uea10.nsa.gov with ESMTP; 24 May 2017 14:19:15 +0000 Received: from Internal Mail-Server by MTLPINE1 (envelope-from danielj@mellanox.com) with ESMTPS (AES256-SHA encrypted); 24 May 2017 17:18:59 +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 v4OEIpEh024434; Wed, 24 May 2017 17:18:57 +0300 From: Dan Jurgens To: selinux@tycho.nsa.gov Subject: [PATCH v1 2/2] selinux-testsuite: Infiniband endport tests Date: Wed, 24 May 2017 17:18:43 +0300 Message-Id: <1495635523-84017-3-git-send-email-danielj@mellanox.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1495635523-84017-1-git-send-email-danielj@mellanox.com> References: <1495635523-84017-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 --- v1: - Synchronize interface names with refpolicy changes. - Allowed access to unlabeled pkeys vs default pkey, default pkey is no longer labeled in the refpolicy. --- README | 7 +++- policy/Makefile | 2 +- policy/test_ibendport.te | 35 ++++++++++++++++++++ tests/Makefile | 4 ++- tests/infiniband_endport/ibendport_test.conf | 14 ++++++++ tests/infiniband_endport/test | 49 ++++++++++++++++++++++++++++ 6 files changed, 108 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 46c9fb5..694836b 100644 --- a/policy/Makefile +++ b/policy/Makefile @@ -23,7 +23,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..8387432 --- /dev/null +++ b/policy/test_ibendport.te @@ -0,0 +1,35 @@ +################################# +# +# 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_ib_endport(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}; +corenet_ib_access_unlabeled_pkeys(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..b4e553d --- /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(1); + ok(1); +} +exit;