From patchwork Sun Feb 19 10:04:07 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hoeun Ryu X-Patchwork-Id: 9584617 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 6EDEB600C1 for ; Tue, 21 Feb 2017 13:29:09 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 46B6F2861C for ; Tue, 21 Feb 2017 13:29:09 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 3A17C287CE; Tue, 21 Feb 2017 13:29:09 +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.3 required=2.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,RCVD_IN_SORBS_SPAM, T_DKIM_INVALID autolearn=no version=3.3.1 Received: from emsm-gh1-uea10.nsa.gov (smtp.nsa.gov [8.44.101.8]) (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 DB5FF2861C for ; Tue, 21 Feb 2017 13:29:06 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.35,189,1484006400"; d="scan'208";a="4059951" IronPort-PHdr: =?us-ascii?q?9a23=3AWpTYNBKVavl85FOaqNmcpTZWNBhigK39O0sv0rFi?= =?us-ascii?q?tYgQKPvyrarrMEGX3/hxlliBBdydsKMZzbOK+P24EUU7or+5+EgYd5JNUxJXwe?= =?us-ascii?q?43pCcHRPC/NEvgMfTxZDY7FskRHHVs/nW8LFQHUJ2mPw6arXK99yMdFQviPgRp?= =?us-ascii?q?OOv1BpTSj8Oq3Oyu5pHfeQtFiT69bL9oMRm7ogrdu8kKjYB/Nqs/1xzFr2dSde?= =?us-ascii?q?9L321oP1WTnxj95se04pFu9jlbtuwi+cBdT6j0Zrw0QrNEAjsoNWA1/9DrugLY?= =?us-ascii?q?TQST/HscU34ZnQRODgPY8Rz1RJbxsi/9tupgxCmXOND9QL4oVTi+6apgVQTlgz?= =?us-ascii?q?kbOTEn7G7Xi9RwjKNFrxKnuxx/2JPfbIWMOPZjYq/RYdYWSGxPUcZLUyxKH52y?= =?us-ascii?q?YY0BAeEcOepUtpTxq0cLoRa4GAKiBv7gyiVQi3H2w6M0zuovHwLB0gMiEdIOqH?= =?us-ascii?q?bZoMj7OagdTe+7w7fHzS7YYvNK2zrw8pTEfwo9rf2SW797bMrfyVMoFwPAllie?= =?us-ascii?q?q4vlMC2I1uQLrmOV8+phVf+ygGMgqwFxpSagxtoqioXTnIIUyk3E+D52wIYwP9?= =?us-ascii?q?K4SUp7bcS4H5tXsiGXLo17Sd4hTWFwoCs217ILtJGhcCUK1Zgr3QDTZvOZf4SS?= =?us-ascii?q?/x7vTOecLSpiiH9nZr6znRW//VW6xuD8WMS51ktBoDBfndnWrH8N0gTe6s2ASv?= =?us-ascii?q?Rg4EiswS2P1wXP6uFcJkA0iLbbJ4YhwrEukpoTtlzOHjPsl0Xsja+Wa14k9vK0?= =?us-ascii?q?6+XnfrrmppicO5Vyig7iKaQhhtazAeE5MggKR2Sb+OK826P//UDhXblHgfI7nr?= =?us-ascii?q?PZvZzHP8gXuKG0DxFP3oo+8xq/Ci2p0NUcnXkJNlJFfxeHgpDyO17QJPD4DPG/?= =?us-ascii?q?g0mjkTty3P/GOaDhApPRIXfdi7fsZqp96k5AxwozytBT/ZRUCqobL/7pVU/xs8?= =?us-ascii?q?LYAgcjMwOo2+bnFMl91oQGVGKNBa+ZNrndsUOI5u01JemBf40VuDH7K/gg/fHu?= =?us-ascii?q?lmM5lkEHfamyx5cXb2q4Hvt+KUWDfXXsmssBEXsNvgcmTuzqikeNXiJQZ3apWK?= =?us-ascii?q?I84DA7CJy9AIfNQoCtnbOA0zymHp1QemBGF0qAEXDyd4WLQ/0Mcj6dItd9kjwY?= =?us-ascii?q?UrisU4Eg1RCqtA//1bVnNPHZ+iMGup3+09h1/ffclQko9TxzDcSSzX2CT31ukm?= =?us-ascii?q?MPXT8207h1oVZhxVebzah4n/tYGMRO6PxVVwc6Mpjcz/BnB93pRALOYM2JSFen?= =?us-ascii?q?Q9WhBzE9VNQxzMESY0xlAdWtkgjD3za2A78Sj7GEGYA0/bjG33XqO8l9zHPG27?= =?us-ascii?q?U7gFk9XstDL2umibBj9wLLHY7Gj12Zl7q2daQbxCPM9GaCzW2IvExDVQ5wVbzJ?= =?us-ascii?q?XXEZZkfMq9T2/FnCT7yvCbQ5LARN08iCJbVWatfxl1VJWO/jOMjCY2K2g2qwCw?= =?us-ascii?q?yIyamKbIX2emUdxz7QCE0ckwAS5HqGLgY/Bjy7r2LZFjxuGkrlY1nw/ulmtHO7?= =?us-ascii?q?Ukg0whmJb0J71Lq1/QMViOefS/wJ3bIEvzohpy9zHFan0NLcE8CAqBZ5fKVAfd?= =?us-ascii?q?M9509K2njEuAxnP5yvMbpii0UEfAtrukPizRJ3Cp9PkcIytnMl0BJyKb6E0FNG?= =?us-ascii?q?bz6Y3Y7/OrnTKmn15x2vb7PW2k3Z0NaT4KgD8vM4q0/svAuxDEot721n08VJ03?= =?us-ascii?q?ub/pjKFwQSUYj2UkYs6xh3vKraYi8654La0H1jK6+0viXE2903GOsv0gygcMtH?= =?us-ascii?q?MKOYCA/yFNUXBsa0J+wuh1imcAgEPPtJ+a4qIcymbeCJ2LOuPOp6mzKml2tH6p?= =?us-ascii?q?hn0k2Q7yp8VvLI35EdzvGEwwSISjb8g02lss3shY9EYjQSEXalxij/GI5dfKty?= =?us-ascii?q?cpgXCW22Oc242s1+h4LxW35f7FOjAVIG2MuteRWMdFzwxhdf2loNoXyggye4yC?= =?us-ascii?q?Z0kz4xpKqFwCPO2/jidAYAOmNTWmlijEvjIZSzj9AARkSncwgplByj5Ub13KVb?= =?us-ascii?q?oKV/L2/JTkdSeCj6NWZiUrG/trCaec5A9IsosTlLUOS7eV2aTr/9owAG0y/6BG?= =?us-ascii?q?tR2jQ7dzCsupXkkB13k3mdLG5yrHrfeMF/2Qzf6MbaRfFPwjoMXDN4hiXPBlig?= =?us-ascii?q?I9mp+s2Zl43EsuC6U2KuSIdTfjXszYKOrya7/nBqDgGkn/ypnd3nCwc62zfh19?= =?us-ascii?q?Z2TSXIsAr8Yo7z2qSiK+1nY01oCEXm5MZgAY5+lY8whI0X2XgcnZiV+GYLkWH0?= =?us-ascii?q?MdpHw67+amQCRSITyd7P/AflwFFjLm6Ox4/hVXWS3M1hZ8Khb2MVxC096dtKCK?= =?us-ascii?q?GK47xYhyd1pUC4rQ3Ja/hngjgd0ecu6GIdg+wRpgotyDiSD6sMHUleICPslw6E?= =?us-ascii?q?79ago6VLfGyva6S/1FJindC9C7GPuhlcV2zkepcmBiJ/8sR/ME7M0XHq5IHrYt?= =?us-ascii?q?/QYcgUth2OnBfKl/JVJ44plvoWmSpnPnrwvWc4xOEmlhFu0pS6vYedJ2Vr4q25?= =?us-ascii?q?HgZSNifpaMML5jHtkaFek96O34+1A5VhHisEXIPyQvKuDDIdq+7nOh2TED0ntH?= =?us-ascii?q?ibA6HfERWE6EdhsnLPCYykOG+ZJHke19ViSweSKFZZgA8KQDUwhoQ5GRyyxMz9?= =?us-ascii?q?bEd54Sgc5lDipRtK1uJoMBz/X3zRpAi2dzg0T4KfIwBO7gFY4EfVM9KR4f5vHy?= =?us-ascii?q?1C+Z2htgONIHSBZwtUFWEJRlCEB1f7M7mr/9bA9+yYCfSiL/vSe7qBs/dTV/GW?= =?us-ascii?q?ypKzyYtp4yyDNt2RMXV4Cf00xFZDV2hjG8vFgzUPVzAXlyXVYs6Bvhu99Dd7rs?= =?us-ascii?q?Wl//TvXwLu5ZCCBKFOPtVq4Ry2hr2DN+GIjiZjNTlYzo8MxWPPyLUH0l4SkT9h?= =?us-ascii?q?eCS2Ebsasy7NUKXQmrRMAhEBdyxzMdFE76Um3glCIcTbkM/61qZkjv4pDFdITV?= =?us-ascii?q?rhmtuzaswSO2GwL13HBEeRNLSdOT3LzcD3YaWmRr1WkOpUtge/uTKBH0/kJDSD?= =?us-ascii?q?mCHjVwqzPuFUkCGbIBtetZmlchlzEmfsUtTmahynMN9wljA2wKM7iW3UOmIGNj?= =?us-ascii?q?h8aUxNpKWK7SxEmvV/B3BB7n19IOaZgCaW8fPXKpkMsfRxHCR5jPla7245y7tI?= =?us-ascii?q?9iFLXuZ5mC/Prt5ouV6miPCDyiZgUBpNqjdLg5iHvUN8NqXF7pNAQ2rL/AoR7W?= =?us-ascii?q?WMDBQHv8BlBcfxu69KxdjAirnzJSxZ893O48sTHcfUJ9ycMHY7NxrmBiLUBhMf?= =?us-ascii?q?TTG3LWHfm1BdkPaK+3KOr5g6pZ/smJwVR7BGSlM6DfIaBV5jHNAYJ5d3RDwkm6?= =?us-ascii?q?aBjMEU/Xq+sAXRRMJCs5/dWfKdG+vvJyiCgLlDfxsH37X4LYEJOY3630xtcV56?= =?us-ascii?q?nYvQF0rXR9BNrTVrbhUor0VV7Hh+Umoz1lr5agOq5X8fD+S0nhk3iwRgZ+Qi7y?= =?us-ascii?q?3s41ApKVrJvyY/jE4xmdD5jj+Laz7xML28XYdIBCror0IxKI/0Qx5pbQ2umkxp?= =?us-ascii?q?LDTERrJVj7R+bm1rjQjcuZVBGfFCUa1EfB8QxfaSZ/o2y1hcrDuoxVNf7+vfFZ?= =?us-ascii?q?RijBcqcYKrr39Y3QJscsQ6JajLKapKyVhQnb6OsTWu1uAqww8eJlwB8GWMdy4U?= =?us-ascii?q?oEYILKUpJzK0/uxw7gyPgyFDd3YXV/U0uP1q7F8yO+Sbwi370r5DMF2+N+uRL6?= =?us-ascii?q?OBoWjPi86JTkk21kwWi0lP5aJ23ts7c0qIS0Avy6OcGAkONcrELwFactRd9HzS?= =?us-ascii?q?fSuVq+rC34h1P4KnGuDvV++Ou74egli4EwYxA4QM8sMBE4Gx307CM8fnLaMKyQ?= =?us-ascii?q?426QvxPlWFFvNJeRyQkDgZv86/0YV33YhBJjAdG2l9Nzu45qrPrA8wnPWDRMs2?= =?us-ascii?q?YmsdXoYcMnI2X9e6lDBfv3VBCzm6ye0ZyA6f7zPmoSTQFjb8ZcJ5ZPiIfRNsFM?= =?us-ascii?q?22+TIn/qitl1HX9pTeJ2fnNdVtodLA9eQap5ObBPxOVrl9r13Qm49GSHy2S2TP?= =?us-ascii?q?C8K6J4Dsa4kwatz5EnW6Uka/ij0vScfxINatI7OHgQHvXYZbrJOX3DY9Os+hDj?= =?us-ascii?q?seAQt/p/kf5KJgYg0Oe4Y7YR/ttwQ5K6y/IAeZ386zTGasKTpZVeJQwf+8Z7NJ?= =?us-ascii?q?0yomdvW6x2c4TpEm0+m39lYAS4sOjhHf2fmseZFRUS3zG3xbfAXPozA2mnN6Oe?= =?us-ascii?q?Yz2Og/xgrEsVcBMzyRcuxmdnBEtckmBVyOOXV2FnY4R1iEgIXY/AGs2asf8DFA?= =?us-ascii?q?kNZKz+JFqmP+sYXFYDOsQqCrro/VsyU4Z9g8v6JxKZDjIteBtJ7GkTzfUZjQsg?= =?us-ascii?q?mBUCGkEvpXgcVfLzxDT/lJg24lP9YKuY1b6Uo+Ts0+PaBACLEwprC2bjppFTQS?= =?us-ascii?q?zSkYV4yc3DwCheO826DCmBmJbZosKgAJvpJZj9QBVC52Zz8Rq7W4V4XKjWOETH?= =?us-ascii?q?YEIBsL5wRW+A0AjpNwfvzi4IfQVp9D0SRWo/VvXSbQCplo7UH0Sn+Ijlj8SfWh?= =?us-ascii?q?leOp3QZTzPLj0tkbRBB/BlJHx+ZTjEcoLq94K7UItI7QrjCIbV/6vH7qyOa+Kl?= =?us-ascii?q?hd09Hbd135DIrAtGrzSC4c9GYVRYBR1n7QC44ekw1jaKYkvF9MOpypel7i5zw4?= =?us-ascii?q?wIRkB6O3Vdq2x1Yjt3oGRDynE9tAC+FnrFLYQydpY5a1p5X5I59SWHNf+IWBq1?= =?us-ascii?q?dFl0VgKy+5yZxAK85T5j4DQj1PriuBvNuoSMxOwsh2D4cSLdd5vnfyAqJEOJyK?= =?us-ascii?q?rH0xtb3j0HjZ+yozsF2i3jW8B7e4T/5F/20ZAggpKH6epVMpD+sw6WrS81fNs1?= =?us-ascii?q?5y/+dHBriAk0RxoDBhHp9QHDZFz3alIEpvTHNeqeVVNLzVc9BAQ/k1fRKvJxs+?= =?us-ascii?q?Ffs90kyV4U10mGz2bzZ0tgRE5yDXRxM0WjUNgrfxhT0erdmqOT8ARJJSdzohaz?= =?us-ascii?q?rKJhmGli9JpBZfc19lW5QHDdZf4b0b2pFU/sXaQ0a2NS4FRABiNh4/0fdHl05D?= =?us-ascii?q?t1uXdDvAAgW2bvbArAd3fduPo8G0Nvj5+hlIip//uuAi66oDX2GmmRGqQd3GtI?= =?us-ascii?q?D8uMGFuleMeavlPeCxemPOTD/JjR+sn7gkFIXK8zLVMAVFN5lw0WAkboT5CW7X?= =?us-ascii?q?IRRGILoWJ1BFWq9nadVJuPxaatRgeKYO569iGAyLSQ/oGIOysvZKNFDTSirCLy?= =?us-ascii?q?+Z6OywvZrT7aDBSejnfsGM323HQ75tMZhn9Tn2AKzq0YhD+krsxvhi6EV6SUTc?= =?us-ascii?q?My+bqNTtPAQL5NOtdkH6pJ0mASvWAItskHrq3kxAa9AXTDO0/5sF055Z9XLwSf?= =?us-ascii?q?5i0kfpru1S9r5k6Y0p7LB108u0Ir3SKftCu099HheUHhlq9okqAGVnWm9RZPUe?= =?us-ascii?q?JezMcqQfl8/isef3F7YY6BeN4exWdcPHJ13dmsm4EjycSwZLnB0GqT4BKguTze?= =?us-ascii?q?CFlrRxSca4oej5xkMt7ES/LhEcyrBt/p2I+q2SpO/YdxHR16QLWrD2RsPvqbQh?= =?us-ascii?q?o0GS6ucilL4AYGx1ZBCoH/YGW84B3Gjgy7sqzSU2H8PFAb3g5OZJV2glkTL4h5?= =?us-ascii?q?B9A1IWF+sSHbqP5olen2E4m+nDOt0XdKBClHyPGgS/Er8e036r9jeYIHV4ghHU?= =?us-ascii?q?zR78W2Sz7EX5rSVgWyvD08/jklZJVrmwHUpSWSupNlN/sDOLJgXor8D7uaUy7E?= =?us-ascii?q?ExKWzkr8mAlG6uNbJYBcH/I8acISYsrlINkJIxXsCv2ZwcGdelPNge6nV+YeXF?= =?us-ascii?q?62O3ky5BpLxKh5HC7cGU5PrXG2Wgj6yApLmXwjBX1GQ4t0kl6t+8LvHO+8GKQ/?= =?us-ascii?q?Ow2mYVVCd/vgvMUgW7qrPFsl8UPlaL313TmIwQOdFZ32c32V365OQ5R9Iz7gpe?= =?us-ascii?q?HJ7aZ/wevTDzJCf0wVGHbtI1Vyme1iBaHlfrHlh4Bqc8wmPwvMTGlXvK/V0nWJ?= =?us-ascii?q?VwfVT9hRNrF4U4NV4t6F8PzyoCEAkCcwqUA62zCET+M4QESVYMZgid0Li9YKc3?= =?us-ascii?q?0lV5wqmz6+/Lcex8G60NO+5GgQ6Ph1haFIgZsa8fQLJgY19S7rPXpgz5Bof7WP?= =?us-ascii?q?jpiGQ/OueoQsBA9sAZrWEt7hy4Rxq65pdJ96wbh4yQdq5YfZjMu9hx71996j4T?= =?us-ascii?q?aiNNgBZ+jxSjUeAfvezj+cbUsJ6p6uaoSaYsSP4a9wAuCGRik5TwgF4iodbN1+?= =?us-ascii?q?dfUIHViprw8BpLI3GUvIbWyR58KfABK4izZrZv620HJzQCJ3IJJdeWd+M87DFp?= =?us-ascii?q?MDrJ4VxNHNgBas4ZPMrCmABUllfmWKpJ+crBB1+UEYFzeN4072Dv0jA67YM8Uv?= =?us-ascii?q?r86D+xPZ3f4EtCP+ldgyVwlNLPv+wVwfvOCCcJ4XmWcQV1wjiYx5mLFfnw4f2G?= =?us-ascii?q?yMvIWFMeAi42T4BdKSKN+QO5QOq1iJLpUgST5s/onp0+cEOQRnqsnKUKqatMFf?= =?us-ascii?q?BPij/73zdEDIz1geyas8a04mtNqlJHCJpz7QHCGKhHIpp7Ow73mdWwS0dgASv/?= =?us-ascii?q?fMXUdhswt+qM2ucD/flxN0vkaY8cOBIExKrw6WBJQQt2VL72olGZUPoUZNthTv?= =?us-ascii?q?PEsn9V5px7Jq8KPViSvprqoSlUqFE4Bw8pcrwwridAeknIggJVR77+uKQchQsE?= =?us-ascii?q?Td55pUhMFHq/OG0i/DrHTr1ZgrSeBvIT8zWTSLEOUkpzPyNxRhO6wpNudKWzkf?= =?us-ascii?q?BAqGNGkTt3oOI23Dx+WBu8pSrsqroP2TIn+LG4si8NtmBFTuWajifHFFRCzPUM?= =?us-ascii?q?jacHCHbi6EexYGcCbIvs+rZnIdnv9Yg773Q5fxojYzUMXf68BCHok6OIHouPvc?= =?us-ascii?q?pdhB6TosrOa6S+LSwPNrsgyBLjQGN93hLZnBZy/2sBWi+g48M8JIWhJcYlwTKl?= =?us-ascii?q?GWrFe1YC7KNJtND8tFARQ+swd1xh3H9v0s6ZSS0RXMbPAXo6jhA4aWVYd5JO8R?= =?us-ascii?q?AaF60vgjeGoKZG+gUUbSzPEoSi/InQnNvH1WM7Tdh02mLcvreFiY8y0H15h9N0?= =?us-ascii?q?6TaDuHYSd+3YS89sBXzz1oZDyePgfPitt+EHSJd8yLu/SvMCNdOj+WSu0pVwRk?= =?us-ascii?q?Cl3qgeH0a+MOIb2rfbUiKlRHaEWeSKb2eMnCg2Mkro6RmuMFI3dN9Ar1UhPeva?= =?us-ascii?q?mp5ciwrhXKtxRiWRpl/bz2sjPPgYdw0su4enfAoKQ/AXZ+SGI+gh3uE+AkMWb3?= =?us-ascii?q?DVBSt2F/O2sVm1kYdgJXpg51n6bP/28gDiN9uSBgUEEZDEoZFs4/C6QXiBOXB4?= =?us-ascii?q?xh1oIEZ07/vfF0g2tuJEa5aRmtzQiM5h0e8LcPdtNSM9t8UWmoJk7omUy9mFfg?= =?us-ascii?q?3Lzpb1PtHVufmYA/vQz0gwfWFaSLUZaxvv54omJt45R6HTHbxBsBQSG6c6RJ0h?= =?us-ascii?q?N3/v+6xvLQJzcwvRZLGqjcnwouKEeIFYp3jM7lI/NC3coQEMyuSoTQxnaJCnn3?= =?us-ascii?q?vzIIgqRjJAs9JiFABrHI5OG8MctQqoHYSYmKahi9++40l6ofMFsbLsCvDW09S0?= =?us-ascii?q?x4JxX5xE6kGQJDbRALNkgl95juSznvjAzoPxBt38dt8eUuh0XHLFYKfcHoqjMj?= =?us-ascii?q?KOJt78e0le/r6Y0bJ5VAiRZS/gU6qCtS2kL+lk4V4gx4x5ZuXTyjst46vc2Nvo?= =?us-ascii?q?aGFRvj2jomKRNJtD8FzKAvTTXwlKRvqB8WZlG7AXbITz+OkBLdwiwMaT4xNt4z?= =?us-ascii?q?RaysSIOKuhoVHW2kJ9a53bKFDm2zs2WYUQJxS/K0Qsi3fDqnvBGXRcMtSkKc51?= =?us-ascii?q?jdaQFBPi+0lxmWArZm5GAWfoW9aROW4F1MK6ZQ2K8h9LDtkZk+6wY044ubW4Sf?= =?us-ascii?q?N0NZVdheWqqLIHnM5rKy7VR8haODrfIaRrPjpXEuXPpF8oYgMLs7g1Roc5f56O?= =?us-ascii?q?L10bME2Y0yP90RPC0VHod9yrzKuGOz0Z/nJDz7LEyjhMuxK5teyCgsL9TL/Vdo?= =?us-ascii?q?r2U+DWMCokUDGaWDszHF219lakofoEoeGYLX0Ro18OfiKSEwkTpqZ1odjXFG/T?= =?us-ascii?q?lvVpfIcWi/CCRyDwVCp4mbI9BilRrk+MWfsDGhfSb3L6nmpcvBatJuRN/XL4db?= =?us-ascii?q?GYwLRaW/AOCItWbvKZW8fYeexZJzowlDUZPeG8f8fGr7Y4yVLFVm0ZHLPN9FKA?= =?us-ascii?q?TU6aWPucxyjkXY8NpYg7pjIo+s7Mni9wC6nIJLifpzuy/YO5jyuVovPeWXc3Y0?= =?us-ascii?q?w0geMCB2+BzANGKG4aF9EfoFvtTbKYZ0ZQyHIpjvpj2x0LeAR1Vn1jyXhWk+ig?= =?us-ascii?q?Fc1XTl4Uln+hT+McYFBxEjww4RzC3gqnYtEav83XAm9X7LcBT4sbI9Es6ZLLI+?= =?us-ascii?q?0X2PsvwztipGoxtCDZR1dciB+VtqndBqRxwpVc6mQiufJ7REeCR3XYaGeU5JCh?= =?us-ascii?q?Dpdvwipzpzjextec6uBqOaZc4ZtoHX8FBCt3IpbW+jUXAjK84xe7oxvuRGfWGz?= =?us-ascii?q?ke+jteYHVcLus=3D?= X-IPAS-Result: =?us-ascii?q?A2F3OgBHP6xY/wHyM5BeGgEBAQECAQEBAQgBAQEBFQEBAQE?= =?us-ascii?q?CAQEBAQgBAQEBgyZeAQGBCo5VogWGHToohFiEElcBAQEBAQEBAQIBAl8ogjMiA?= =?us-ascii?q?Qw9DS8BAQEBAQEBAQEBHwIrJQEBGQYBAjcGAQ0OEgsBAgECCQEBBRACKQgIAwE?= =?us-ascii?q?dAg4DAQUBCxEHBwsFGASJNAEDFAGhZz+OBwUBHCYCgmEFgQKCXgoZJw1VgX6BQ?= =?us-ascii?q?AEBAQcBAQEBARsCBhKELYINh0CBVREBhgEBBJBGiwg6ggKMAIQbAoF5iDkmDIY?= =?us-ascii?q?oSIl5hxwygRVYeAggFB9TF4QkDx2BcGaIUw8XBIITAQEB?= Received: from unknown (HELO tarius.tycho.ncsc.mil) ([144.51.242.1]) by emsm-gh1-uea10.nsa.gov with ESMTP; 21 Feb 2017 13:29:04 +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 v1LDRq1k004447; Tue, 21 Feb 2017 08:28:06 -0500 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 v1JA5slc147648 for ; Sun, 19 Feb 2017 05:05:54 -0500 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 v1JA5UV6031657; Sun, 19 Feb 2017 05:05:30 -0500 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A1ClFgC4bKlYf0JTfUpeHAEBBAEBCgEBhC+BDLBYhl+Ed4ErAoIlVwECAQEBAQECEwEBCQsLChuFIgMDQAEbHQEDDAYQOyECEQEFARwHEolWAQMUAaJcP44HBQEcgwkFgQKCSgoZJw1VgX6BQAEBAQEBAQQBAQEBHAIGCQEIhC2CDYdAh2gBBJBFiwU6ggKMAIQbAoF5iDUyhihIiXeHHDKBFYFXIBQfaoQkDx2BcGaIMyqCEwEBAQ X-IPAS-Result: A1ClFgC4bKlYf0JTfUpeHAEBBAEBCgEBhC+BDLBYhl+Ed4ErAoIlVwECAQEBAQECEwEBCQsLChuFIgMDQAEbHQEDDAYQOyECEQEFARwHEolWAQMUAaJcP44HBQEcgwkFgQKCSgoZJw1VgX6BQAEBAQEBAQQBAQEBHAIGCQEIhC2CDYdAh2gBBJBFiwU6ggKMAIQbAoF5iDUyhihIiXeHHDKBFYFXIBQfaoQkDx2BcGaIMyqCEwEBAQ X-IronPort-AV: E=Sophos;i="5.35,180,1484024400"; d="scan'208";a="5949492" 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; 19 Feb 2017 05:05:26 -0500 IronPort-PHdr: =?us-ascii?q?9a23=3A2pVqpBLQ9uO26odKNtmcpTZWNBhigK39O0sv0rFi?= =?us-ascii?q?tYgeLv3xwZ3uMQTl6Ol3ixeRBMOAuq8C0rKd6/CocFdDyK7JiGoFfp1IWk1Nou?= =?us-ascii?q?QttCtkPvS4D1bmJuXhdS0wEZcKflZk+3amLRodQ56mNBXdrXKo8DEdBAj0OxZr?= =?us-ascii?q?KeTpAI7SiNm82/yv95HJbQhFgDqwbalvIBmqogndqsobipZ+J6gszRfEvmFGcP?= =?us-ascii?q?lMy2NyIlKTkRf85sOu85Nm7i9dpfEv+dNeXKvjZ6g3QqBWAzogM2Au+c3krgLD?= =?us-ascii?q?QheV5nsdSWoZjBxFCBXY4R7gX5fxtiz6tvdh2CSfIMb7Q6w4VSik4qx2UxLjlj?= =?us-ascii?q?sJOCAl/2HWksxwjbxUoBS9pxxk3oXYZJiZOOdicq/BeN8XQ3dKUMRMWCxbGo6y?= =?us-ascii?q?b5UBAfcPM+hbqIfypVUOoACiCQWwHu7j1iVFimPq0aA8zu8vERvG3AslH98Wsn?= =?us-ascii?q?rUq8v6NLoUUeuo0KfJzSjDZO5R1Df974jHbA0hofeWUbJqccvR1FIiFwzAjlqK?= =?us-ascii?q?qIzlOymZ2fgKs2ie9udtU/+khW0/qwxpoDWiyd0ghpTXio8V0FzJ9it0zJw0KN?= =?us-ascii?q?C5UEJ2YMOoHIFSui2ELYd7Qd4uT3totSs0zLANpIS1czIQyJs9wh7Sc/yHfJaM?= =?us-ascii?q?4hLkTOuRJC13hHNheL6mnxay/lSsxvTyVsS10VtGtCVFkt7LtnAC0xzc9NKLRe?= =?us-ascii?q?d6/kekwTqP1gbT5f9YIU0sl6fWJIQtzqMumpcTq0jOHSH7lF/3gaKXbkkk//Kn?= =?us-ascii?q?6+XjYrXovJ+cMIp0hxn+MqQphMO/HOI4PhIUX2mb5OSxz7Lj/UjjT7VLiv06iL?= =?us-ascii?q?XWsJffJcgDvK62HxdV0po/6xa4Fzqmy8kXnWIcIVJZeBOIk4jpO1bULPD+Fvew?= =?us-ascii?q?mU6gkDhsx/DYJrfhGInCLmDfkLf9erZw81VcxxQ3zdBe4ZJUF74ALenvWk7xqN?= =?us-ascii?q?PYDhg5Pxayw+b8EtpxzIweWWWRAvzRDKSHslKS4O8rZumFfoMYvjf7JNAh5uXy?= =?us-ascii?q?ljk+gVIbYqCt2d0cb3X8VvBnJViJJHnhmNEMFU8UsQckCu/nkluPVXhUfXnhcb?= =?us-ascii?q?g742QbD4+7C8/5V53l1LyG0Tq9WIdHe0hJD1mNFTHjcIDSCKREUz6bPsI0ym9M?= =?us-ascii?q?brOmUYJ0kEj27AI=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0EpCABtbalYf0JTfUpeHAEBBAEBCgEBF?= =?us-ascii?q?wEBBAEBCgEBhASBDLBYhhxDhHeBKwKCJVcBAQEBAQEBAQIBAhABAQkLCwobMYI?= =?us-ascii?q?zIgEMPQ0vAQEBAQEBAQEBAR8CKyUBARkDA0ABGx0BAwwGEDshAhEBBQEcBxKJV?= =?us-ascii?q?gEDFAGiXD+OBwUBHIMJBYECgkoKGScNVYF+gUABAQEBAQEEAQEBARwCBgkBCIQ?= =?us-ascii?q?tgg2HQIdoBZBFiwU6ggKMAIQbAoF5iDUyhihIiXeHHDKBFYFYIBQfaoQkDx2Bc?= =?us-ascii?q?GaIMyqCEwEBAQ?= X-IPAS-Result: =?us-ascii?q?A0EpCABtbalYf0JTfUpeHAEBBAEBCgEBFwEBBAEBCgEBhAS?= =?us-ascii?q?BDLBYhhxDhHeBKwKCJVcBAQEBAQEBAQIBAhABAQkLCwobMYIzIgEMPQ0vAQEBA?= =?us-ascii?q?QEBAQEBAR8CKyUBARkDA0ABGx0BAwwGEDshAhEBBQEcBxKJVgEDFAGiXD+OBwU?= =?us-ascii?q?BHIMJBYECgkoKGScNVYF+gUABAQEBAQEEAQEBARwCBgkBCIQtgg2HQIdoBZBFi?= =?us-ascii?q?wU6ggKMAIQbAoF5iDUyhihIiXeHHDKBFYFYIBQfaoQkDx2BcGaIMyqCEwEBAQ?= X-IronPort-AV: E=Sophos;i="5.35,180,1484006400"; d="scan'208";a="3298572" X-IronPort-Outbreak-Status: No, level 0, Unknown - Unknown Received: from mail-pg0-f66.google.com ([74.125.83.66]) by emsm-gh1-uea11.nsa.gov with ESMTP/TLS/AES128-GCM-SHA256; 19 Feb 2017 10:05:23 +0000 Received: by mail-pg0-f66.google.com with SMTP id 5so9103194pgj.0; Sun, 19 Feb 2017 02:05:23 -0800 (PST) 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=H9/a2Dxboo1pmq1t7beM7CglOYUnaeSHY+RlOxVB8vw=; b=mfxbtS8CUCSYA2pyYmMpnJH7LB6qxZMU2qApH8yECCQDOx6KM0glYBrAabhWZWshRN Q3HoRCHBZWzty1vRuJFfZtlLYhan8s0E0lH1aL2lItG7taQl5mb4qWCMmXCTSpUGstZq cat287WdQGIQYaaVzHh556XS/KeIkzeCaho1uQ8uiIuadoP+O/VVOSr4hwju739N4AiI 2LBGhf6dIvL10PNKkSrCLwBJoyvFrm0CNGNzNxQEus02t12VpzwwNbgLCaNFurtrkF5A dB1YKPNXW/poAwKhr+TyPHv5sbuMT6fbzLh6CmC/y/zHZLAAHK79PpPbBbu84Mo1+Wfz UPiA== 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=H9/a2Dxboo1pmq1t7beM7CglOYUnaeSHY+RlOxVB8vw=; b=oTwPhK3Ap/FVmeR5ye16OqjvMcFEBTm+bXVDExKI9KPFF9lL4jsGxdvuKNrkXX/gpT EIB7Ezrv9FKpR1S6ctjKHlc4zNAUBsaQteOvL53DqKQIm2fW9WUHtMlJKlJA5FjuEQDf UdTSmXQammup0Sviq4zd7mBb+EAVglcqDPkCtRYlLniuq4VlwUyraWWgm4iUslMDZTje tOhgK/bP6BosV5nkzhxU7qa3/EuS0v+g1nnzWSsfr5IZPJEHc3MySZ8njp0WJFwMR1z7 PAWA9obmP9fuHye8U793j7aeHev6NvvfM7waCDJ7mJAtfWlX1IrzS5/ReQCf9vjqoPMw g2hA== X-Gm-Message-State: AMke39l91rKapqLGv+UChrzv+1Bz/QtAmess76FE0wn902b3bheDSFBnMcPno1jM3OBM5w== X-Received: by 10.99.199.69 with SMTP id v5mr20781794pgg.90.1487498723035; Sun, 19 Feb 2017 02:05:23 -0800 (PST) Received: from localhost.localdomain ([61.72.81.53]) by smtp.gmail.com with ESMTPSA id v8sm29038141pgo.14.2017.02.19.02.05.20 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sun, 19 Feb 2017 02:05:22 -0800 (PST) From: Hoeun Ryu To: kernel-hardening@lists.openwall.com, linux-kernel@vger.kernel.org Subject: [RFC 4/7] selinux: mark __ro_mostly_after_init for selinux_hooks/selinux_nf_ops Date: Sun, 19 Feb 2017 19:04:07 +0900 Message-Id: <1487498660-16600-4-git-send-email-hoeun.ryu@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1487498660-16600-1-git-send-email-hoeun.ryu@gmail.com> References: <1487498660-16600-1-git-send-email-hoeun.ryu@gmail.com> X-Mailman-Approved-At: Tue, 21 Feb 2017 08:27:50 -0500 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: Hoeun Ryu , linux-security-module@vger.kernel.org, James Morris , Stephen Smalley , selinux@tycho.nsa.gov MIME-Version: 1.0 Errors-To: selinux-bounces@tycho.nsa.gov Sender: "Selinux" X-Virus-Scanned: ClamAV using ClamSMTP It would be good that selinux hooks objects are marked as `__ro_mostly_after_init`. They can not be simply marked as `__ro_after_init' because they should be writable during selinux_disable procedure. `__ro_mostly_after_init` section is temporarily read-write during selinux_disable procedure via set_ro_mostly_after_init_rw/ro pair. Now that they can be read-only except during the procedure. Signed-off-by: Hoeun Ryu --- security/selinux/hooks.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c index 9a8f12f..64fd799 100644 --- a/security/selinux/hooks.c +++ b/security/selinux/hooks.c @@ -6106,7 +6106,7 @@ static int selinux_key_getsecurity(struct key *key, char **_buffer) #endif -static struct security_hook_list selinux_hooks[] = { +static struct security_hook_list selinux_hooks[] __ro_mostly_after_init = { LSM_HOOK_INIT(binder_set_context_mgr, selinux_binder_set_context_mgr), LSM_HOOK_INIT(binder_transaction, selinux_binder_transaction), LSM_HOOK_INIT(binder_transfer_binder, selinux_binder_transfer_binder), @@ -6381,7 +6381,7 @@ security_initcall(selinux_init); #if defined(CONFIG_NETFILTER) -static struct nf_hook_ops selinux_nf_ops[] = { +static struct nf_hook_ops selinux_nf_ops[] __ro_mostly_after_init = { { .hook = selinux_ipv4_postroute, .pf = NFPROTO_IPV4, @@ -6477,13 +6477,17 @@ int selinux_disable(void) selinux_disabled = 1; selinux_enabled = 0; + set_ro_mostly_after_init_rw(); security_delete_hooks(selinux_hooks, ARRAY_SIZE(selinux_hooks)); + set_ro_mostly_after_init_ro(); /* Try to destroy the avc node cache */ avc_disable(); /* Unregister netfilter hooks. */ + set_ro_mostly_after_init_ro(); selinux_nf_ip_exit(); + set_ro_mostly_after_init_rw(); /* Unregister selinuxfs. */ exit_sel_fs();