From patchwork Tue Nov 22 19:40:35 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Jurgens X-Patchwork-Id: 9442043 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 637FC605EE for ; Tue, 22 Nov 2016 19:46:55 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 512411FF1E for ; Tue, 22 Nov 2016 19:46:55 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 45DBA1FFD7; Tue, 22 Nov 2016 19:46:55 +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.9 required=2.0 tests=BAYES_00, RCVD_IN_DNSWL_NONE, UNPARSEABLE_RELAY autolearn=unavailable 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 49A201FF1E for ; Tue, 22 Nov 2016 19:46:54 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.31,682,1473120000"; d="scan'208";a="1226730" IronPort-PHdr: =?us-ascii?q?9a23=3AsggSIBLIuFq4EbDGpNmcpTZWNBhigK39O0sv0rFi?= =?us-ascii?q?tYgQLvvzrarrMEGX3/hxlliBBdydsKMfzbCL+Pm6BiQp2tWoiDg6aptCVhsI24?= =?us-ascii?q?09vjcLJ4q7M3D9N+PgdCcgHc5PBxdP9nC/NlVJSo6lPwWB6nK94iQPFRrhKAF7?= =?us-ascii?q?Ovr6GpLIj8Swyuu+54Dfbx9GiTe5b75+Ngu6oAXeusULn4dvKLs6xwfUrHdPZ+?= =?us-ascii?q?lY335jK0iJnxb76Mew/Zpj/DpVtvk86cNOUrj0crohQ7BAAzsoL2465MvwtRne?= =?us-ascii?q?VgSP/WcTUn8XkhVTHQfI6gzxU4rrvSv7sup93zSaPdHzQLspVzmu87tnRRn1gy?= =?us-ascii?q?gJLT459HzchNJ2gqxVvRmtowVzz5PIbI2QMvd1Y6HTcs4ARWdZXshfSTFPDI2/?= =?us-ascii?q?YYUIDeUBM/5Yoovgq1YAohSxGQaiC/30yjJTmn/737c33/g7HA3awgAtGc8Fvn?= =?us-ascii?q?TOrNXyMacfSe67w7POzT7ea/1WxC396IfWfRAnuvGHQLV9ftfLxkkpFgPKkFGQ?= =?us-ascii?q?qY7+MjOQyOsNt2yb4PBmVeKohG8rsR1+oj+qxso1jITCm4Ebykjc+Clkz4s4Ks?= =?us-ascii?q?e0RU5mbdK+DpdduD+WO5FrTs86Xm1lvCg3xqcJtJO5ZiQG1ZUqyh7FZ/CabYSF?= =?us-ascii?q?5hTuX/uLLzhinnJqYre/ig638Uin1+LzSNG50E1PripZitnMsW0N1wDL5siHVP?= =?us-ascii?q?R9+kCh1C6T1w/J8OFEIF00lbHBJ549wr8/ipoTsUPZEi/whEr2l7OZel8h+uip?= =?us-ascii?q?7+TrerTmppmCOI9okgzyL6sjl8OlDek4LwQCRXaX9Oui2LH54EH1WLBKgec3kq?= =?us-ascii?q?ndvpDaP8MbpquhDg9OzIkj7xe/DzG70NUXhHUIN1VFeA+Bj4f1JV7OO+v1Deu/?= =?us-ascii?q?gluwkDdrwOrKPrv6AprXNHTDn7Dhfahl505G1AUz1cxf545TCrwZO/38QUj9tN?= =?us-ascii?q?jZDh8iLwy02PzrCM5j2YwCQ26PGbGWMKfTsV+O++IuLPKBa5MVuTbnNvgl/OTi?= =?us-ascii?q?jHEjll8BZqmp2p0XZGq/HvR8LEWTeWDsjcsZEWcWogo+S/TniFOYUTFJYXa9Q6?= =?us-ascii?q?M85iogBYKjFYfDR5mhgKeP3SegBJFWYXpGCl+UG3fya4qEQ+sMaD6VIsJ5kTwL?= =?us-ascii?q?T7uhS4g81Ry1tw/10blnLu3J+iECspLjztd17fXJlR4u7Tx0E9id02aVQm5ug2?= =?us-ascii?q?wIXT42075loUFm0FiMza14j+ZfFdxJ6PNDSh06OoLEz+xmF9DyXRrMfteXR1ai?= =?us-ascii?q?RtWmBio8TtYsw98SZEZ9Hs+tggrE3yqwDL8fj6aLC4As8qLAw3jxIN5wy23I1K?= =?us-ascii?q?k7iFkmWddPOHa9hq558AjSCYvJnF+fl6qwc6QTwjLN/n+ZzWWSpEFYTBJwUaLd?= =?us-ascii?q?UHERfETWqcj56V3YT7+1ErknLBVOydSZJatXb93ll1JGRO3sON7GeWK+h3+wBQ?= =?us-ascii?q?qUxrOLdIfqZ3gS0zjcCEcelwAe5mqJNQ87Bii9uW3eFyBuGUjpY0zy7el0sGm7?= =?us-ascii?q?QVMszwGWc01h0KK4+hgUhfyYT/McwKkEtTw7pDpqBla92MjaC92apwpuZK9ce8?= =?us-ascii?q?8y4E9b1WLFsAxwJoGvILp+hlEEbQt3sUzv2g5rBYVAi8cqtm8qwxRoKa6C1lNO?= =?us-ascii?q?aS+Y14jqOrLLMmny4Ayva6nO11HA0daZ5rsP6PMiq1n5oA6pFk0i83No09RO13?= =?us-ascii?q?uc55PKAxAIUZL2SEo38AJ6p77CaCkn+4zUzWFsMbWzsjLa39IpBfAlygq5c9dE?= =?us-ascii?q?LqyEEA7yE8sHB8mhM+EqgECpbhMCPOBT6KE0JNmqd/2Y1663JOxghi6pjXxb4I?= =?us-ascii?q?Bh1UKB7zB8SunM35YB3f6YxBeIVzDyjVq6qcD3hJxLZSoIEmq40yjkC5ZbZrdu?= =?us-ascii?q?coYTFWeuP8q3y81mh5H3Rn5Y8ESvCEkc1MCyfhqSa0D93QpW1UkMpHyrhS24zz?= =?us-ascii?q?tonD0zqKqQwjDOyfz4dBUbIm5LWHVijVD0LIixi9AWRVanbw4ymRu7+0n6w6xb?= =?us-ascii?q?q7plL2XJR0dHYTT2JXl4UqSsrrqCf9JP6JQwvCVUTuu8Z0uaR6X+oxQE1SPjBG?= =?us-ascii?q?1eyy4ndz2wvZX5hRN6gnqHLHlvtHrZZd1wxRDH6dzCQ/5ewyELRDd+iTbKBliw?= =?us-ascii?q?Jd+p8suIl53bqOCxS3qhVoFPcSns1Y6ArDG05XBuARCkg/+zm8HnEAgj3S/1zd?= =?us-ascii?q?ZqUz/ErBHmYonkz666K/5oflF0BF/g7Mp3Apl+nZEthJEUx3cano+a/XwbkWjt?= =?us-ascii?q?K9VWwr/+bGETSj4R2N7Z+hPl2Ep+LnKT2432SHudwsx7Z9m1fGwawCQ94N5WCK?= =?us-ascii?q?2M9rxLgTN1okakrQLWefV9kC0Syf0y6H4dhuEEowQtwTuADbAVB0lXJzTslw6P?= =?us-ascii?q?79C8sqpYeHqvfaK31EpkktCrFKuCrR1EWHblZpciGjd97sp/MF3Qyn3y6pnkeM?= =?us-ascii?q?XXbd8IsB2bjQvAj/NJJ50rjvoFmzBrOWTjsn050+Q7lwBh3YmmvIibLGVg5Ke5?= =?us-ascii?q?DQRcNj3xecwT5i3tgrxEkcuN2YCgAIlhGi4XU5TyVfKnDigetfL5OAaSCDc8sG?= =?us-ascii?q?uUGaLDHQ+D70drt2jPH4qlNn2NIXkW19FiRB6dJUFEmg8bQDA6koQ+FgCwy8zr?= =?us-ascii?q?aF156SwJ5l7kthtMzfplNx/lUmjFvAeociw5SJaeLBpM9QFC+0nVMc2Y7u1pGS?= =?us-ascii?q?FX4pyhoxaJKmCBYARIF24JUFSeB1//Jrmu+cXA8++AC+qmMfTBequBqepfV/eU?= =?us-ascii?q?wpKiyYpm8CiSOcqRJHViCOc72kVbV3BjB8vZgykPSzAQly/VcsGbvwmz9Td4rs?= =?us-ascii?q?Cl6vvrRhni5ZCVBLtRLNVv4Qq5jb2HN+6NgiZ2MyxY2ooQxX/Py7ge3FkShzto?= =?us-ascii?q?dzazDbQKrTTNQ77Imq9LEx4bbDt+NNBS4KIixAZNNtDUisju275jlPE1FU1KVV?= =?us-ascii?q?P/lcGyf8AKJX+yNE/fDkaRKLuGPSHLw93wYa6kUrJQjepUtxq2uTuADkDsIC+M?= =?us-ascii?q?lzjzWBCpK+1MizubPBNGsoGnbhltEXTjTM7hahCjKtB3gic5waMqiX7RMm4cKS?= =?us-ascii?q?Zzc0VIrrKK7CNYhu5wG2tO73Z/KumEgSmZ5fHCKpkKqftrHjh0l+VC7XQmzLtV?= =?us-ascii?q?6TtIROZymCrTsNFupUqpkvOIyjV5UxpDsSpEhIWOvUp+I6rZ7YVAVWzC/B0T8W?= =?us-ascii?q?WaEw4KqMd9Ct3zp6BQzcDClKHzKTdG7d3Z5s4cB8/aKMKJLnUhLQbpGD7TDAsA?= =?us-ascii?q?UzGnL2ffiFJBkPuK7H2asoA6qoTwmJoJUrJbVVo1Fu8EBURhAtMCJYl4Xi8+kb?= =?us-ascii?q?+bl8MI4mK+owfXRMVfpJ/HV/aSDu7oKDeWl7VEYAEIwbzgJ4QJKoL7w1BiakV9?= =?us-ascii?q?nInSHUrfQ8pCoil6Yw83p0VN62R+QXc120L+aQOt4WUfFfiqkR4qkgF+e/gi9C?= =?us-ascii?q?/w41crIVrHvDEwn1cqmdr7mz+RaiL+LKerUI5NCir0rVU+MpT1QwZtdw29g0xl?= =?us-ascii?q?OC3CR71Pk7tqbXprhxPEuZtTBf5cSrVJbwIXxfGRYfUnzEpTqiGmxUJc/+TKF4?= =?us-ascii?q?FilAwwfZ6rtXJA1BppbMQpKqzIOKpJ0l9Qi7qTsSCyyOAxwRIRJ10W/WyIYi4I?= =?us-ascii?q?oksIN7c9JyW24uNs9BaCmzpfeGkMTfYqpOxl9l8lMeSa0y3gy6JDKly2N+GHIa?= =?us-ascii?q?OZoXbPmtOTQlwq0EMIi05F/aNt3Mg5b0WUUlojzLyLFxQGLcDCMx1ab9JO9HjP?= =?us-ascii?q?eiaDqeHNwZVvP4qjEODpTOiOub0bgkKiAQYlBYMM7t4OHpO0ykHXMd/nLKIZyR?= =?us-ascii?q?Uq/AnrP0uKDPBIeBKNjTcGrNqyw4Nw3YlYOj4SG359MTmt6rbRuAAqnOKJXM0q?= =?us-ascii?q?bXcCQosEKnU2VdW5my5Dv3VPFj+30v4ZyAWZ4D/8oTzQAyXmY9pleviUeQtmCM?= =?us-ascii?q?uq9jUn76i2lVnX/43CJ2H7MNRivcPP6eMappucFvxUTLl8vF3HlIVCQXylTXLP?= =?us-ascii?q?G8avJ5fsc4ksccD0CnGiX1y/jDI6UcnxM8i3LqWTgAHnW5hbv5eB0DAkL8+9GS?= =?us-ascii?q?kUGw1sqOEb+KJ8eQoDboIhbh7stgQxK7KwLx+d0tSuRWatLj1WQONEwOqhZrxY?= =?us-ascii?q?1SwsYva0yHs9VJ06yfe48VIVTpEQkh7e3eqjZ5VZUSXrAXNSZQPPqDEjmGd8KO?= =?us-ascii?q?Y93P0/wAjSvlkGMzGHbutpaHZLv9skH1OdPW12CnYkR1+blYfD7ROs37EW/ytZ?= =?us-ascii?q?gdlU1PZIv2XgsZDEYTKjQqqrpY/Ssyo6Ytgsu7dxPpD7IsuaqJPemSTSTIPWsg?= =?us-ascii?q?2ETCG6F/1amtxLICxAWfdGhHsrNNABt4da9UUxUcI+KKBVB6k3urCmczxkAjAO?= =?us-ascii?q?zSUBTYOPwCQCgvug27vdjhqQaoktPwEfvZVNh9scXDR6YiUAq6+/T4/WjXOLSn?= =?us-ascii?q?AXIAcP6gRB/B4Plo1qce/5+4fHUJhMyzpSo/J1TCTLDIVo+EXnRWGWm1T4T++h?= =?us-ascii?q?k+Ox1wJI0P3sysUbWAJ4CUVF3eZZjFEoKLZsJKQLoo7KqCWHdV3ks2LpyeumIl?= =?us-ascii?q?ZRycnVd133DIrFqWT8XTcG+X0RX4NPzm/QFYgKmQpjdKkrvElMIJyhekvm5z0r?= =?us-ascii?q?3Z9pEKO9VcCqwVYotncGRzuwHNpaF+5pqkjbWDt7bJC3sJ/lIYldQndM+J2BrF?= =?us-ascii?q?dUiEtsPzSlxppcKsFN5z8MUyJMoTiGvdu9VtNM1tFsA58LONd/tG/3GLlYN5iJ?= =?us-ascii?q?v302prvvx2fD9DAmrVe6wi+/G6yjQuJY/m0eGxkpKH+EpkkpEeQs7n/Y8krRvV?= =?us-ascii?q?Bs4+dbGr+PgF1+oDZnBJ9OACpJ2GukL1R0QnhGtflaKKTLfMxdRfkyeQGgOwYk?= =?us-ascii?q?Gf4gwUOJ4Vl+nW3lbCxqqgta5yfdUhEoVSkSh7fggiEept2iOTABUZ5Iaysubz?= =?us-ascii?q?vdIQKBhS9XpApfa11tW50BAtZK4asb0pFQ/sXfUkujND8KXAR6Ng0m1fpQi1RD?= =?us-ascii?q?vF+feSDHAgqibezPvQFvfceNsM6pK+z0/AVAioz5q+036rsMR2a4lg23XdDRsZ?= =?us-ascii?q?LzuseMtkSQaKfyK/e8bmPZTDjQkRCwgq8pAILE/yfPLAZWKYR2xHQ/bJf9Dm7L?= =?us-ascii?q?OAhJKLgAJ0pHT6x6b8tJovxCbc9+ZKkJ4bNtBg6ARh73AoygsuRJLlbJSjTCNC?= =?us-ascii?q?iB9uu/oZzN4rDDVefgYdGDyGjdT6JxIJh69SHxG6323o9G5kr2xvBt+1tiSVjd?= =?us-ascii?q?LyCOtsnuJh8Q6cm5cUvio4cpEi/ID5d2jHrt3FtPd84NTy2t6pQYx4tT6GzsRu?= =?us-ascii?q?JgzkjzrOpS+qF46Ykt/b9m19q7KLzPKfRerU9nGAKbBhtr9pUqBGhwWXxRbvUW?= =?us-ascii?q?KPfLcqQTldrupPzvF6wL9B2V/PRUZsbBJ07bgcSwFzecRgZekAcGsz4aIROW1+?= =?us-ascii?q?SZlK9sVcalue/511ov41ekNB4Gy6tt5YOe9aqWv+LXagbRzbwYWqjrWszzr64j?= =?us-ascii?q?u0WJ5fE+k74OYGN1aRW9EOcBTs4d2nvgzacywCIuCczDGbzg+OREV30kgD3tgI?= =?us-ascii?q?x9EE8QGvMPGrqH54JekXkkm+bBLN0ZbrhCmnqTFR6jCrICz3qr5jCWIGljhxHC?= =?us-ascii?q?yRDwQWW97F/styB4WjfMz83+kkVJSrm3GF1SUDSzNU9/qjOPMxLitMDrtqQt8E?= =?us-ascii?q?E2LmvkucqLlGugJLxXGMn/K8aHISUupVIXi5oxRse02Y0AHNqwL9gQ/Gt5bvvE?= =?us-ascii?q?5GOhizVBrLtfh4rC/sGV/e3aEmW6gK2etbqN3yxYy3g/vVwk8dCvKvDO6MOMQ/?= =?us-ascii?q?S01mYeVT1zuw3fUB6psrbbtUwbOVSX0EfXn4wHJtVZ3WI91kzm/+UjTsw8+xhZ?= =?us-ascii?q?FobaffwCvSrzODz2wVmBf903SjOS0zxNHlL6CVN4ArQz2HrsvMLVknfd41goRo?= =?us-ascii?q?1ueEzighx4EYE4JFki6FcJxSoDChANZgqHDLGpH0vlKYoEVU4faRuZ2Li6fqY3?= =?us-ascii?q?3UJtzbOp+ODcc/ZwB6wTOfZBlgSOhkRUGooKsa0CR7JxY11d9K/SpgX5DojoQf?= =?us-ascii?q?jnmmQqNf20RMBa/toVt3087QajXxCg84tM764HiJCUca5JeZnMvcFm4Eh9+TEC?= =?us-ascii?q?bTdNjwZjjxynTe8Qvufj4sLUsJCw8OahSL4tR/kL9xgzH2lxlJrwgEstoN7N1e?= =?us-ascii?q?dcS5HViZzl/wBQJ36Ho5rV0x5hJuUQMY2rYaxg93IdJycEPX4OOsCWa/Yk6S93?= =?us-ascii?q?LDrT/0BCAt8LZd4AJMrCgxxUhVHpWLBd8crbAFyYB55od88262r3yTY18YYzU+?= =?us-ascii?q?v78D+5P4zf4E1NP/JNiyVsjtHCqPIWwfXMEigX52eWaxxvziOF0ZmNBO76/f+Q?= =?us-ascii?q?x9HMS1MGAik2Xp9BJDqY5wOnQvC6lJP3XQ6P98DzgZ0+dEOMRnOrh6QKqLxMEf?= =?us-ascii?q?NahiX9wDdeCpj/h+iJvNq09GtXqlpHHZ587RLfAqVQIIl7ORTjm8mvR0h8GjXw?= =?us-ascii?q?eMHOeRozo+qa3OEM7PtiN0Hmf48UPgoEy67m6XpSVgZuR6D5vlCFXeIWY9tqT+?= =?us-ascii?q?jEoW5R6YJhLa8PIVecqYfurjhWslA3ABUmZKU2rjNEaknEhBdVVLrsuL4clgsc?= =?us-ascii?q?VsZ0uUpLGWK2JGI+6CTIWL9QjKmQEvMV9CucTrAAUkVvKCN+QAi11I9oe7S3gf?= =?us-ascii?q?BNqnlGkT9loPg2zzxmQwOxuSLwqKIWwjIs4ay2ujoHt3xESOWejijJBE5MzPQP?= =?us-ascii?q?l6gcDWjt5Ua7YHkZY4v4+KNnKtj49Yk9/3Q/Zg0ufy8BXeSgDSH8lb+HAoyLsN?= =?us-ascii?q?JBmRGMucTObbmoLSgRN7Qw0gzjR3lj0gfEmBZn7WoLTi+m7NA6OIW3IdwlyTaw?= =?us-ascii?q?GWjHaFYM5btEsMrvtVERSus7cldhwHh+3ciGQS0NX9bDG2EvjggrcW9Eao5M6Q?= =?us-ascii?q?cGF6k0hTaFpqtG8R8aYDfaFoSo4YfRkt3O2XYjUddm3GTWqbOZhpkyyn1qh8t0?= =?us-ascii?q?7jKSuHQVb+HYXMtsAn/914hBzez+Y+6gsvsASItgybSuTOUOMs+99muqwJ9qQF?= =?us-ascii?q?OqxqwCH1qlN+8O3rXbUyelSG2AXuSLd2mMnyonPUPp4BmoL0E3aN1UoEMnNevC?= =?us-ascii?q?nJFcnRX7UbxoXiWQuUPbzGs7POMGdgI2vZyqexALTOENZOiTO+wuzOc4CFQSc3?= =?us-ascii?q?/DBTF2BPOusV6xgIh7PG1t4UD7YeTu8QDmN8CfGhseHo7ZqZ5x/+K1RmSbNX9m?= =?us-ascii?q?0hJyIFF+9/3DGFQpqu9cb5GRkMDLiNtl1+4Fa+xgMTY5ut4UhoJj9ZeU39mXfh?= =?us-ascii?q?3LyZbyP97VqOCCA/LD10QqZn1aUr0BbAPt4IU6OsQ2W6fdHLteuRQcC7M3QJkm?= =?us-ascii?q?N2f276F7Mh98chTWZLSvmcnqp+SLZpROq3/R9FIwIz/WuwcfxfysUQx7c5eqim?= =?us-ascii?q?38IJ8uQjJBrsVtBQV9EYpOGsMAqg+nDICOmKG/ldC94UR6u/UFsaDoEPDFyMy5?= =?us-ascii?q?35ltX5hd/UGLPCrRBKlsgkRglOuymezN0pzwCcP+Y9MLSvJ3Qmnfar/JBo+/MC?= =?us-ascii?q?6BOtrge05a9L6RyLx4Ug2LZCD4Q6WJqjapNPBl4UUn0Ix3YvDfzDs377HUwNHy?= =?us-ascii?q?fX1Upj+/rX6VM5tS9FvKBejAUB9PUfqF9HxqHbYLbYv16OgOLcYiz8aC7AVp6j?= =?us-ascii?q?RNzteFKbC7rkDQwkJ7aY7bLEzx1iY9WIkKJgm/MEQ1jW/dq3TdGmhcLtO/JMls?= =?us-ascii?q?mtmVCBvt61N2mWE3aW5LAnDoSsuJOWgHx8K+YxWH9BlVANYHnu63f1M4t6K1Re?= =?us-ascii?q?dnJpVFmfultK8ZntZxMS7CX8taMD/KLL9wIDVRCv7ApEUnYhIetLg1QIg1b4CU?= =?us-ascii?q?IEwbKEeA1T/yzQza3E3wdtysz7qJLT0X83VeybLKyyJApw+ntvaFmsfjSqzWbI?= =?us-ascii?q?nqXP7ONyooTjSaSi4uHkap+Fekvf0EseGGIWcepFAbfCaSCA8VpqByotncFGjT?= =?us-ascii?q?mfdsfJcSnvCVRzjwSDFklKo1HitLt1qDQ/kEFQbNdHLhnWxcuBCiJv9L4HLlYL?= =?us-ascii?q?2YxrZPV+wQHIRMbuWTQ8HEdvBGOzcoijIZNf6zf9LGtLk5yFPIQnUdE6TT6l2e?= =?us-ascii?q?SFSZQuedxzL2R4kVuZY7ujYw8NLKgiB3C7jIP6qYpzO28I64iSGYuffEVmkseE?= =?us-ascii?q?w4m+QCD3OEwBZeKWEIEdYVuFviQqSYfUZDyGopif5y2x8LYAl8TH9u0npWnPa7?= =?us-ascii?q?Ac1ZTlgUgXihQP0ccVB3Ei0//VWQ7g30f9MApdjZR3VC+bsUVYodMP4o5ZHMOK?= =?us-ascii?q?sexfYmwDNrrS8hviWDEVxdlAOF8qvXHKJ63LFC43c3/+1uVEGVXzzfanTHypah?= =?us-ascii?q?C89Xxydupnbk187Ps+BoKrRVuo95AFAQAS1qON/R5zZBXn/o2Fj6gxHuFzSEIS?= =?us-ascii?q?kGyC0MODdAbeFxiehhv1KAbt/c7WuIvr8l7U6sDhyGTLGz3dgDEc3y/RmpYilM?= =?us-ascii?q?NzOwHtZ5regJ3NsKaLkmfqCmCkrANRD6BwmV/ScW+1yirrCmAcRN2Gk2iKggKN?= =?us-ascii?q?j1GYINCJ2RxzxxxTBIyZQT3EWQBM/SYtvy7Mk8TXEHMt+nTmLmZonVOD7xnP8G?= =?us-ascii?q?25YqUU2VbbY0JmVe5rI/kC/Ickmn9IHrtnuBJ6e5eDi7EMQDNJChjW5exK3GM9?= =?us-ascii?q?W9tLR5FXMb8P1k2ov7vnfEp2HZOI66?= X-IPAS-Result: =?us-ascii?q?A2ELBQBknzRY/wHyM5BdHQEFAQsBGAEFAQsBgw0BAQEBAR+?= =?us-ascii?q?BWaRZlmwkgk6FUlMBAQEBAQEBAQIBAl8ogjMaghwCBAECJBMUIAsDAwkBARcII?= =?us-ascii?q?QgIAwEtFREHBwsFGASITASxRz0qAoskAQEIAQEBASOPMQIRAYV9AQSaTpB/ihq?= =?us-ascii?q?GEI1mhAxVXjQegyocgV9whU8PF4IXAQEB?= Received: from unknown (HELO tarius.tycho.ncsc.mil) ([144.51.242.1]) by emsm-gh1-uea10.nsa.gov with ESMTP; 22 Nov 2016 19:46:51 +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 uAMJkotW018981; Tue, 22 Nov 2016 14:46:51 -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 uAMJfFj4031457 for ; Tue, 22 Nov 2016 14:41:15 -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 uAMJf23a017043 for ; Tue, 22 Nov 2016 14:41:14 -0500 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A1CxBAC6njRY/4GlL8FdHgYMgzgBAQEBAYF4pFmSX4QUgmuDNgKCbQECAQEBAQECYiiEaQIEJ1IQGAgxVwcSiHGxUT2LUAEBAQcCJY8xhhEFmk6Qf5AqjWaEDFWBEoNIHIFfPDSFT4I9AQEB X-IPAS-Result: A1CxBAC6njRY/4GlL8FdHgYMgzgBAQEBAYF4pFmSX4QUgmuDNgKCbQECAQEBAQECYiiEaQIEJ1IQGAgxVwcSiHGxUT2LUAEBAQcCJY8xhhEFmk6Qf5AqjWaEDFWBEoNIHIFfPDSFT4I9AQEB X-IronPort-AV: E=Sophos;i="5.31,682,1473134400"; d="scan'208";a="5839023" 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; 22 Nov 2016 14:41:14 -0500 IronPort-PHdr: =?us-ascii?q?9a23=3AhyrJIR8eqnSEWv9uRHKM819IXTAuvvDOBiVQ1KB3?= =?us-ascii?q?1u0cTK2v8tzYMVDF4r011RmSDN6dsa8P0rCN+4nbGkU4qa6bt34DdJEeHzQksu?= =?us-ascii?q?4x2zIaPcieFEfgJ+TrZSFpVO5LVVti4m3peRMNQJW2aFLduGC94iAPERvjKwV1?= =?us-ascii?q?Ov71GonPhMiryuy+4ZPebgFGiTanf79/LBq6oRjPusQYnIBvNrs/xhzVr3VSZu?= =?us-ascii?q?9Y33loJVWdnxb94se/4ptu+DlOtvwi6sBNT7z0c7w3QrJEAjsmNXs15NDwuhnY?= =?us-ascii?q?UQSP/HocXX4InRdOHgPI8Qv1Xpb1siv9q+p9xCyXNtD4QLwoRTiv6bpgRQT2gy?= =?us-ascii?q?kbKTE27GDXitRxjK1FphKhuwd/yJPQbI2MKfZyYr/RcdYcSGFcXMheSjZBD5u8?= =?us-ascii?q?YYUREuQPM+VWoY7/qFsAthayGRWgCfnzxjJSmnP6was32PkhHwHc2wwgGsoDvn?= =?us-ascii?q?rOo9XzKawcVf21zLPHzTrdafNWwir25Y/VfR87p/GMXKx/cc7TyUQ0EgPKkFGQ?= =?us-ascii?q?qYj/MDOT0eQMvHKX4PZnVeKqkmMqrRx6rDu3xso0l4XEgowYxkrL+Ch72oo5ON?= =?us-ascii?q?y1RU5hbdK5DpddsyeXPJZsTMw4WWFnoiM6x6UGuZGleCgKz4wqxxvBZPyDd4iH?= =?us-ascii?q?+BTjVOGeIDtimH1lf6izhxe28US4y+38UNe70EpSoyZYltTBuGoB2hPR58SdV/?= =?us-ascii?q?dw/0es1SyS2wzN7uxIOUU0mrDaK54lzL4wjJ0TsUHbEyDrgkr2iq6WeVsg+uiq?= =?us-ascii?q?8OnnZ6vpppuYN4BujAH+NasvltajDuQ/NwgCR3Kb9vik1L3/4U35R61HjuYona?= =?us-ascii?q?ndsZDaI9kbp6GiDg9J0ocs9xa/DzC83NQehnkINkhJeB2Aj4j3aBnyJ6XzDe2+?= =?us-ascii?q?mEuEizB23LXdObmnBY/CajDbmarlVa509koZzQ00190Z7JVRTvkaLOnbRl76tN?= =?us-ascii?q?ueCAQwdQOz3aKvBc10zIIFcXqGGK6CKKfbulLO4fggZ6GAYIIZtjHnJ9A/6vLu?= =?us-ascii?q?hGN/klgYOeGy0JIRLnC1EOh3C0SffXfoxNwGFCNCvgM6Cvbtk1CESiJUbHWaUK?= =?us-ascii?q?c15zV9A4WjXqnZQYX4rLWHlAWmBJJbYHsOXlyFF3blc4esXvoIbCuUJd8nmTsB?= =?us-ascii?q?A+vyA7Q93A2j4Vepg4FsKfDZr2hB7cru?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0GyBAA+njRY/4GlL8FdHgYMGQYMgw0BA?= =?us-ascii?q?QEBAYF4pFmSX4QUgmuDNgKCbQEBAQEBAQEBAgECXyiCMxoBghsCBCdSEBgIMVc?= =?us-ascii?q?HEohxsVA9i1ABAQEHAiWPMYYRBZpOkH+QKo1mhAxVgRKDSByBXzw0hU+CPQEBA?= =?us-ascii?q?Q?= X-IPAS-Result: =?us-ascii?q?A0GyBAA+njRY/4GlL8FdHgYMGQYMgw0BAQEBAYF4pFmSX4Q?= =?us-ascii?q?UgmuDNgKCbQEBAQEBAQEBAgECXyiCMxoBghsCBCdSEBgIMVcHEohxsVA9i1ABA?= =?us-ascii?q?QEHAiWPMYYRBZpOkH+QKo1mhAxVgRKDSByBXzw0hU+CPQEBAQ?= X-IronPort-AV: E=Sophos;i="5.31,682,1473120000"; d="scan'208";a="1226332" Received: from mail-il-dmz.mellanox.com (HELO mellanox.co.il) ([193.47.165.129]) by emsm-gh1-uea10.nsa.gov with ESMTP; 22 Nov 2016 19:41:12 +0000 Received: from Internal Mail-Server by MTLPINE1 (envelope-from danielj@mellanox.com) with ESMTPS (AES256-SHA encrypted); 22 Nov 2016 21:41:11 +0200 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 uAMJenMa005134; Tue, 22 Nov 2016 21:41:08 +0200 From: Dan Jurgens To: chrisw@sous-sol.org, paul@paul-moore.com, sds@tycho.nsa.gov, eparis@parisplace.org, dledford@redhat.com, sean.hefty@intel.com, hal.rosenstock@gmail.com Subject: [PATCH v5 6/9] selinux: Allocate and free infiniband security hooks Date: Tue, 22 Nov 2016 21:40:35 +0200 Message-Id: <1479843638-67136-7-git-send-email-danielj@mellanox.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1479843638-67136-1-git-send-email-danielj@mellanox.com> References: <1479843638-67136-1-git-send-email-danielj@mellanox.com> X-Mailman-Approved-At: Tue, 22 Nov 2016 14:41:47 -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: linux-rdma@vger.kernel.org, linux-security-module@vger.kernel.org, selinux@tycho.nsa.gov MIME-Version: 1.0 Errors-To: selinux-bounces@tycho.nsa.gov Sender: "Selinux" X-Virus-Scanned: ClamAV using ClamSMTP From: Daniel Jurgens Implement and attach hooks to allocate and free Infiniband object security structures. Signed-off-by: Daniel Jurgens --- v2: - Use void * blobs for security structs. Paul Moore - Shorten ib_end_port to ib_port. Paul Moore - Allocate memory for security struct with GFP_KERNEL. Yuval Shaia --- security/selinux/hooks.c | 25 ++++++++++++++++++++++++- security/selinux/include/objsec.h | 5 +++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c index 2d7a7c1..d87e29d 100644 --- a/security/selinux/hooks.c +++ b/security/selinux/hooks.c @@ -17,6 +17,7 @@ * Paul Moore * Copyright (C) 2007 Hitachi Software Engineering Co., Ltd. * Yuichi Nakamura + * Copyright (C) 2016 Mellanox Technologies * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2, @@ -6082,7 +6083,26 @@ static int selinux_key_getsecurity(struct key *key, char **_buffer) *_buffer = context; return rc; } +#endif + +#ifdef CONFIG_SECURITY_INFINIBAND +static int selinux_ib_alloc_security(void **ib_sec) +{ + struct ib_security_struct *sec; + + sec = kzalloc(sizeof(*sec), GFP_KERNEL); + if (!sec) + return -ENOMEM; + sec->sid = current_sid(); + + *ib_sec = sec; + return 0; +} +static void selinux_ib_free_security(void *ib_sec) +{ + kfree(ib_sec); +} #endif static struct security_hook_list selinux_hooks[] = { @@ -6269,7 +6289,10 @@ static struct security_hook_list selinux_hooks[] = { LSM_HOOK_INIT(tun_dev_attach_queue, selinux_tun_dev_attach_queue), LSM_HOOK_INIT(tun_dev_attach, selinux_tun_dev_attach), LSM_HOOK_INIT(tun_dev_open, selinux_tun_dev_open), - +#ifdef CONFIG_SECURITY_INFINIBAND + LSM_HOOK_INIT(ib_alloc_security, selinux_ib_alloc_security), + LSM_HOOK_INIT(ib_free_security, selinux_ib_free_security), +#endif #ifdef CONFIG_SECURITY_NETWORK_XFRM LSM_HOOK_INIT(xfrm_policy_alloc_security, selinux_xfrm_policy_alloc), LSM_HOOK_INIT(xfrm_policy_clone_security, selinux_xfrm_policy_clone), diff --git a/security/selinux/include/objsec.h b/security/selinux/include/objsec.h index c21e135..8e7db43 100644 --- a/security/selinux/include/objsec.h +++ b/security/selinux/include/objsec.h @@ -10,6 +10,7 @@ * * Copyright (C) 2001,2002 Networks Associates Technology, Inc. * Copyright (C) 2003 Red Hat, Inc., James Morris + * Copyright (C) 2016 Mellanox Technologies * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2, @@ -128,6 +129,10 @@ struct key_security_struct { u32 sid; /* SID of key */ }; +struct ib_security_struct { + u32 sid; /* SID of the queue pair or MAD agent */ +}; + extern unsigned int selinux_checkreqprot; #endif /* _SELINUX_OBJSEC_H_ */