From patchwork Fri May 4 20:54:37 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: 10383983 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 2C83C60318 for ; Mon, 7 May 2018 12:36:20 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 11A6F28B0A for ; Mon, 7 May 2018 12:36:20 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 05A0628B0C; Mon, 7 May 2018 12:36:20 +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 6444828B0A for ; Mon, 7 May 2018 12:36:19 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.49,373,1520899200"; d="scan'208";a="507263811" Received: from emsm-gh1-uea10.ncsc.mil ([214.29.60.2]) by UCOL19PA10.eemsg.mail.mil with ESMTP; 07 May 2018 12:36:17 +0000 X-IronPort-AV: E=Sophos;i="5.49,373,1520899200"; d="scan'208";a="11484674" IronPort-PHdr: =?us-ascii?q?9a23=3ABD017RVtYGVUrn5JymaIvMzeJ4bV8LGtZVwlr6?= =?us-ascii?q?E/grcLSJyIuqrYYhSOvqdThVPEFb/W9+hDw7KP9fy4AipYud6oizMrSNR0TR?= =?us-ascii?q?gLiMEbzUQLIfWuLgnFFsPsdDEwB89YVVVorDmROElRH9viNRWJ+iXhpTEdFQ?= =?us-ascii?q?/iOgVrO+/7BpDdj9it1+C15pbffxhEiCCybL9uIhi6txndutULioZ+N6g9zQ?= =?us-ascii?q?fErGFVcOpM32NoIlyTnxf45siu+ZNo7jpdtfE8+cNeSKv2Z6s3Q6BWAzQgKG?= =?us-ascii?q?A1+dbktQLfQguV53sTSXsZnxxVCAXY9h76X5Pxsizntuph3SSRIMP7QawoVT?= =?us-ascii?q?mk8qxmUwHjhjsZODEl8WHXks1wg7xdoBK9vBx03orYbJiIOPZiYq/ReNUXSm?= =?us-ascii?q?RbXsZVSidPHIWyYYUSBOYFJOpUspXxq14IoBS5GQeiBP3ixiZRinH0wKI6yf?= =?us-ascii?q?0tHxzb3Aw7B9IBrmjbrMnsOKcWVuC0wrTDwTHDYv9T3zry75TGfBA/rP2VRL?= =?us-ascii?q?5+c9feyVM2Gw3Yk1WQspTlMC2J2eQRrmOX6/RsWf6qh2Mhtgp/oCWgxt00h4?= =?us-ascii?q?fJmIwbxFPK+id3wIk3K922VVZ7bNy5HJZeqS6aLJB7Tt8+T2xypCo21qEKtY?= =?us-ascii?q?K9cSMXyJon3Rnfa/mffoaU4xLsSOaRLi1ihH14Zbmxhguy8Ei9weDhTMm00V?= =?us-ascii?q?lKriVektLRsX0NzRPT5dOcR/tn4EiuxDaP2BrP6u1ePU80kq/bJocnz7UtlZ?= =?us-ascii?q?QTqVzOEjL5lUj5lqObdlgo9vK25+nofLnqvIKQO5d1hwz/KKgih8+yDOYiPg?= =?us-ascii?q?QQUWWW9/6w2b/t8ED/Xb5ElOc5krPDv5DfPckbo6m5DBJL3Ys78Ba/Cium0M?= =?us-ascii?q?wfnXkaMFJJYBKHgJbtO1HJOP34Ee2wg06tkDd23PDKJKHhA5XRIXjDl7ftZ7?= =?us-ascii?q?B95FJHyAUv19xf4pNUCrUZLPLyXE/+qsDYAwckPwG7zOvrEtVw2p4EVW6RDa?= =?us-ascii?q?KVLrnevUKQ6uIqOeaMZYsVuDjnK/gi4v7jlWQ5lkEZfamo25sXdX+5Eu19LE?= =?us-ascii?q?WefHrshMsOHnkRvgclUOzriEGNUT5UZ3qoWaI8/Ss0BJipDYfEWIChmKaB0z?= =?us-ascii?q?ujHp1KemBGDUiBEXXvd4WCQfgMdCKSLdVnkjEfV7ihTIkh1RS0uw/h17poMP?= =?us-ascii?q?DU+jYCuZLkzth16PXZlQsu+jxsE8Sdz2aNQnl2nmMKXTA5wKN/oVd6yleF0K?= =?us-ascii?q?h4nedVFdJX5/NUXQY1LoPcz+pmC9DvQA7Bec2JSFm+SNW8HT4xVs4xw8MJY0?= =?us-ascii?q?tlA9WtkAvM0DSsA78Ui7yLA4c58qPC0HfvOclx0XHG1LMuj1M+WMtAKXWmhr?= =?us-ascii?q?Jj9wjUH4PGjkKZl6CsdasBwiHN8GaDwHGUs05GSg5wVr/JXXcFZkvZtd75/F?= =?us-ascii?q?/NT6eyCbQ7NQtM0dONKrdQZd3zllhJWPDjONHCbG2rgGewGQyExrWSY4r2Y2?= =?us-ascii?q?8dxjnSCFAYkwAP+naLLQk+BiG9o23ACDxhC1fvbF3w8elkqHK2VUg0zxmUYE?= =?us-ascii?q?1n0rq64B8VhfiHRPMU0bMIoiAhqy97HFylxdLZF8KApxZ9fKVbed484FZG1W?= =?us-ascii?q?XftwFmO5ygK7luhl8YcwhtuUPhzQ93CoZBkcg0snwm1gxyJryE0FlZbTOXwY?= =?us-ascii?q?jwOqHLKmn15B2uZa/W2lXb0NmI4KcC8/o4pEv+swGuDEot6W1n08NS03ue+J?= =?us-ascii?q?rFEBYSXYj2UkYt+Bhwv6vabTUl54PIyX1sNrG5sjHY290zAusq1hegf8xEPa?= =?us-ascii?q?OBDA/yEtQWB9OgKewxgVSpaQgEPO9K/q4uI8ymb+eG2LKsPOt4nzKpl2dH4I?= =?us-ascii?q?dg0k+X9CpzUO3I35EYw/2C2QuHTTj8hk+7ss/rgYBEeS0SHm2nxCf+GYFRfK?= =?us-ascii?q?xycpgRCWq1OcK42tB+i4TqW35C+16pH0kG19OxeRqOc1z92hVd2lgNrnyjhy?= =?us-ascii?q?S41CB0kjEurqeExyzB3+XiewQBOm5XRWltl03gIY6qgNAGREKodRQmlAO55U?= =?us-ascii?q?bmwKhWvL5/IHTOTkpTcCj2Km5jXrG2trWcf85F8IkovjlPUOSgfVCaTabwow?= =?us-ascii?q?AU0yP5GGte3yw7eiqxupX/mBx7hmedI2x1rHbDf8F/2wvf7sTGRfFNxjoGWD?= =?us-ascii?q?V4iT7PC1myJdap+cmUmInZsuClTG+hSINccTPwwoOdsSu3/2pqAQewn/qrgN?= =?us-ascii?q?3oDRA60TPn19ltTSjIshf8bZX316S9K+JrZFVnBF/768p8FYFziY8whJAW2X?= =?us-ascii?q?cAnJWV+mALkWDpMdVUwaj+dmYCRSYXw97J5wjowEljLnOSx4LlT3md2dVuZ9?= =?us-ascii?q?27YmMQxyI84NtHCLyM7LxFmyt1o0a3rRnLbfh7gDgd1eMk6GQGjOERpAot0i?= =?us-ascii?q?KdD6gIHUlfOSzskwqH78qio6VQameiaqOw1FdiktC6Fr2CpRtcWHnhcJc4AS?= =?us-ascii?q?Bw9tl/ME7L0HDr6YHrZt/QbckIux2XjRjAifNVKJQvmfoWnyZnPnj9vXI9we?= =?us-ascii?q?4hkRNuxY26vJSAK2h15KK2GANYNjnraMML4D7ti7pekdiM3420A5VhASsEXI?= =?us-ascii?q?HzTf6yCzISsunnNxySHzIipHebHqDfHQCB50t8qXLADYyrPWmNJHYF1dViWA?= =?us-ascii?q?WdJEtHjQAKWjU1g4U0Fh6sxMP8cEd1/DYR6UDkqhFU0OJnKwH/UnvDpAevcj?= =?us-ascii?q?o0UIKQLAdS7gxZ+0jVMNCe7+JqEyFW5JKhqhaBKmuBZwRHFWsJQFCLB0j/Pr?= =?us-ascii?q?my4tnN6+uYB+q6L/TQeriOrOteV/mGxZ2xzotm4zaMNsKKPnZ8FfE73FRMXW?= =?us-ascii?q?xhEcTDhzoPUzAXlz7Kb8ODqhez4Ct3rty48PTuQw/v65WABKZVMdV14R+2mb?= =?us-ascii?q?2DN+mShClnNTlYyokAxXjSyLgQxFQSkT1hdyGxEbQcsi7AVL/flbNSDx4cbS?= =?us-ascii?q?NzKNZE4rki3gZTI87bi9L01rl+jvIvDVdKS0DhkNmzZcMWO2G9KE/HBEGTOb?= =?us-ascii?q?SIPz3E3dz4YbimRr1WkOVUsAawtC2BHED/OzSPjT7pVwqgMetUliGUIAReuJ?= =?us-ascii?q?2hchZqEWXjSsjmZQejMN9vljA2z7w0hmnRNW4APzh8ckVNoaeW7SxEg/VwAW?= =?us-ascii?q?hB4mBiLemelCaT9/PYJYoOsft3HiR0kPpX728hxLdS6CFERed1mDfJrtJ0uF?= =?us-ascii?q?GpjPWAxiB8UBVQrjZLhYSLvVhtOKjC6pZBWWzE/A8W7WmKBRUFvcdlCsbou6?= =?us-ascii?q?BW0NTPk7jzKDha+dLO4cQcH9TUKN6AMHc5NxrpGTrUDA8bQj6wLmzQnVJSkO?= =?us-ascii?q?uV9nGPqZg6sJfskoIUSrBHTFw1Cu8aCkN9EdMZIZd3UTQkkbiAgcEV+3Wxtx?= =?us-ascii?q?jRS99cvpzdUfKSG/rvIi6DjbZYfxsI3a/4LYMLO4Lh1ExtcEd6k5rRFkrXRd?= =?us-ascii?q?BCvCthbgour0VM9HhxVWoz2k3/ZgOq+n8TGua+ngQqhQtmfeQt6DDs7k8rJl?= =?us-ascii?q?rNoSs8ilMxmdLkgD+Pdj7+N72wXYZIBCr3rEU+LpT7QwNpYgKohkxkKC3IR7?= =?us-ascii?q?RPgLt8bWprkhPTuYNTGf5ASq1JeB0QxfGXZvUw1lRcriSnxVNZ6ubeDJtilR?= =?us-ascii?q?cqcYSyoH5a3AJjdtE1L7TKJKVV1lhQmr6Oviiw2+8v2A8RPVwN8GKJeCMToE?= =?us-ascii?q?wHLKMmJyuz/ux07QyNgSdMd3YWW/otuPJq+Vs3O/6cwCL4z75DNkexOvSZL6?= =?us-ascii?q?yHoWfAkdWFQlA31kMTi0lK57520dwgc0qVTUwvyqWeFwgRP8rYNQ5Vd9ZS9G?= =?us-ascii?q?TUfSuWq+XC34l1MJunGeDyUeCOtL0ZjVmlHAYzAosM6coBHoG20E7GLcbrNr?= =?us-ascii?q?gFxgsx5A7zPlWKEOxJeA6XkDcAu8yw0YV43ZdcJj4AGmVwKj+45qzNpg8tjv?= =?us-ascii?q?uDR8k5bWsHXoseN3I2RM27lzRfv3teEDm9yvgZxxSa7z/guiTQCyHxb95kZP?= =?us-ascii?q?eOexxsDtC3+TIk/qi5j17X74/SJ2bgNdRtotXP8/8Vp46bC/NISrlwq1zclJ?= =?us-ascii?q?dcR3yrVW7PDNG0KoPsZIkraNz7Fmy1Ukejiz4vScf+IsqtJLCSgQ70XYZUrJ?= =?us-ascii?q?Wb3Dc7OM+hFzEeHhBwp/0D5KN8fgAMfps7YB7yuAslLaC/JhmX0sm2SWa3NT?= =?us-ascii?q?RWV+Vfzfm9Z7FP1SUsau66x2c+QZ4iyum28UgNRJYMjh7E3vusfIheXjL1Gn?= =?us-ascii?q?BEdQXPuDA1l25/OeYu2u0/2g/HsUEAMzCXc+xkcHdLsM86BV6JO3p5F3Q4SE?= =?us-ascii?q?GGjYrY+AGsxbAT8zFan9ZO3u1PqGL+sYPHYDKwRKyrro3YszAmbdgnv6JxMY?= =?us-ascii?q?vjIs+dtJ3GhzLRUYPevxGCXiOhC/Vand1QLz5CT/lThWEpI8oGtpRd6UApTM?= =?us-ascii?q?cxO6RPCLUwprCtcTdrESwSwjUFWI6bwDMCheO827/blhiOapQiLAILv4lCgt?= =?us-ascii?q?cHVC52eCwerre5V4rKj2+EVnQLIAAL4ARW/g0AjIhwcfv+7YrUVp9D0SBWrO?= =?us-ascii?q?xwUivKEJlo+F/7SmCZgVj4VPWhnfam3RhXzP721NkURgJ/A1BHx+lKjksoNK?= =?us-ascii?q?13K64Is4/EqDOHaUP6vGPoyOunPlZRytbZd1zmA4Xbq2XwSCoc+WcbRYVX0n?= =?us-ascii?q?HQCYwSkxZlaKYsvFhMJZqpelz95zM624RpHr+4Vc+wylcrt3kGQTulE95GC+?= =?us-ascii?q?F7rV3XQydpY5a1p5X5I59SWHNf+IWBq1dFl0VgKza5yZ1YK85X+D4NUj9PoT?= =?us-ascii?q?GTvNapTc1D3sh2D4QSLdhjoXf9H7hEOIOQo30wtbzj0HjZ+yozsF2i3jW8B7?= =?us-ascii?q?e4T/5F/20ZAggmPX6eqlQpD+c28Wff6VHNslF1/+dHHbeDl0NxryhhHppWHD?= =?us-ascii?q?ZGyWilL0hvTHlBq+haNKPVc8lHTvkueROvPgcxGeQg30OX4UF+hW35bDBqtg?= =?us-ascii?q?tG5yDdWBE5VSkPjbf3gzIertyoNCQHRJ1WdTUhdznKKwaFliBNphpfbFtqW5?= =?us-ascii?q?8BCNZf574bxZdU/tbFSUu0KyEFWwJtOxkl3vVBjk5Mrl+YeTzDAgW1b/rPtA?= =?us-ascii?q?N4fduJps6zMPv55BtHip/gsO0g66UMWmCpmQy3TtDatILzqtqKtk6Se6jiKO?= =?us-ascii?q?28fWXNTD7SghCsnb0kFYXF/zDPMApHLJl30WErYZb9BmLXPxlKOqwWKlFHWq?= =?us-ascii?q?B9bNVJvvpVZ9R4eKoT/69iGA6HTAv1GIOztPlGMkrTRTPGIiWb7OOwvILT4q?= =?us-ascii?q?bBSeX7YsyMwGjHTLxpMphm7jn0Bqnl3ZVY+kXoxvdn7ll6RkTeMyCdsNThIR?= =?us-ascii?q?sG5NG5dkv+pJImAC/WDYxrkHrq20FAbdYYTDOs8JQE0pNW8nLwRfh/0kjpv+?= =?us-ascii?q?1Y76Nk5pUv47B11ce0Ir/fKehAsUB5HBebGx5n9ogpAGhjXWBeePERKPbWfa?= =?us-ascii?q?Qdk8/ut/r7F6sN6B2a4+ZZc8fIJ1ndmsmjDTGRURlEkx0FqT4eMAScy+KFlL?= =?us-ascii?q?VuRsu+o+j2xF4t40OiIREc1LBi+52I+qyWq+/LdxHR16QLWrD2RsPvqbQho0?= =?us-ascii?q?GS6uc+lL4JYWx1ZxeoEPYGW84Y22fgybwqzSMwHMPCBb3g/uVDW2g+njL6lJ?= =?us-ascii?q?B3B08WFe8MHbqX4YRemX81m+7DOd0QfKBCgGGPGgO6HbIZ1X6k8S2XIHJigh?= =?us-ascii?q?3U1RH/X3+z5kfsrSBkWSvM08vjkk1NW7m4GEdSXi6pOUtmvzOKJwfnqcT4tr?= =?us-ascii?q?807E4sNGzortWNlHGuOLlPBc3wOMScITUopFIQlJAxRN2v2YUAFNq4PtgQ8G?= =?us-ascii?q?9xbuHf62OtnC9NuaFHiJTC4suN4PXYAWGgj7GGq7WK3D1YzHw4sEo+6tCmM/?= =?us-ascii?q?HC/dyKQ/Km12YLVSh/oBfBXwSoqrPHs1AUJFaL31nRlIwNJNFZ0mEy1lv66+?= =?us-ascii?q?g7XNIz6AJeG57FZ/MFozDzJDT0zkiEbtIyVymRyT1XEUzpEVh2H6g8wmHwvN?= =?us-ascii?q?nTmXfW5VIoWpF6d1b7ihxvE4U4NUUt5UATwioYFAgAaQuWDL+2Ckv4KosET1?= =?us-ascii?q?IMaQyd3Li9eKc4w1F8wq+16O/Ud+x8CLIHNuxBgQ6WgFhbBpUWvLUfQLN9YV?= =?us-ascii?q?BS7rLYqxP5C4f5Q/jpi2Y/OeeyQsBA/sATr2Ei7RqnRxq89ZdD6K4Wh4uJdq?= =?us-ascii?q?5fb5nDpsJ870Z75T4XbCNNnRx/ggilXuAbue/s/MLUsIey6uapTqYiXf8b9x?= =?us-ascii?q?8uB2Rxl5HwmkwsocnL1+dATY3YkZz//xpRI3GWuIbb3R58KfANK46yZ7Zv6X?= =?us-ascii?q?EHJykYJ3ITMtubcOE87DVxMDrP51xDDMQMZckbPMbXmgBblFfpWLdN+crfAF?= =?us-ascii?q?OYDJ1zd88w5Wrt1D816Yc8Uvrn6DKuKpDQ9UtNMO1fjCVsj9/CoOkVwebMBy?= =?us-ascii?q?gX+3aZdgN1zjmEy5aTF/b65f+Mx83MV1MaAi42VJ9QJDWc9gyhWuq1k5LpXg?= =?us-ascii?q?SP6sDthJI+dUSQRmG+naketqZDD/RAiyXh0TREEID6me6VucK26GRLrl1HDJ?= =?us-ascii?q?pz7RrdFaVZP5V0JRP4ls2xSUhnHCf/ecbUdh01uOqN3eoM5upzNkTkaY8cOB?= =?us-ascii?q?IExKrw6WBJQQt2VL72olGZUPoeZNR6U/PEtWlZ559vJaEJPVidooHqrzhTpV?= =?us-ascii?q?A5BQ8mcrkwoSJAeknJhg1VVL7+uKQchQsETd55pUhMFHqyOGI55zrHU75Zg7?= =?us-ascii?q?WRCPwR7zWcU60PU0RuMiNlQBO12Y5je6WonfBZqGxGmj5yoPkw3zxgWhS8pT?= =?us-ascii?q?Xmp7gR1jI45LG4qDIBtGRETuWAiSjID05OzPAXjagBCnbi7ke8bGMEbIvo77?= =?us-ascii?q?ltPd7g+pU543QjfRUjeDULXea+BCH+gaOIBpeCsdxGix6LpsrOcaW/LS4MOb?= =?us-ascii?q?Qh0RjjXWRy0hDCnBZ092sGWjqg7NsjJISzJ8klwi6oFHPAdFYL5KNJsdf+uU?= =?us-ascii?q?QNTOQodVNr2H9j3dSfRi0RWMzPHH44jg0laWVHc5JD7gQXF6syjTaLualG+B?= =?us-ascii?q?8bYDHOHoSj5IbQgd/C2WMhQtdy2mLWuqqFi4sx33J7ndN08jWDuG8Wd+zfT8?= =?us-ascii?q?9sHmbz2ZlCxuDkYPWtqO8HQpN8yLu9SP8CLtWj+Wyu1ZVkREClwrUeH0KnP+?= =?us-ascii?q?IYx7bbUiKlSWiGVuSRd2iDgSw1Mkno5RmnNlc3cttFr1chMuvegZ5RjwPgUa?= =?us-ascii?q?tuRiWRuVDU0ncuMeYbdwIqooeoZRYGTOkLZ+iTPeIu2uExCEMQb3/VGit7E+?= =?us-ascii?q?i2sVqzk4VgI3Vg5V/1Yf/x8gDnLNSSBgMEHpDEoZJr//y1WH6BM2d6zBJuJE?= =?us-ascii?q?l06/vfF1Mpu+9YcpaRm8XQhtti3e4BdvdtKjE9usUIl4Ji84aU1sCKfQvWzp?= =?us-ascii?q?boKtHfuuKYDOHHz0Q2ZmFaVaIUYQbv6IomPt45WrvTHbxCsBQCBKg6RoIuN2?= =?us-ascii?q?Pw9KFyMQNyfRTdZLOugsnlvuiLfIdbp2fK7lIsKyfRox8Dxea3TQx8dJ+nnG?= =?us-ascii?q?jyIJYsRjJBqN1tFxRmHItTG88aqQqoHYKUkrmhi9Ct40N6p/MKsa3oB/DI0d?= =?us-ascii?q?S52J9xX4Jb5UyQJzvRArNkgkF7geSzmPvA1YPxCcz6c9MeSOd7WnLFaqPBHo?= =?us-ascii?q?inMTKONMf8dFJH/rOfy795TAueZDr4X6uHsy2kMu9o4UMlxYxkL6Lvy2kJ7r?= =?us-ascii?q?fGyJ7bem1aum+GpH+NNZ1QpHjLHvCWCxZVT+eVtW94EawLRZH5+OcHLZopx9?= =?us-ascii?q?3Kp0FXzxFmmJ+BIq68vgrP11h9eJbzMkTkwWA6VJMMLRD5NlEj1yuRjnXbHG?= =?us-ascii?q?QUCMW4BcRzyOuNFQD36kB00UQkZ2pAHGWgYdaKJSBP3c+iaACU3BxEAsxFnO?= =?us-ascii?q?Otf0M88KqoRr8scrNIheursKkKi55FJj/CQIB+PjrMZOtwMyZfD+HTqUJtbh?= =?us-ascii?q?MavrwdRIg4f96NLVkBPUPGzjn9m0+K9Uzyaszk76uCPTwX7mQP6rXJzDxB7w?= =?us-ascii?q?24ourR1sniVq3JKYr7V+PIMTY0EzSdSSk2HG639lq+/fkJpvyVJSEYuF9CJm?= =?us-ascii?q?qzDhIeqbpuscmYK2LagvB5cZgHguzScjr7SCxkmaEuGzxG/RSIQvweBUzXaW?= =?us-ascii?q?Psj3BdpB2KOPBB5zTmYqeey64TXPYZVM8ESdCdQt3FabhaJiw03mECNeK9ec?= =?us-ascii?q?DMh6oo2VLPC20CGu/H80PIH2CMRfnJ/TPgXYwPs8Abpztg0MjRkSBsW/DSML?= =?us-ascii?q?y3vTOi8oekyi2fvLuNBSEWf0UpjbdaUyG6yx5aJTRBW4xP4hPkX7KAakBQ1X?= =?us-ascii?q?kgleNp3VoWdR9uVmF1jSYEoc2TMJZycXdM0iWjTfgdYxZyBTI0u0qL5l6XA5?= =?us-ascii?q?QMusHWEmlZ8LZECY8QN+Ih54SfPqwMiO0o0zRrrG1ysyiUA15HyAPQ9a3WEa?= =?us-ascii?q?8=3D?= X-IPAS-Result: =?us-ascii?q?A2BjBACFR/Ba/wHyM5BcGgEBAQEBAgEBAQEIAQEBAYNBA?= =?us-ascii?q?4FbKIxPjBVIAQEBBoEHgTCVFRQYEwGHESE3FQECAQEBAQEBAgFrKII1JIJQA?= =?us-ascii?q?wMBAiRSAwMJAQFICAMBUwYBEgWFDw0DqSczg3kBhESCOIglEXuBB4EPL40jA?= =?us-ascii?q?pgqCI5Nh0OFH5BMgSUyIoFSMxoIGxWCfoIgF41hAVFTegEBFI5sAQE?= Received: from tarius.tycho.ncsc.mil ([144.51.242.1]) by EMSM-GH1-UEA10.NCSC.MIL with ESMTP; 07 May 2018 12:36:17 +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 w47CaGmT030471; Mon, 7 May 2018 08:36:16 -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 w44KtQTs082808 for ; Fri, 4 May 2018 16:55: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 w44KtLm7032021 for ; Fri, 4 May 2018 16:55:33 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A1BjAACLx+xalyoaGNZcGgEBAQEBAgEBA?= =?us-ascii?q?QEIAQEBAYNBgV4oi29ejBVLBoEGgTCTG4F4CyyEQAKCOCE0GAECAQEBAQEBAhQ?= =?us-ascii?q?BAQEBAQYYBoYAAwMnUhBRVwYBEoUHDQOqZDODeQGES4JCiCURe4EHgQ8vjSMCm?= =?us-ascii?q?B0IjkyHQYUZkEaBJRyCCjMaCBsVgn6CIA4JEY1QAVFTgRCOZwEB?= X-IPAS-Result: =?us-ascii?q?A1BjAACLx+xalyoaGNZcGgEBAQEBAgEBAQEIAQEBAYNBgV4?= =?us-ascii?q?oi29ejBVLBoEGgTCTG4F4CyyEQAKCOCE0GAECAQEBAQEBAhQBAQEBAQYYBoYAA?= =?us-ascii?q?wMnUhBRVwYBEoUHDQOqZDODeQGES4JCiCURe4EHgQ8vjSMCmB0IjkyHQYUZkEa?= =?us-ascii?q?BJRyCCjMaCBsVgn6CIA4JEY1QAVFTgRCOZwEB?= X-IronPort-AV: E=Sophos;i="5.49,363,1520913600"; d="scan'208";a="269533" Received: from emsm-gh1-uea10.ncsc.mil ([214.29.60.34]) by goalie.tycho.ncsc.mil with ESMTP; 04 May 2018 16:55:32 -0400 IronPort-PHdr: =?us-ascii?q?9a23=3AX4mUbRLK/JjnW73g6tmcpTZWNBhigK39O0sv0r?= =?us-ascii?q?FitYgXKPz+rarrMEGX3/hxlliBBdydt6ofzbKO+4nbGkU4qa6bt34DdJEeHz?= =?us-ascii?q?Qksu4x2zIaPcieFEfgJ+TrZSFpVO5LVVti4m3peRMNQJW2aFLduGC94iAPER?= =?us-ascii?q?vjKwV1Ov71GonPhMiryuy+4ZLebxlGiTanfb9+MAi9oBnMuMURnYZsMLs6xA?= =?us-ascii?q?HTontPdeRWxGdoKkyWkh3h+Mq+/4Nt/jpJtf45+MFOTav1f6IjTbxFFzsmKH?= =?us-ascii?q?w65NfqtRbYUwSC4GYXX3gMnRpJBwjF6wz6Xov0vyDnuOdxxDWWMMvrRr0vRz?= =?us-ascii?q?+s87lkRwPpiCcfNj427mfXitBrjKlGpB6tvgFzz5LIbI2QMvdxeb/Tc9MESG?= =?us-ascii?q?ZYR8pfVTFOApmlY4USEuoBJv5YoJfhqFsStBe+AQ6sBe3ywTNMhnL62Ks33O?= =?us-ascii?q?M9Hw/GwgEsBssCvnbJo9XvLascTP21zLLQzTrdc/xWxSr25IzWfhw9pP2BW6?= =?us-ascii?q?97f8jMxkk1Dw7Lk1Wep5LrMT2W1OsNvWqU7+R7WO6zl2IqsR19riSzysswjI?= =?us-ascii?q?TCm4IbykrD9SV82Is7Ody4R1J7YdG+CptfqjyROYprQsIiXmplpTw6yrwJuZ?= =?us-ascii?q?60ZygB1ZMqxwTQa/OcaIWI+AzsW/uRIThimHJpYq6whxG38UW5zOD3S8q60E?= =?us-ascii?q?5SoyZbj9XBuWoB2wLc58SdVPdw/12t1DmR2wzL6+xJIFo4mbfYJpMj2LI8iJ?= =?us-ascii?q?QevErZEiL0lkj7irKdeF8+9eiy8evnZ63rpp+COI9wjQHzKqohlNG/D+klLw?= =?us-ascii?q?QDW3KV9Pig2LDt50H2XqtFjvgtkqnWqpzaIN4Upq+9AwNP14Yj6hK/Ay+n0N?= =?us-ascii?q?Qeg3YHMEpIdAyag4XmIV3CPv/1Ae2hj1mtijtmyO7KMqXkAprXL3jDlLnhfa?= =?us-ascii?q?x6605Z0Acz199f6IlPB7EbPv38R0/xu8bEDhMjLwO0xOPnBM1n1owCQWKPHr?= =?us-ascii?q?OZMKTKvF+T+O0vJ+iMZIkIuDfyMPUl+/7vgmM5mV8aZ6Wp24AXZ2qiEvRpJE?= =?us-ascii?q?WZfymkvtBUNWYMoxp7ZfHmiUHKdDdSY3e0UOoY5yonQNaiDIHeVsWknbCAwA?= =?us-ascii?q?+hE5FWb3wAAVeJRzOgU6ahf79YbCOUP98kkTEeU7WlY5Eu2AvotwLgzbdjaO?= =?us-ascii?q?3O9Xtc/bbi0sVlr8veiT0/63RJF9+ByWyESilRl2IMRjk5lIR+ulA1nlGOza?= =?us-ascii?q?R1ndRGGtFJofBESAE3Mdjb1eMsT5jUVx7Pf9OVRUzubti4DDV5atMq35daZU?= =?us-ascii?q?thFdSmkh3ZmianHbIRv6KECYZy8a/G2XX1YcFnxCCCnI0giUQ2CvBCPnC8h7?= =?us-ascii?q?Juvy3UC5PNng2dlr22PfAY3SjQ5CKYwGGTpkBEQUt1VqnYWX03eETbt5L661?= =?us-ascii?q?nEQrvoDq4oZE8J6MieJ6RQa8H4xXBLTez+ItnbbmSt006qDhaJ2r6HcJfwdi?= =?us-ascii?q?1J2CTbFVhBkgYP8HmcNBQvLjmurniYDzF0E1/rJUT2/r864EiWSk4y0hHCa0?= =?us-ascii?q?x6y/Lh4RMRhPqBW9sPz7kEv2EnsDwyE1GjiYH4Ed2F8jBgd6VVe991z0pWnU?= =?us-ascii?q?jDtgNyJdT0Na9orkQTfwR+owXl0BAhWdYIqtQjsH5/lFk6Eqmfyl4UMmzFh8?= =?us-ascii?q?qiM6DLKmT04BGkYrLX3VebytuN56MT86th+WjYkivyPXILqysh3tRQyHTa45?= =?us-ascii?q?zLCEwXUJaiGko09h0vobbcb2F94o7PznRjPOGytSOKwNMmAuYpi16gct5TPb?= =?us-ascii?q?nCFVr0FMsXCg=3D=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0A5AAAzyOxalyoaGNZcGgEBAQEBAgE?= =?us-ascii?q?BAQEIAQEBAYNBgV4oi29ejGAGgQaBMJMbgXgLLIRAAoJZNBgBAgEBAQEBAQI?= =?us-ascii?q?BEwEBAQEBBhgGV4I1JIJQAwMnUhBRVwYBEoUHDQOqZTODeQGETIJCiDZ7gQe?= =?us-ascii?q?BDy+NIwKYHQiOTIdBhRmQRoElHIIKMxoIGxWCfoIgDgkRjVABUVOBEI5nAQE?= X-IPAS-Result: =?us-ascii?q?A0A5AAAzyOxalyoaGNZcGgEBAQEBAgEBAQEIAQEBAYNBg?= =?us-ascii?q?V4oi29ejGAGgQaBMJMbgXgLLIRAAoJZNBgBAgEBAQEBAQIBEwEBAQEBBhgGV?= =?us-ascii?q?4I1JIJQAwMnUhBRVwYBEoUHDQOqZTODeQGETIJCiDZ7gQeBDy+NIwKYHQiOT?= =?us-ascii?q?IdBhRmQRoElHIIKMxoIGxWCfoIgDgkRjVABUVOBEI5nAQE?= X-IronPort-AV: E=Sophos;i="5.49,363,1520899200"; d="scan'208";a="11457975" X-IronPort-Outbreak-Status: No, level 0, Unknown - Unknown Received: from uphb3cpa03.eemsg.mail.mil (HELO USFB19PA03.eemsg.mail.mil) ([214.24.26.42]) by EMSM-GH1-UEA10.NCSC.MIL with ESMTP; 04 May 2018 20:55:32 +0000 X-EEMSG-check-005: 0 X-EEMSG-check-006: 000-001;33892294-2569-4913-ad23-2e8e07e2a0b6 Received: from localhost.localdomain (localhost [127.0.0.1]) by USFBF3ID07.oob.disa.mil (Postfix) with SMTP id 40d46935Chz17xpj for ; Fri, 4 May 2018 20:55:29 +0000 (UTC) Received: from USFB3CPA06_EEMSG_MP28.eemsg.mil (unknown [192.168.16.23]) by USFBF3ID07.oob.disa.mil (Postfix) with ESMTP id 40d4685NZRz17xpy for ; Fri, 4 May 2018 20:55:28 +0000 (UTC) Authentication-Results: USFB3CPA06.eemsg.mail.mil; dkim=none (message not signed) header.i=none X-EEMSG-check-008: 14806362|USFB3CPA06_EEMSG_MP28.csd.disa.mil X-EEMSG-SBRS: 3.5 X-EEMSG-ORIG-IP: 66.187.233.73 X-EEMSG-check-002: true X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0BiAACLx+xah0npu0JcGgEBAQEBAgEBAQEIAQEBAYUfKItvXoxgBoEGgTCTG4F4CysBhEACglk0GAECAQEBAQEBAhQBAQEKCwkIKC+FKQMDJ1IQUVcGARKFBw2qZzODeQGES4JCiDZ7gQeBDy+NIwKYHQiOTIdBhRmQRoElHIIKMxoIGxWCfoIgDgmNYQFRIzCBDgEBjmcBAQ X-IPAS-Result: A0BiAACLx+xah0npu0JcGgEBAQEBAgEBAQEIAQEBAYUfKItvXoxgBoEGgTCTG4F4CysBhEACglk0GAECAQEBAQEBAhQBAQEKCwkIKC+FKQMDJ1IQUVcGARKFBw2qZzODeQGES4JCiDZ7gQeBDy+NIwKYHQiOTIdBhRmQRoElHIIKMxoIGxWCfoIgDgmNYQFRIzCBDgEBjmcBAQ Received: from mx3-rdu2.redhat.com (HELO mx1.redhat.com) ([66.187.233.73]) by USFB3CPA06.eemsg.mail.mil with ESMTP; 04 May 2018 20:55:27 +0000 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 1E91D81A88AD; Fri, 4 May 2018 20:55:27 +0000 (UTC) Received: from madcap2.tricolour.ca (ovpn-112-12.rdu2.redhat.com [10.10.112.12]) by smtp.corp.redhat.com (Postfix) with ESMTP id C3859215CDA7; Fri, 4 May 2018 20:55:24 +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: Fri, 4 May 2018 16:54:37 -0400 Message-Id: <2f0566af8ccafdaf400a3d002cb4aef9b80e44cf.1525466167.git.rgb@redhat.com> In-Reply-To: References: In-Reply-To: References: X-Scanned-By: MIMEDefang 2.78 on 10.11.54.6 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.8]); Fri, 04 May 2018 20:55:27 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.8]); Fri, 04 May 2018 20:55:27 +0000 (UTC) for IP:'10.11.54.6' DOMAIN:'int-mx06.intmail.prod.int.rdu2.redhat.com' HELO:'smtp.corp.redhat.com' FROM:'rgb@redhat.com' RCPT:'' X-Mailman-Approved-At: Mon, 07 May 2018 08:32:10 -0400 Subject: [PATCH ghak81 RFC V1 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 | 8 ++++++++ kernel/auditsc.c | 6 +++--- kernel/fork.c | 2 +- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/include/linux/audit.h b/include/linux/audit.h index 93e4c61..dba0d45 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(struct task_struct *task) { return task->audit_context; @@ -472,6 +476,10 @@ static inline bool audit_dummy_context(void) { return true; } +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(struct task_struct *task) { return NULL; diff --git a/kernel/auditsc.c b/kernel/auditsc.c index a4bbdcc..f294e4a 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; } @@ -1590,7 +1590,7 @@ void __audit_syscall_exit(int success, long return_code) kfree(context->filterkey); context->filterkey = NULL; } - tsk->audit_context = context; + audit_set_context(tsk, 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);