From patchwork Sun May 13 01:58:21 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Guy Briggs X-Patchwork-Id: 10398229 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 C65D7601E7 for ; Mon, 14 May 2018 12:45:27 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id BD8791FF83 for ; Mon, 14 May 2018 12:45:27 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id B1662206E2; Mon, 14 May 2018 12:45:27 +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=-5.2 required=2.0 tests=BAYES_00, MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED autolearn=unavailable version=3.3.1 Received: from UCOL19PA10.eemsg.mail.mil (ucol19pa10.eemsg.mail.mil [214.24.24.83]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1FC971FF83 for ; Mon, 14 May 2018 12:45:26 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.49,400,1520899200"; d="scan'208";a="512184086" Received: from emsm-gh1-uea10.ncsc.mil ([214.29.60.2]) by UCOL19PA10.eemsg.mail.mil with ESMTP/TLS/AES256-SHA; 14 May 2018 12:45:25 +0000 X-IronPort-AV: E=Sophos;i="5.49,400,1520899200"; d="scan'208";a="11744094" IronPort-PHdr: =?us-ascii?q?9a23=3Adg1H5xdk8taAZYyvpNYiZ9ZulGMj4u6mDksu8p?= =?us-ascii?q?Mizoh2WeGdxcq6bReN2/xhgRfzUJnB7Loc0qyK6/umATRIyK3CmUhKSIZLWR?= =?us-ascii?q?4BhJdetC0bK+nBN3fGKuX3ZTcxBsVIWQwt1Xi6NU9IBJS2PAWK8TW94jEIBx?= =?us-ascii?q?rwKxd+KPjrFY7OlcS30P2594HObwlSizexfb1/IA+qoQnNq8IbnZZsJqEtxx?= =?us-ascii?q?XTv3BGYf5WxWRmJVKSmxbz+MK994N9/ipTpvws6ddOXb31cKokQ7NYCi8mM3?= =?us-ascii?q?0u683wqRbDVwqP6WACXWgQjxFFHhLK7BD+Xpf2ryv6qu9w0zSUMMHqUbw5Xy?= =?us-ascii?q?mp4rx1QxH0ligIKz858HnWisNuiqJbvAmhrAF7z4LNfY2ZKOZycqbbcNwUX2?= =?us-ascii?q?pBWttaWTJHDI2ycoADC/MNMftEo4X4oVYBqgewCwmyCe/20zNGhGL53bcj3+?= =?us-ascii?q?o8DAHGxxQgEMwSv3TItdn1MKASUO6ox6XMzTjPavVb1jDh5obIbB0tuOiAU7?= =?us-ascii?q?BtfsrL0EUhCh7Fjk6IqYP7IzyVyvkGv2yF4+Z8UO6ijXMspQNsrTi13soiip?= =?us-ascii?q?fHiIwWxF/G+yV2wog1K8CgSEN5fNKpHoVftzqBOodqXs8vWX1ktDomxrEav5?= =?us-ascii?q?OwYSgEyI4gxx7ac/GJb4mI7Q7jVOmLOzd3mW9udrOihxey7EOt1/f8Vsi70F?= =?us-ascii?q?ZFtSpOj97BtmoC1xPI8cWHUOVy8Vqh2TmVywDf8P1LIUcxlafCLZMq370+lo?= =?us-ascii?q?ILvEjeESL7l1/6ga+Lekk+5OSl5Prrbq/7qpOENoJ5ixvyPrktl8G9G+g0LA?= =?us-ascii?q?YDUmaB9em+2rDu+1DyTq9Qgf0siKbZtYjXJcEcpqGkHQBYyp0j6xOjDze+19?= =?us-ascii?q?QYgGUHIEpFeB2Zi4jpPEnDIOziAvelglSsjSxry+raPrzhHprNLn/DnK3nfb?= =?us-ascii?q?lh8E5T1BA/zdVe55JQEr0BIfTzVVHttNHAExM0PAO5z/znBdlgzI8SR22CDr?= =?us-ascii?q?GDPK/PqVOI4/ggI+iIZI8bojb9LP0l6ub1jXAnnV8dfK+p3YYYaXyhBftmJF?= =?us-ascii?q?iZYXzwjdgfCmcHpRY+Tez2h12CVj5ffXCyX7km6T0hB4KmCpnDSpi3gLOdxC?= =?us-ascii?q?e7AoFWZmdeB1COFnfocZ+LW+sMaC2IJM9siT4EVb+nS48kzx6urxP6xKR9Lu?= =?us-ascii?q?rP4CEYsojj1Ndt7e3JiR4y7SB0D9ia02yVTWF0nHkHSCM13KBkpkx9zFaD0b?= =?us-ascii?q?ZjjvxWEdxT+vxIXRwnNZ7a0+x6Fsr+WgXbfteGUFymWMmpASktTtItxN8De0?= =?us-ascii?q?h8G9SmjhDGwSWqGaQYl7KVC5Mp9aLcxWL+J95ny3bB1qkukUUpQtdVOW2hnK?= =?us-ascii?q?5/+BDZB5TVnEWBi6aqaaMc0TbQ+2ifyGqOu0dYUBJtXajeQ3AQeFHWrdX450?= =?us-ascii?q?PFSb+iE7InPRVdycSaMKtFdsXpjUlaRPfkINnRfn6xlH2qBRuT2ryMa4/qdH?= =?us-ascii?q?kH0yXGFEgIiQYT8miaNQImHCeuv3reDCByFVLoe07t8eh/qHS9TkIvygGKa1?= =?us-ascii?q?Rt17uz+hIPg/yTUekT3rEFuCc/tTp4BlC90MzKC9CYvQpuYL1cYc8h4FdAzW?= =?us-ascii?q?/ZuRZ9MYamL69+h14eaB96v0b21xV2E4lAisYrrGgwwAp1M6KY30tLdymE0p?= =?us-ascii?q?DoJr3XNm7y8Qisa6HM2VHe18uW97wM6PsiqFXjuxypGlAl83V93Nlfy2Gc6Y?= =?us-ascii?q?nSDAoOTZLxVV46+AJnqLHAYyky+ZnU2GZ2Pqaotz/OwdUpBPEqyhy4ZddQLL?= =?us-ascii?q?uEFBPuE80dH8WuMvEllEWyYxILOeBT+7Q4P8W4ePuawKSrJvpvnCq6jWRb54?= =?us-ascii?q?BwylmM9yRmSu7PxJYF3+qV3hCBVzf7glaht9r4mYZeaTEUAGW/1TDuBJRNaa?= =?us-ascii?q?1qYYYLFWCuLtW5x9pkg57tR2BX9ES4B14dxs+mZwCSYEfg3Q1Vz0gXpmanmS?= =?us-ascii?q?SgxTxujz4ptraf3DDJw+n6choHO2pLRG18glf3OoW7lc4VXFKvbwQzkxul/0?= =?us-ascii?q?n6zbBBpKtjN2nTXVtIfy/uImF8U6u/qqaCY8lV6J8yrSpXUOO8YVaVSrPmpx?= =?us-ascii?q?sa0iXjEHFExDA8bT2qvY/5nxNigmKHMHlztGbZed13xRrH4NzcROVR3iYfSC?= =?us-ascii?q?ljlzbXAlm8P9+0/dSbjJrDqfi+V2OnVp1SbSbr1pmMtC2l6m12GRe/hey8ms?= =?us-ascii?q?X7EQgm1i/2z8NqVSLMrBb4fIbrzbi1MeVpf0RzH1/89tZ1Gppknos3npEQ1m?= =?us-ascii?q?AQho+J8nofjWfzLdJb1Lr9bHUTQz4L2MXY4Av7101lNXKJwZz2VmmHzstmfd?= =?us-ascii?q?m6bXsc2jgh4MBSFKeU8LtEkDNtolWisALRZeZyni8Hxvso9H4VnfsJtREwzi?= =?us-ascii?q?WGHL8SB1JYMTb3lxSP8tC+trlYa3ihcbi3zkp+ks6uAKuEog5CRHbzYo0iEj?= =?us-ascii?q?No7sVjLFLM12X+6p/ieNbNdt8TqBuUnArAj+RPLpI+iOYKjzJ9OW3hpX0l1/?= =?us-ascii?q?I7jRt20JGipoeHNmFt8bmlDR5ZKj30Z9of+j/3gqZYhMqW2JqvHpp5EDURQJ?= =?us-ascii?q?ToVe6oEC4Vtfn/OQaBCjs8qmucGbraBgKf5llpoG/IE5CxLX6XPGMZzdJgRB?= =?us-ascii?q?aDOENfnBoYXDIgnp42Dgqq3tDucF9l5jAN4V71sh5MxfhsNxn7TGjfuBuoZS?= =?us-ascii?q?0uR5WEKhpZ8B1C51zJPsOE9uJ8ATtU/pu/owyRMmabfRhHDXkVWkyYAFDuJr?= =?us-ascii?q?eu5cPe/OeFHeqxNf3OYamJqexFTPqH346g0o588zaLLMWPMWFoD+cn1UpbQX?= =?us-ascii?q?B5B8PZli0JSywNjS3Nd9abqQyy+i12tMC/6+jrWAzu5YuJEbRSN8lg+xGsjq?= =?us-ascii?q?eHLeKQgzx5KTlA3JMW2XDI0KQf3EIViyx2bzmiD68PujDLTKLRhq9XCAUWay?= =?us-ascii?q?JtO8RW8a0wxA5NOdTUitntzL53kuY1C0tZVVzmgsymftcFL2a5NFPGH0aLKK?= =?us-ascii?q?+GKSfQw87pfaywU6ZQg/tQtx2xvzabDkDiMy+fmDjpTRCvLPpMgDuVPRNEpI?= =?us-ascii?q?G9aRFtCW75QNLhcB27P8d9jScqzr0smnPKKWkcPCBnfENMob2Q6iVYj+5iFG?= =?us-ascii?q?Nf9XVlLPOLmyCD4+nfMJYWvuNhAj5omOJC/HQ617xV4TleS/x6giTSsMBhrk?= =?us-ascii?q?qhkumX1DVnVh9OpSxKhIKPpkpiPqrY+oNHWXbe8xIH9X+QBAgSp9t5Ft3vvL?= =?us-ascii?q?hdysTIlKL2MjtC6dXU/MoCCMjSM82HKn0hPgTqGDPPEAQFSjurOn3FiExGjP?= =?us-ascii?q?Ge7HuVoYYmqpL0gpoBVqdbVEApFvMdEkllHtwCIZdvXjMjlb6bjdII6mSloR?= =?us-ascii?q?nURcVaoorHWeyIDfXoMjaZgqFOZwEUzrPgMYQTKor71lRhalh6mITFBVHdXd?= =?us-ascii?q?VKoi1vYA87vllN8GR+Tm003kLqdBmh4HkNGv6ohhQ2kBdxYfwx9Dfw5Fc6Pk?= =?us-ascii?q?TFpDMqn0krmNXlmiuccCbrI6eqXIFWEDL0t0wrPZznXQl5dwqynVZrND3cXb?= =?us-ascii?q?Jek6NgdXx3iA/boZZPH+BTQrdAYBILxvGXYO4o0UhGpSWh3k9H5urFBYFklA?= =?us-ascii?q?Q0bZ6mt2hA1B57bN4pOazQI7JEzkJOiaKVoCCnzPoxzxMeJ0sW62ySeTQIt1?= =?us-ascii?q?EPNrkoPyqo5PJj6AyYlztFZmcMS+Igouh2+UMlJ+SA0yXg3qZeJUC2MeyfKb?= =?us-ascii?q?6WtHbElc6JWV4/zF0Hl1NC/bRs1scjaUWUXVg1zLSNDxQJKdbCKQZNYsVP7n?= =?us-ascii?q?fTYyeOvvjWwZ9uJYq9DProTeiAtaYPnE2rABspH54N7sQdHpigykfYItn7LL?= =?us-ascii?q?Qd0xUi+BzrJEmZDPROYB+LlDAHo9uhw59x3IhdISoQAWp7MSWq/LrXoRUqgP?= =?us-ascii?q?WbVtcsfngaRpcENm4xWMCigC5WoXBADDix0uIExwmP9CPzpiPVDDbgddVjf+?= =?us-ascii?q?uUaQlqCN6o5TU167K2hkLP8pXCO2H6MsxvusPO6eMfoJaHF/NUTLlmvkjBmo?= =?us-ascii?q?lZR2alXHXVHd6zOZfwd5EmbcboBXaiTly/lzU1Qt/rM9apL6iHnR/nSp5RsI?= =?us-ascii?q?ib2jAjMsm9GSsFFhhrpuEM/qR8aRQNY5omexLosRoxN7CnKgeCztquW3qtKS?= =?us-ascii?q?dRT/RH1uq1ebpXwjE2YeCn1nsvUIs6z/Kt/k4XRJAGlBbexeysZ4NGSyj8Bm?= =?us-ascii?q?RdexnTpSo+j2VhOfsywuY7wBPMr1YcNiuGe/F3Z2NfvtEzH1WSLW9xCmoiSF?= =?us-ascii?q?+WlZDD7RK037AO4ytdmM5Z0fdDsHj/opDfYDWsWKiwqZvNqiQucMIorrF2P4?= =?us-ascii?q?H4PsSGs5bekSDFQ5nLrg2JSii6GORGmtJIOiJXXOFImX05OcwBoYdB81A+Vt?= =?us-ascii?q?05J7NUE6QsuqqqZiB6DSEMyS8ZVoWA3DMGgue91LvalguQcJo4PxwetZVOmN?= =?us-ascii?q?0dXDBqYikGvq+sS53Wl3OYSmgMOAoS4x5A6x4Alo9xe+Dl4ZDHTJxXxj5Xvf?= =?us-ascii?q?17TDXEGoNv91vhRWGcmUL4R+m5k+y1wQJSy+rh0twBVx5lCkhS2fpWlkouKL?= =?us-ascii?q?F4MKQRsJTFsjmUekP+u2Lt1fapJEJLxc3SaVL4EJLPtXDgXS0E5X0UWYhPxW?= =?us-ascii?q?nFGpQIjgp5brwnpFZXLYCne0b+5iAkyJ9zE7m+S8+r204vrWwaSCeyD9pBF+?= =?us-ascii?q?ZmvUrWWD1jf5CktpHlNItXQmBO5J2dsVdYnV5qMy6h15VcLcRN7SQNXDhLuj?= =?us-ascii?q?qdu9SzRNdE2c9sAJ8GOs1/tGvlGKNYJJiRpGU7uqDoyn/c4D08rEu2xDCoFK?= =?us-ascii?q?OiSeJW4XEeEB0zJ2uCskkvE/cs8mDK/1DNqF905f1UBrySgkhqvTlyAIhOBi?= =?us-ascii?q?5X2nChMVtzVmNKs+JAKKTaa8ZcWeU9ZQezOxwiEv4rx06J/UZqknrifiN9qB?= =?us-ascii?q?Ba9D7HXwkoSyYan63hmTsApcG7ITUaUY5HbS09byfZLAKWgTxXswtCZEFrQZ?= =?us-ascii?q?8ZBs1I9K0c3YtR4sXNU12sKT0fUBxkKA04zeJVlVRfv0WAZSDdEQ2oeO7UvR?= =?us-ascii?q?15YcidsMykIOn38Qpcloznt+U4+LkZSH29hQ2hW9beoJHgtteSrEuBaL/4M/?= =?us-ascii?q?GgYX/GVDXMlw6/iqokD5bQ4yjeKw5bK55kyXU6f5TuFWnLMglYKK4BIUpUS7?= =?us-ascii?q?x6Y81cou9Gf89kZLoJ+ah1CxKfXRPvBJago+RaLlvIXjTeKDiB8vajro3N67?= =?us-ascii?q?zdVfLgadaIx3rdRKJ3JJh64yHhG7j2yY9e5lb22vB1+0NmU1jJLT6Oo8n6Kw?= =?us-ascii?q?MW4MmialHisYc3HTPXB5dwlGTixl1ae8oQWS2q/4wSyIlF53boVeJ4zk/zvf?= =?us-ascii?q?VQ97Z+84k35KtpycOuKqfMMvlatFJnAhyIBgVr6potAXJwR2ZKYuMLL/fRZ6?= =?us-ascii?q?sZh9j0q+/rD6wX9AGV++tBZNvFPU7BnMe/CiubSRNZgggMsiIaIRGa1/6enK?= =?us-ascii?q?94U8Clqvbl2kg1+VixMgYGzKxx5YeD4qeIouvXYgDQzbgCX6jmXMLzrrIiu0?= =?us-ascii?q?OI//Ikj6IOenZoYwK7DOgdS9QdyXn6waAt1yIsHNvJH6j89/5bS3I5gjXglo?= =?us-ascii?q?h7H1UXBvwUGr6L8p5FnmsimuzZMdoWcrtZmmuUEB6pHbADxWSs6yuNL2lvmg?= =?us-ascii?q?vO3A3oQWOv8F/2qjd1TjfWwNfnjEVVTaW3BEdVXyeyIk93rDKPMxTutNrruK?= =?us-ascii?q?Q69ls6Mmr6u9KRjGGhIq9YH9XjJNyAJik5vFYXjIY0RtGvwo0bF8SyL8oW8H?= =?us-ascii?q?FkdPTe83mrkyhDo6hZm4Xe/tuZ+vLNHXmvl6easamCxChEyngkulEy8tKgNv?= =?us-ascii?q?DL59CRRvSnyWYQQDlluwvAWR61pabXr1YKNkyXyE3LgpAFPslF3Xkk0UHr/O?= =?us-ascii?q?kjQdMp+wpEConNfOgCqi7vODTq3VmTedU3VjOR0zFPBFL6DUF4GLQg2GL3pM?= =?us-ascii?q?/GjnbQ+0YmR4ZqdUznhAB3D50iJkIw7Fga2TYMEQ8QZh+FFr6oGF7lLYweVU?= =?us-ascii?q?cZcxiH26K6eqgv101p3ryv/PPTbfB7B6cVLvZSlBKOk0RbGpMYtq0eWrF8d0?= =?us-ascii?q?ZG9KHJogjiCo7nX+XplHcrLf26WNxa/twZt3os5Qa/XRmg5Y1A77kFkpCIcL?= =?us-ascii?q?BLYZzWsMB79Udn6iYFdjZRjxhnkxO5Teccqfjs4tfBqpqn9PquVKY2SuUT9h?= =?us-ascii?q?g0G3pxj5vqj1A+utHbzeFcRZPJiY7n6gBCP2aKuJrG0xl7MecOJJykfLB893?= =?us-ascii?q?UAICgSIGkOMsSSa/k95S9tLTrS6kdGAswSf9MZPNDClRpSikL3RLFZ7tDbFU?= =?us-ascii?q?OAC4dva8Ao6HL6xyw38ZQmTunt8yO5JZfb71FJPvNMkj9slM7cq+cJwfreEi?= =?us-ascii?q?8X4WOWaxJt2CON14GNC+rs/eWL0NzUUlQGHigqU4dSOjWP4gmnRuuvm5XvTA?= =?us-ascii?q?yU9sHygJUkdEKTXXy9hqIFvbhQEeRYkCX0wiBeFpzph/KSq9es53dYtkZcEI?= =?us-ascii?q?pq8BPLF6NRPpR9ORTlmcimXUd8Bi7ld8HSaBUiou2Wxv0D4+9mLUvxeZcbIg?= =?us-ascii?q?4Yy7L98XdVTAxuSL7wvlqDQe0RZN9mSO7ZoXFU6IJgLbQPPFucpJHxsDdIqU?= =?us-ascii?q?42DxUtaLAtrzxWbE/OkxNJW6zsor4PlhMcUcJluU9LAW+wOXw+6CDBValOiK?= =?us-ascii?q?mRFeEa8jSUTqwVSUloNTl+Qxyt0pV0Z7SphexHsn9Bni5lovglzTJmRBW4uS?= =?us-ascii?q?D3qaMCwzQg96+ktDkbv3xKUPmemT/SCVpf1PQKkbscC3H65FyzZHkDa4Xz76?= =?us-ascii?q?djJcTk7oQh+HM/YRMifyIaR+igDT//j7+QCIyVrN1cnAKNuNnJbbKrKCgSN7?= =?us-ascii?q?c9yRHkR3Vm0AjRhhVo8GwNQjq+6t8oPoO9Ntg5xiCwA2jUaE4M4r9VsMv2rV?= =?us-ascii?q?MEV/U5aVV9wGh4yciHQioNRNDTG2YrkAcrdH9IcJVZ6R8VD6MomCqHvrFa/g?= =?us-ascii?q?EIZzfZCpyl+o7UncjSw3k8Q9BqxmbYpqCeg5Mq13plm8hq4SGSonQScPfYU9?= =?us-ascii?q?RtAnj12YdT0+v+Z++isuofUotp1KyhUOMeMsmk4Wa21otlWkukxrQGAVW0K+?= =?us-ascii?q?4CxrbeUyegV2KYQ+CLfHaWkzY+KE7y6gGiLkcrZ8dSs089LuzCi4ZSlg35S7?= =?us-ascii?q?N0RzmfqkHAwWwmMOMaaxg2t5m9dwwNVu4RaPCWJfIyz/0mFFsMc3jJEDNxC+?= =?us-ascii?q?+yr1Ggh5B7O3F67kXhfeTt8xzpMMeIGhYaD4HWtJhx9uKmRmiZI39v0AVyPF?= =?us-ascii?q?Vo9+fYD1kxsu5cc5CMndnfnth71e8Fd+xxMS0modMTm5hs6Y+T0MuQdhHR1J?= =?us-ascii?q?nyL8nPoveEG/3f01gqemZCX7ocewz6+4U6Pt8/W73UBrZZoxUcBa4kT5wlNm?= =?us-ascii?q?fx8rx0LQxpfg7WfrS0jdHgpviXaZtMu3/W8lUwIT/euxIZyfy0Shd0You3h3?= =?us-ascii?q?X0PJAwRjVBr8BiChtmAItDAcUAoBS7A5SMgqG0l8ex+19mu+8NqafwCPXK1N?= =?us-ascii?q?Oj34VrXpha/leGPDDLC6lunEtlj/6+gvDa0pn+EcniY88LVPBnQm7Zbb/LBp?= =?us-ascii?q?6/KjyLOs3gekNL8KWR0KxnXRWLZSD4Xq2GtCu+OPVi/0o71t8wQO2G6D0r8q?= =?us-ascii?q?Ge8cb+Zn0Tgy6iqX+PO9N77UfWTbjaXhRJWb+M7WpkAYUNYIf0/ftIOtsnlp?= =?us-ascii?q?zUxypWyHwW1MqDPrjkrULW3E9/XYzUIVGv2CsjX4QOZhOlPh1oyUvYrGnNSV?= =?us-ascii?q?JRMuSpN4FQmM2JFBHk4gFUkGApZ2hOUk7pXsvZbW4Wx86zeiWU+w9RSdUOhe?= =?us-ascii?q?i6fQg/rKLkDaFON4lLmOG2ua9Pvdt3JiWHYMlBI2mEKrJqMDtVEujV4VQlfB?= =?us-ascii?q?MAm6Y6V51zZpWUJk4DdkCaxnW2hS/D11DkP+eh37uTIToHulBAw6/B3HBIph?= =?us-ascii?q?Kl8aKdg8v+QPXCYZrrRv/OIW8gUT2HQTkaD0mk4xGntuACsf7eJn0Q9BRcQy?= =?us-ascii?q?SOBQEJp7x+5f3dB3TOg+BmcZsWzNmAUCDxVCBziLcoC24fsUGKXupGFA/KYn?= =?us-ascii?q?D7gXZNkBKtK+UK/n//abCcgK1PVLpSSrBhdvyfXsuQffFFO398jTgdOeChb/?= =?us-ascii?q?XAvr051RTOVmJfHK7Wog6wVkmTF8adzDLiR4ldkJUl8gAy+93fhWcjCavCF6?= =?us-ascii?q?ySqz6n7siziyPO6r6WbXUkf0Fg2LFKO2KG2hQVbTFZUYtHsVzxQqOGe0dH3W?= =?us-ascii?q?4ojuQrwRIXZQBvSSI1gGBOlvrkS9VQEQNSgW6rW/JAaVl2CHU1/EvZh2+6bd?= =?us-ascii?q?8BvJXVQGlTvvsJRJEGJfYloI/QJOMLwfkv0T4n6Cw3uimQFRVc2wSC9afd?= X-IPAS-Result: =?us-ascii?q?A2DeAgCyg/la/wHyM5BcGgEBAQEBAgEBAQEIAQEBAYNAA?= =?us-ascii?q?4FcKIxUjBBJAQEGgQeBMJMygW8UGBMBh1MhNhYBAgEBAQEBAQIBayiCNSSCU?= =?us-ascii?q?AMDAQIkUgMDCQEBSAgDAVMGARIFhRINA6w7M4N5AYRCgieIJRF7gQeBDy+NI?= =?us-ascii?q?wKYNgmOUYdJhSaQY4ElIwEwgVIzGggbFYJ+giAXjWEBUVN6AQEUj1YBAQ?= Received: from tarius.tycho.ncsc.mil ([144.51.242.1]) by EMSM-GH1-UEA10.NCSC.MIL with ESMTP; 14 May 2018 12:45:24 +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 w4ECjNBu002755; Mon, 14 May 2018 08:45:23 -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 w4D1xu2k072297 for ; Sat, 12 May 2018 21:59: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 w4D203ww005760 for ; Sat, 12 May 2018 22:00:03 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A1BLAgA5m/daly0bGNZbGwEBAQEDAQEBC?= =?us-ascii?q?QEBAYNAgV8ojFSMD0sGgQeBMJMygXgLLIRAAoMJITUXAQIBAQEBAQECFAEBAQE?= =?us-ascii?q?BBhgGhgADAydSEFFXBgESgyOBdA0DrCAzg3kBhEOCJ4glEXuBB4EPL40jApg2C?= =?us-ascii?q?Y5Rh0mFJpBjgSUdAYIIMxoIGxWCfoIgDgkRjVABUVOBEI8vAQE?= X-IPAS-Result: =?us-ascii?q?A1BLAgA5m/daly0bGNZbGwEBAQEDAQEBCQEBAYNAgV8ojFS?= =?us-ascii?q?MD0sGgQeBMJMygXgLLIRAAoMJITUXAQIBAQEBAQECFAEBAQEBBhgGhgADAydSE?= =?us-ascii?q?FFXBgESgyOBdA0DrCAzg3kBhEOCJ4glEXuBB4EPL40jApg2CY5Rh0mFJpBjgSU?= =?us-ascii?q?dAYIIMxoIGxWCfoIgDgkRjVABUVOBEI8vAQE?= X-IronPort-AV: E=Sophos;i="5.49,393,1520913600"; d="scan'208";a="275702" Received: from emsm-gh1-uea11.ncsc.mil ([214.29.60.35]) by goalie.tycho.ncsc.mil with ESMTP; 12 May 2018 22:00:03 -0400 IronPort-PHdr: =?us-ascii?q?9a23=3Al8V55xPTbuYPTEFzdS4l6mtUPXoX/o7sNwtQ0K?= =?us-ascii?q?IMzox0K/77osbcNUDSrc9gkEXOFd2Cra4c0KyO6+jJYi8p2d65qncMcZhBBV?= =?us-ascii?q?cuqP49uEgeOvODElDxN/XwbiY3T4xoXV5h+GynYwAOQJ6tL1LdrWev4jEMBx?= =?us-ascii?q?7xKRR6JvjvGo7Vks+7y/2+94fcbglUijexe69+IAmrpgjNq8cahpdvJLwswR?= =?us-ascii?q?XTuHtIfOpWxWJsJV2Nmhv3+9m98p1+/SlOovwt78FPX7n0cKQ+VrxYES8pM3?= =?us-ascii?q?sp683xtBnMVhWA630BWWgLiBVIAgzF7BbnXpfttybxq+Rw1DWGMcDwULs5Qi?= =?us-ascii?q?qp4bt1RxD0iScHLz85/3/Risxsl6JQvRatqwViz4LIfI2ZMfxzcaTBc90aW2?= =?us-ascii?q?dNR99dWS5cDYOmdocBEvcBPf1Ar4bju1QOsQKyBQ2rBOLh1zREgn/70ag83u?= =?us-ascii?q?smDQ/I3BItE8sXvHrWsdr1Lr4eX/2ozKnT1TXMce9Z2Svg44TMbBwtvfSAUL?= =?us-ascii?q?RtesTT1EYvDRvIgEiQp4L7MT2b1eYCs2aZ4OpuTu+jl3IrphttrjSz2ssglo?= =?us-ascii?q?/EjZ8VxFDe8iV5xZ44K8G5SEFnYd6rCoFQuDyHPIV3X8MjQ3xjtTsgyr0Htp?= =?us-ascii?q?67czMKw4kgyh7FZPyIaJOF4gj9W+mMITd3nm5ldKijiBa19Eit0+vxXdS33l?= =?us-ascii?q?ZStidJjMTAu38X2xDN5cWLUOVx80W71TuA1w3f8uBJLEEumabGKJMswKQ8mo?= =?us-ascii?q?QdvEnNBCP7mkv7gamLfUs+4Oeo8f7oYrD+q5+cKYB0jgb+P7wglcKlD+o1LA?= =?us-ascii?q?YDUnaB9+mgyLHu/Ff1T6tUgf0zianZv4rWJcEBqa64Bw9ZyIMj6xe7Dzu+0d?= =?us-ascii?q?QYm2cILE5ddR6ZkoTkNEvCLO73APulnVihki1nyv/GM7H5B5XCNHnDkLPvfb?= =?us-ascii?q?Zn7E5czRI+zcpQ551PEbwBOuz8VVLxtNPCEh81KRC7w+HiCNllzIMRRXqPAr?= =?us-ascii?q?OFMKPVqVKI/fwgI+2NZI8TpTb8JOMo5+LujHAlmV8derOl3Z0MaH+iBPhmLE?= =?us-ascii?q?KZYWS/yusGREMLuBcuCcX3hFyeGRtaZnKzWa10wjAgFMryCYbFW5DoiaGN3T?= =?us-ascii?q?uTBJBaZmlaTFuLFCGsP6GnftNEPCaTJNJx1z8JT76sT6c/2hy08gz30bxqKq?= =?us-ascii?q?zT4CJO8drH1d5o96X1mA0e+CI8MtyGz3uARmQ8u2oJQz4w0+hboFdhggOF3L?= =?us-ascii?q?R0juJwC9Ne/bVKXx08OJqayPZ1XZS6fA/dcNaNVFu8CvmrHzw1BvYw2MNGN0?= =?us-ascii?q?BwB9ujigzOxW+mDqEYk5SVC5EutKHRxX78I4B60XmQkOEFjl87UoN0OGa7nK?= =?us-ascii?q?9j5kD2AILUl0jRk6exaexI2C/L6XfG1meFoVtZTB81VKLJQHQSTlXZoM6/5U?= =?us-ascii?q?7YSbKqT7M9PV0Fge+ENqZFcNz1nB1jSf74Jc7TZm+3hy+ZHx2Ix6+BZ5b3YW?= =?us-ascii?q?hViCHcDlUU1gEV4XuJLwkiFw+/rG/ESj9jD1TiZwXr6+Yo7DuAY0s1yRyaJ0?= =?us-ascii?q?lgzKb9rgUYgf2aVuM7wqMPuCBnrS59Wlm6wYSFJcCHol9bfa5caMkxqHhaxC?= =?us-ascii?q?rzrQ1yMYfoe7ptjHYEfgh3tl+o3BJyXNYT2fM2pW8nmVIhYZmT10lMInbHgM?= =?us-ascii?q?qqaLTKNmn/+gyuYKfK21bYlcyb4boL9O9n8gf+pAulTxs6+i06ldRY1mCToJ?= =?us-ascii?q?DDDQ5UVJP1AQ479Bl/8rfdZCR1p4bZzmZlPqT8tDjek8koC+0oxlfof9pWPK?= =?us-ascii?q?6eUg6nFcocCsU=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0AnAwC1m/daly0bGNZbHAEBAQQBAQo?= =?us-ascii?q?BAYNAgV8ojFSMD0sGgQeBMJMygXgLLIRAAoMJITUXAQIBAQEBAQECARMBAQE?= =?us-ascii?q?BAQYYBleCNSSCUAMDJ1IQUVcGARKDI4F0DQOsIDODeQGEQ4IniCURe4EHgQ8?= =?us-ascii?q?vjSMCmDYJjlGHSYUmkGOBJR0BgggzGggbFYJ+giAOCRGNUAFRU4EQjy8BAQ?= X-IPAS-Result: =?us-ascii?q?A0AnAwC1m/daly0bGNZbHAEBAQQBAQoBAYNAgV8ojFSMD?= =?us-ascii?q?0sGgQeBMJMygXgLLIRAAoMJITUXAQIBAQEBAQECARMBAQEBAQYYBleCNSSCU?= =?us-ascii?q?AMDJ1IQUVcGARKDI4F0DQOsIDODeQGEQ4IniCURe4EHgQ8vjSMCmDYJjlGHS?= =?us-ascii?q?YUmkGOBJR0BgggzGggbFYJ+giAOCRGNUAFRU4EQjy8BAQ?= X-IronPort-AV: E=Sophos;i="5.49,393,1520899200"; d="scan'208";a="13225338" X-IronPort-Outbreak-Status: No, level 0, Unknown - Unknown Received: from updc3cpa06.eemsg.mail.mil ([214.24.27.45]) by emsm-gh1-uea11.NCSC.MIL with ESMTP; 13 May 2018 02:00:02 +0000 X-EEMSG-check-005: 0 X-EEMSG-check-006: 000-001;4469a3a0-19ed-47a3-82a1-7a8e2a31fc84 Received: from localhost.localdomain (localhost [127.0.0.1]) by UPDCF3IC14.oob.disa.mil (Postfix) with SMTP id 40k6Tt4JN6zJ34F for ; Sun, 13 May 2018 02:00:02 +0000 (UTC) Received: from UPBD19PA05.eemsg.mil (unknown [192.168.18.6]) by UPDCF3IC14.oob.disa.mil (Postfix) with ESMTP id 40k6Ts53NTzJ33s for ; Sun, 13 May 2018 02:00:01 +0000 (UTC) Authentication-Results: upbd19pa05.eemsg.mail.mil; dkim=none (message not signed) header.i=none X-EEMSG-check-008: 298918513|UPBD19PA05_EEMSG_MP5.csd.disa.mil X-EEMSG-SBRS: 5.2 X-EEMSG-ORIG-IP: 66.187.233.73 X-EEMSG-check-002: true X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0BSAAB6m/damEnpu0JbGgEBAQEBAgEBAQEIAQEBAYUfKIt2XoxaBoEHgTCTMoF4CysBhEACgyo0GAECAQEBAQEBAhQBAQEBAQgLCwYoL4UpAwMnUhBRVwYBEoMjgXQNrCMzg3kBhEOCJ4g2e4EHgQ8vjSMCmDYJjlGHSYUmkGOBJRyCCjMaCBsVgn6CIA4JjWEBUSMwgQ4BAY8vAQE X-IPAS-Result: A0BSAAB6m/damEnpu0JbGgEBAQEBAgEBAQEIAQEBAYUfKIt2XoxaBoEHgTCTMoF4CysBhEACgyo0GAECAQEBAQEBAhQBAQEBAQgLCwYoL4UpAwMnUhBRVwYBEoMjgXQNrCMzg3kBhEOCJ4g2e4EHgQ8vjSMCmDYJjlGHSYUmkGOBJRyCCjMaCBsVgn6CIA4JjWEBUSMwgQ4BAY8vAQE Received: from mx3-rdu2.redhat.com (HELO mx1.redhat.com) ([66.187.233.73]) by upbd19pa05.eemsg.mail.mil with ESMTP; 13 May 2018 01:59:42 +0000 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id E302C406F11F; Sun, 13 May 2018 01:59:41 +0000 (UTC) Received: from madcap2.tricolour.ca (ovpn-112-35.rdu2.redhat.com [10.10.112.35]) by smtp.corp.redhat.com (Postfix) with ESMTP id 37DA410E51A6; Sun, 13 May 2018 01:59:38 +0000 (UTC) X-EEMSG-check-009: 444-444 From: Richard Guy Briggs To: Linux-Audit Mailing List , LKML , Linux NetDev Upstream Mailing List , Netfilter Devel List , Linux Security Module list , Integrity Measurement Architecture , SElinux list Date: Sat, 12 May 2018 21:58:21 -0400 Message-Id: <567735cef55507a38120e30bea178980bb146313.1526173613.git.rgb@redhat.com> In-Reply-To: References: In-Reply-To: References: X-Scanned-By: MIMEDefang 2.78 on 10.11.54.3 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.5]); Sun, 13 May 2018 01:59:41 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.5]); Sun, 13 May 2018 01:59:41 +0000 (UTC) for IP:'10.11.54.3' DOMAIN:'int-mx03.intmail.prod.int.rdu2.redhat.com' HELO:'smtp.corp.redhat.com' FROM:'rgb@redhat.com' RCPT:'' X-Mailman-Approved-At: Mon, 14 May 2018 08:42:00 -0400 Subject: [PATCH ghak81 RFC V2 4/5] audit: use inline function to set audit context X-BeenThere: selinux@tycho.nsa.gov X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Security-Enhanced Linux \(SELinux\) mailing list" List-Post: List-Help: Cc: Eric Paris , David Howells , Ingo Molnar , Steve Grubb Errors-To: selinux-bounces@tycho.nsa.gov Sender: "Selinux" X-Virus-Scanned: ClamAV using ClamSMTP Recognizing that the audit context is an internal audit value, use an access function to set the audit context pointer for the task rather than reaching directly into the task struct to set it. Signed-off-by: Richard Guy Briggs --- include/linux/audit.h | 6 ++++++ kernel/auditsc.c | 7 +++---- kernel/fork.c | 2 +- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/include/linux/audit.h b/include/linux/audit.h index 786aa8e..f7973e4 100644 --- a/include/linux/audit.h +++ b/include/linux/audit.h @@ -235,6 +235,10 @@ extern void __audit_inode_child(struct inode *parent, extern void __audit_seccomp(unsigned long syscall, long signr, int code); extern void __audit_ptrace(struct task_struct *t); +static inline void audit_set_context(struct task_struct *task, struct audit_context *ctx) +{ + task->audit_context = ctx; +} static inline struct audit_context *audit_context(void) { return current->audit_context; @@ -472,6 +476,8 @@ static inline bool audit_dummy_context(void) { return true; } +static inline void audit_set_context(struct task_struct *task, struct audit_context *ctx) +{ } static inline struct audit_context *audit_context(void) { return NULL; diff --git a/kernel/auditsc.c b/kernel/auditsc.c index ecc0c23..d441d68 100644 --- a/kernel/auditsc.c +++ b/kernel/auditsc.c @@ -865,7 +865,7 @@ static inline struct audit_context *audit_take_context(struct task_struct *tsk, audit_filter_inodes(tsk, context); } - tsk->audit_context = NULL; + audit_set_context(tsk, NULL); return context; } @@ -952,7 +952,7 @@ int audit_alloc(struct task_struct *tsk) } context->filterkey = key; - tsk->audit_context = context; + audit_set_context(tsk, context); set_tsk_thread_flag(tsk, TIF_SYSCALL_AUDIT); return 0; } @@ -1554,7 +1554,6 @@ void __audit_syscall_entry(int major, unsigned long a1, unsigned long a2, */ void __audit_syscall_exit(int success, long return_code) { - struct task_struct *tsk = current; struct audit_context *context; if (success) @@ -1589,7 +1588,7 @@ void __audit_syscall_exit(int success, long return_code) kfree(context->filterkey); context->filterkey = NULL; } - tsk->audit_context = context; + audit_set_context(current, context); } static inline void handle_one(const struct inode *inode) diff --git a/kernel/fork.c b/kernel/fork.c index 242c8c9..cd18448 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -1713,7 +1713,7 @@ static __latent_entropy struct task_struct *copy_process( p->start_time = ktime_get_ns(); p->real_start_time = ktime_get_boot_ns(); p->io_context = NULL; - p->audit_context = NULL; + audit_set_context(p, NULL); cgroup_fork(p); #ifdef CONFIG_NUMA p->mempolicy = mpol_dup(p->mempolicy);