{"thread":{"id":"52481","subject":"git-am doesn't strip CRLF line endings when the mbox is base64-encoded","startedAt":"2019-12-18T11:50:04Z","lastAt":"2020-01-06T18:10:58Z","messageCount":6,"participants":["George Dunlap","Todd Zullinger","Junio C Hamano"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"388438","messageId":"c44c3958-b0eb-22bd-bc35-04982706162f@citrix.com","threadId":"52481","inReplyTo":null,"subject":"git-am doesn't strip CRLF line endings when the mbox is base64-encoded","fromName":"George Dunlap","fromEmail":"george.dunlap@citrix.com","sentAt":"2019-12-18T11:42:38Z","receivedAt":"2019-12-18T11:50:04Z","isPatch":false,"sender":{"key":"george.dunlap@citrix.com","avatar":null},"body":"Using git 2.24.0 from Debian testing.\n\nIt seems that git-am will strip CRLF endings from mails before applying\npatches when the mail isn't encoded in any way.  It will also decode\nbase64-encoded mails.  But it won't strip CRLF endings from\nbase64-encoded mails.\n\nAttached are two mbox files for two different recent series.\nplainenc.am applies cleanly with `git am`, while base64enc.am doesn't.\n\nPoking around the man pages, it looks like part of the issue might be\nthat the CRLF stripping is done in `git mailsplit`, before the base64\nencoding, rather than after.\n\n -George\n\n\nFrom - Wed Dec 18 10:46:18 2019\nReceived: from FTLPEX02AMS01.citrite.net (10.13.108.166) by\n AMSPEX02CL01.citrite.net (10.69.22.125) with Microsoft SMTP Server (TLS) id\n 15.0.1473.3 via Mailbox Transport; Tue, 17 Dec 2019 16:12:28 +0100\nReceived: from MIAPEX02MSOL02.citrite.net (10.52.109.12) by\n FTLPEX02AMS01.citrite.net (10.13.108.166) with Microsoft SMTP Server (TLS) id\n 15.0.1473.3; Tue, 17 Dec 2019 10:12:27 -0500\nReceived: from esa2.hc3370-68.iphmx.com (10.9.154.239) by\n MIAPEX02MSOL02.citrite.net (10.52.109.12) with Microsoft SMTP Server (TLS) id\n 15.0.1473.3 via Frontend Transport; Tue, 17 Dec 2019 10:12:26 -0500\nReceived-SPF: None (esa2.hc3370-68.iphmx.com: no sender\n  authenticity information available from domain of\n  aisaila@bitdefender.com) identity=pra; client-ip=40.107.5.93;\n  receiver=esa2.hc3370-68.iphmx.com;\n  envelope-from=\"aisaila@bitdefender.com\";\n  x-sender=\"aisaila@bitdefender.com\";\n  x-conformance=sidf_compatible\nReceived-SPF: Pass (esa2.hc3370-68.iphmx.com: domain of\n  aisaila@bitdefender.com designates 40.107.5.93 as permitted\n  sender) identity=mailfrom; client-ip=40.107.5.93;\n  receiver=esa2.hc3370-68.iphmx.com;\n  envelope-from=\"aisaila@bitdefender.com\";\n  x-sender=\"aisaila@bitdefender.com\";\n  x-conformance=sidf_compatible; x-record-type=\"v=spf1\";\n  x-record-text=\"v=spf1 ip4:40.92.0.0/15 ip4:40.107.0.0/16\n  ip4:52.100.0.0/14 ip4:104.47.0.0/17 ip6:2a01:111:f400::/48\n  ip6:2a01:111:f403::/48 -all\"\nReceived-SPF: Pass (esa2.hc3370-68.iphmx.com: domain of\n  postmaster@EUR03-VE1-obe.outbound.protection.outlook.com\n  designates 40.107.5.93 as permitted sender) identity=helo;\n  client-ip=40.107.5.93; receiver=esa2.hc3370-68.iphmx.com;\n  envelope-from=\"aisaila@bitdefender.com\";\n  x-sender=\"postmaster@EUR03-VE1-obe.outbound.protection.outlook.com\";\n  x-conformance=sidf_compatible; x-record-type=\"v=spf1\";\n  x-record-text=\"v=spf1 ip4:40.92.0.0/15 ip4:40.107.0.0/16\n  ip4:52.100.0.0/14 ip4:104.47.0.0/17 ip6:2a01:111:f400::/48\n  ip6:2a01:111:f403::/48 -all\"\nAuthentication-Results: esa2.hc3370-68.iphmx.com; spf=None smtp.pra=aisaila@bitdefender.com; spf=Pass smtp.mailfrom=aisaila@bitdefender.com; spf=Pass smtp.helo=postmaster@EUR03-VE1-obe.outbound.protection.outlook.com; dkim=pass (signature verified) header.i=@bitdefender.onmicrosoft.com\nIronPort-SDR: za36JUH8wxLX1Znk5weTy/oOQAtK6ZvsPotGYmEyJkRAKYIJWGHmc4K2b8q0W2wmpz/qVJ88Rr\n uqsuTNfQbIczSLAIWQCeXdmE2bH4pvdh+9bnm2UlZC92nV98mfpO1n8uDEMGvIoPzUD7kMxKxp\n C8TFCWER8INL34gsxa6RqyRzuZy1PtLukq4FENWDTobf3ZP5BjlkJk93RrxEe5oZmhdjY/+5TE\n j3TEnK8n+doVftRxD+w+0m6L0A+rk51RlrJa+jxiHx3DLFw1YmeijBn++w7HQQnxazjQbvTFbn\n ZCxvSYRlnAFVJUa4zNG1SuBq\nX-IronPort-RemoteIP: 40.107.5.93\nX-IronPort-MID: 9822583\nX-IronPort-Reputation: 3.4\nX-IronPort-Listener: InboundMail\nX-IronPort-SenderGroup: SBRS_Whitelist\nX-IronPort-MailFlowPolicy: $ACCEPTED\nX-SBRS: 3.4\nX-MesageID: 9822583\nX-Ironport-Server: esa2.hc3370-68.iphmx.com\nX-Remote-IP: 40.107.5.93\nX-Policy: $ACCEPTED\nIronPort-PHdr: =?us-ascii?q?9a23=3AoDXbLROZBALHRrpP2IMl6mtUPXoX/o7sNwtQ0K?=\n =?us-ascii?q?IMzox0I/r9rarrMEGX3/hxlliBBdydt6sfzbCO7Ou/ACQp2tWoiDg6aptCVh?=\n =?us-ascii?q?sI2409vjcLJ4q7M3D9N+PgdCcgHc5PBxdP9nC/NlVJSo6lPwWB6nK94iQPFR?=\n =?us-ascii?q?rhKAF7Ovr6GpLIj8Swyuu+54Dfbx9HiTagb75+Ngu6oRnTu8UZg4ZuN7s6xw?=\n =?us-ascii?q?fUrHdPZ+lY335jK0iJnxb76Mew/Zpj/DpVtvk86cNOUrj0crohQ7BAAzsoL2?=\n =?us-ascii?q?465MvwtRneVgSP/WcTUn8XkhVTHQfI6gzxU4rrvSv7sup93zSaPdHzQLspVz?=\n =?us-ascii?q?mu87tnRRn1gyocKTU37H/YhdBxjKJDoRKuuRp/w5LPYIqIMPZyZ77Rcc8GSW?=\n =?us-ascii?q?ZEWMtaSi5PDZ6mb4YXD+QPI/tWr5XzqVUNqhW+BBWjCuzgxTJTmn/5xrc33/?=\n =?us-ascii?q?g7HA3a3gEtGc8FvnTOrNXyMacfSfy4zK3WwjTMdfxW3yry6JLVchs8vP+MQa?=\n =?us-ascii?q?x/ccTLxkkpCgjLjUiepJDmMT2TyukGrm+W4PBhVeK0kWEnqgVxrSK0y8g3i4?=\n =?us-ascii?q?nJmp8axU7K9SpnxoY6OMO3SFRhbdG4F5tQsjiXOo1rSc0hW2FloCk3xqEctZ?=\n =?us-ascii?q?KmYCQHyo4ryh7FZ/GDfYWE+hbuWPuLLTtlgH9ofKiziwuu/UWv0OHxV9G40F?=\n =?us-ascii?q?hUoSdGjtXBs3UA2h/P5ceZVvRw+0Ws1DeB2g3Q7+xJI045mKXHJJMkwbM9ko?=\n =?us-ascii?q?ccvELeFSHsgkr2lrWZdkA89+io9evnZrLmq4eTOYB6lg/yLqojltWwDuo3Lw?=\n =?us-ascii?q?QCRm+b9v+i27H5+k35XalKgeYxkqnEtpDVON4XprajAw9SzoYs9QqwDyun0N?=\n =?us-ascii?q?Qfm3kLNlVFeA+bj4jtPFHOJ/P4Ae2jjFSrlTdn3/HGPrv/DZXRNnXOn6vtca?=\n =?us-ascii?q?xg50JAygc/19BS64hQB7wPOP7zX1X+tN3cDh83KQy0xOPnBc1n2YMfQmKAGK?=\n =?us-ascii?q?6ZMKfIvlKT/e0vIvWMa5ILtzbzNfcl4ePhgmEjmVMHYaap2p4XZGiiHvt6O0?=\n =?us-ascii?q?WZfWbsgtAZHGcFoAU+S/bqiFKcXjJJenmyQqQ85jUhB4K+ForMWJ2tjKad0y?=\n =?us-ascii?q?e6Ap1WfGFGC1+WHXj0cIWEXqREVCXHaN9slHkIWKasT6cl1Aqyr0nqxrx/NO?=\n =?us-ascii?q?3W9yYE85X525I9s/3ek1Q++CJ5C+yZ0nqRVCdkk2UQXTg00atj50tnxQHQ/7?=\n =?us-ascii?q?J/hqlxEdFD7vVFSBpyDoLRweV8Q/HJcyPlV5/dQVe9S9SiCBk7T849ztEDZU?=\n =?us-ascii?q?pwAZOpiRWVjHniOKMci7HeXM98yanbxXWkYp8lky+bhoUCrnxjb9VGMXCvmq?=\n =?us-ascii?q?948VSOXdzXxhzK36//b78VmTXN/T3ekznGtxRCXQp5QajJGmoSYkLGoNiqgy?=\n =?us-ascii?q?GKQ+qkCKgrPwVMz8KPMO1NbNjohk9BX/DtJJLVZGfi03zlHhuMy7iQa5CwPm?=\n =?us-ascii?q?8cwCnQBkUCnw0JuHGAMAk1HCC6pGzCSTdpEAGKAQvspMdkr3bpYkYowlOxck?=\n =?us-ascii?q?dj2rGpqDsYnueVRP5W/55WkyAntzhyABOBzsrbWf+hgickQqhGetI65gV3kE?=\n =?us-ascii?q?fi8iFtNZypKa9vw2UTdQh6pWrC/BV6AYYT9KpipnN/wCx+L46k02NvTBnH+b?=\n =?us-ascii?q?TgZLfxMzGu2xv3YaKGnWjv1vKrwqEA1sQ9qm/P5FT6cyhq+SBM+sF7wWqG5c?=\n =?us-ascii?q?3PCC8+Wqn4XlgJsBQllYzeay8v14bvlngzOJeZiXydnOotOKx/6julYMtuHY?=\n =?us-ascii?q?mIMlHqLsElK8K1DcYblF6ASxsiAOxd9IQXJ5iCdfWEm7WRJ8E6vTCClXQdo6?=\n =?us-ascii?q?Z+i1CL8Bt6Tv7whK88592c/EiMVTbMjHu6rZ3Jlax8VxISMCmRxjThWYhAaa?=\n =?us-ascii?q?hzIKpTDmGuDuam4PlYq5WuBy9+8GH9WG0hwZ/8KlKCKl3n2gtI0l4L5Gaqgj?=\n =?us-ascii?q?a802lsmioy/fDFjgXT3+TvcgYGMWdXRW5kyG3hOpWwk8tAAhL6YhMgzl2l7h?=\n =?us-ascii?q?2hmPAe+vQ5LnHTRFcOdC/zfCl5SqXlkL2EboZU7Y8w9z1NWbG1YEuTS7r0ix?=\n =?us-ascii?q?Ebzy/uEWZYyD0hMTqtv8axhAR03VqUN207t3/FYYd1zBbb6sbbQKtY3yEPRS?=\n =?us-ascii?q?1xoTPWGlSxMdSv8diO0ZzEt7P2THqvA6VaajKj1oacrG276GltVAW4hOy2k8?=\n =?us-ascii?q?b7HBIS/BLBj4IvawiR6RH2b8/syriwNv9hcg9wHljg5sFmG4Z41IwtmJUX3n?=\n =?us-ascii?q?tcjZKQrjILkmb2ZM1Swrm2LGEMSjgC38PP7UD71VdiIHOEy8OxVniUzsZ7Id?=\n =?us-ascii?q?jvSmkXxi4w4c1MBKqOqrtCmCp+uF2jqgzNJ/N6m25Hm8Ej43MbnewF/TEV4H?=\n =?us-ascii?q?7EWeI0Gk9VdWzhjB3SqdC19/4IPCPxIf6xzEp7jZaqC7TQ6gdbEG30fJsvB0?=\n =?us-ascii?q?oSpo12LU7M3Xvv64rlZMiYbNQdsQeRmgvBiO4dIYw4l/4Djy5qcWznunhtx+?=\n =?us-ascii?q?k+hB1olZa02erPY2xs56u4BhdwPDzpa84d9zfhgLwYlcGTnsiuEphnBjQXTc?=\n =?us-ascii?q?7wV/v7WDkWtPnhK0OPCGhg8jHCQeWZQEnOsxQDzTqHCZ2gOnCJKWNMwM5rHl?=\n =?us-ascii?q?+dLxcE31hRAmV8n4Y5ExDsz8vkIyIbrngc4ED1rhxUx6dmLR76By3WpRyhaz?=\n =?us-ascii?q?M9YJKeMBZb4AxE60rPd8eZ66ggekMQto3ktwGLJmGBMk5BDHoAW0iNL1riIr?=\n =?us-ascii?q?Wj69TG/+WCQOG5KrGdBNfG4fwbXPCOy5W114Jg9DvZLcSDME5pCPgj01ZCV3?=\n =?us-ascii?q?R0Qp6LoTgERi0Jmi6IVPa1+EbkqBV+tdv3sPnwUVip5YDUUOQKdIs/vRGuga?=\n =?us-ascii?q?KTceWXgXQxJTFd35IKjXjGrdpXlFcTkChvczCFG7UcuSPDQaTcl7URBBkeIy?=\n =?us-ascii?q?9+L8pH6asg0xIFZZad04uqkOM+36V9AkwNTVH7n8C1ecEGRgP1fEjKAkqGLv?=\n =?us-ascii?q?XOJDHGxd32fbLpTLRRiOtOsBjj8T2fEkLlInGCj2y1D1b2ab4K0WfKZ0872s?=\n =?us-ascii?q?n1aBtmBGn9QcizZwayapl3hmZtnuVx2COMNHYcNCg6eERI/djypWtVhOtyH2?=\n =?us-ascii?q?tZ4z9rN+6BzmyQ7vLRK5IfmfFqHih5me9c7HkgjbBS6WsXIZ490DuXtdNor1?=\n =?us-ascii?q?y8x6OGyyFuUR5HgjxKmI6Gs0hkNajDsJJHXDyXmXBFpXXVABMMqdx/D9TpsK?=\n =?us-ascii?q?0F0dnDmpX4LzJa+s7V988RVIDEbdiKO307PV/1CSbZWUEbGCWzOziV1Ck/2L?=\n =?us-ascii?q?mCs2eYpZ8gpt3wlYoSH/VFAUctGKpSC1w5ToBaZsYtGGtiyfnC0YYJ/Sbs8E?=\n =?us-ascii?q?GXHZ0F+MiBDrXLX5CNYH6YleUWOkFOmOuga9xVbsqihwRjcgUoxdyWXRaPG4?=\n =?us-ascii?q?gL+mo4MUc1uBsfqnEmFz9qghu3ZF/1uC1BUqLk+3x+wgpmP7Z3/W+1sQ5ufw?=\n =?us-ascii?q?jE+HNrwht2xYWtxDmVdHSodvWKUIpbCjT5uw0KCr2mHlwnVQSphgQkOSzNHf?=\n =?us-ascii?q?RRhOA7Kjgu1l+auINPHO4aRqpBMlccwvSeZvNg1lo5yG3v3Uhc+e7MEodvji?=\n =?us-ascii?q?MHTKT09Dd+9lsma9Q4Y6vNOKBO015cwLqUuTOl3fwwxwlYIFsR9GSVe2gDv0?=\n =?us-ascii?q?ltVPFuKyez/+Nq4BCPgHMfIC5VD6Vs/7Q7rQs0IKyYwjjl0qJfJ0z5LOGZI6?=\n =?us-ascii?q?6D+iDBmcOOXlIsxxYImk1Crt0UmY8od0uZUVxqzaPES0xPbJKdb1wTPpEBvG?=\n =?us-ascii?q?LediuPr+jXlJ9uNt/7FuuzFrDW8fhExEO8HAM5WY8L65dkfNHk3UfGIMPgNL?=\n =?us-ascii?q?NAxw8q4VGhLVSeBfVNcTqBkSsLrs+yypN6x89WITRXUgAfeW2no63aoAMnmq?=\n =?us-ascii?q?/JRNAtfnITRZcJLFobZffiwGtnki0FCzO6lOUE1AKF8jnw4DzKCyXxZMZiY/?=\n =?us-ascii?q?HSYg5wDNax+nM09K382ju1ut3OYmr9M9ploNrG7+gX8o2GB/1jRr54q07Amo?=\n =?us-ascii?q?NcSi/iQyvVHNWyPZS1d5g0YIm+FCOhSlLmwWFQLY+5LJO3I6OPmw2tWYtErN?=\n =?us-ascii?q?zRwmU4LcHkXjAGR0Us/6dSvuQkI1VEOsdzYAa05VhmcfXnf0HAlI3pGjjIS3?=\n =?us-ascii?q?MeTuEDn7jgIeUPl2x0KLf9kSdoT4lmnbDvrQhRG9dSyEmZnKnrZpEAA3L6Qi?=\n =?us-ascii?q?UPIlyW9yRlzzAzZKFukoJdiFvJqQdOaTnTLb4wMTUWsY1kXgHAZikmQi8xQ1?=\n =?us-ascii?q?vW1NuR0kuXx7kXuhBlsZNR2OxBvmL5u8aAMjitRKCmp5jTvyc6K9Mhpv8oaN?=\n =?us-ascii?q?GxEo69rJrb2wfnYtzQvwmCDHHoOsdgwoMVHg8BBf5ClCciJNAMvpdH5QwpTM?=\n =?us-ascii?q?AiKrdTCa4q4Le3dT5jCi1UxigcBdrZgG4yx9yk0r6frS++NYw4OUVb4p9Dnt?=\n =?us-ascii?q?cQXSNwbi4E4qSkUteOmg=3D=3D?=\nX-IronPort-Anti-Spam-Filtered: true\nX-IronPort-Anti-Spam-Result: =?us-ascii?q?A0FjAQCb7/hdhl0FayhlHQEBAQkBEQU?=\n =?us-ascii?q?FAYF+gUtQgWYDBAsqCoN6g0YDhTqFVJZrhkwDGDwJBAEBCgEtAgEBAQGEPhm?=\n =?us-ascii?q?CHwYBBDQTAgECAQwBAQEDAQEBAgECAwICAQECEAEBAQgLCwgphT4BC4I7KQF?=\n =?us-ascii?q?pOTgBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEFAoEMQBY?=\n =?us-ascii?q?RBA0MAQE3AREBIgImAgQwFRIEDgUigwCCRwMvAgGiAz0CIwE/AguBBCmIYAE?=\n =?us-ascii?q?BdH8zgn4BAQWFGRhYgT8JgQ4ohz+EbQaBQT+EYoRIGIJ5gl6NRYI3OZ5UKII?=\n =?us-ascii?q?WlgQnmkktjiCaTQIEAgQFAg4BAQWBaYF7MyIbFUgNglJQERSNEgwOCYNQilN?=\n =?us-ascii?q?CATEBgSePSAGBDwEB?=\nX-IPAS-Result: =?us-ascii?q?A0FjAQCb7/hdhl0FayhlHQEBAQkBEQUFAYF+gUtQgWYDB?=\n =?us-ascii?q?AsqCoN6g0YDhTqFVJZrhkwDGDwJBAEBCgEtAgEBAQGEPhmCHwYBBDQTAgECA?=\n =?us-ascii?q?QwBAQEDAQEBAgECAwICAQECEAEBAQgLCwgphT4BC4I7KQFpOTgBAQEBAQEBA?=\n =?us-ascii?q?QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEFAoEMQBYRBA0MAQE3AREBI?=\n =?us-ascii?q?gImAgQwFRIEDgUigwCCRwMvAgGiAz0CIwE/AguBBCmIYAEBdH8zgn4BAQWFG?=\n =?us-ascii?q?RhYgT8JgQ4ohz+EbQaBQT+EYoRIGIJ5gl6NRYI3OZ5UKIIWlgQnmkktjiCaT?=\n =?us-ascii?q?QIEAgQFAg4BAQWBaYF7MyIbFUgNglJQERSNEgwOCYNQilNCATEBgSePSAGBD?=\n =?us-ascii?q?wEB?=\nX-IronPort-AV: E=Sophos;i=\"5.69,325,1571716800\"; \n   d=\"scan'208\";a=\"9822583\"\nX-Amp-Result: SKIPPED(no attachment in message)\nX-Amp-File-Uploaded: False\nX-IronPort-Outbreak-Status: No, level 0, Unknown - Unknown\nX-MGA-submission: =?us-ascii?q?MDGT96J1yveCxDBxD6BvL5WVW2gkAk6BIlj0rw?=\n =?us-ascii?q?VkBwhVw5/h0qWj2CL+fWO9YqVB/EUfql2jncblRMY677M3tR47nUakBW?=\n =?us-ascii?q?V1vP3uJqQV+3S+/VUTyNXGIomKsVAKoOW+jqw00BnN0Nm+OooX1Ziwng?=\n =?us-ascii?q?CrbixXcKZgCVX5ovUehX+Xsg=3D=3D?=\nReceived: from mail-eopbgr50093.outbound.protection.outlook.com (HELO EUR03-VE1-obe.outbound.protection.outlook.com) ([40.107.5.93])\n  by esa2.hc3370-68.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Dec 2019 10:12:25 -0500\nARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=R62Ng1T0L5ZBK1oUbMvt2wJqtdmoKkcVI0Uo45hQS5Rqg4EpxMPSrkBGT48tfKzNEvMB4u4okOEoWpUB1R0ydUuuEqyYEjk4pmWEIXepTZRLIqYKD+O5r3VIwwaWAJK4qArX+WC4Uxywpf7j9LHJkTePd/iGhjUhoHNGBWkFMSVCKBCgIwqQygLc7Vg0/8rwSYTw5lzRxN0pV7wTrbhmgPpQoaGLw7wOoJp4xABKWmTfgzgx0WJIXgLwHK0ELvviBhPMR6seskVs/uYPjxZF06W3LEsxqSyBULNMuqYxpG9WvGJ3gaW3D/cV9atpueOmvYkway5iihzRpJI7OWE9vw==\nARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector9901;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=dNdnDTkXFSB7LLx6bNq04Oc0bd8/QYnLUPngVXmiRD0=;\n b=Kn1QZ2zPaLCZyTITnbHiUh9gEnqLvEPffhV4rkEIQVbTKCOMJvc61mxMtbgZqPAczdqsksdm2tPFV/dIxRZ5yUL9hWeriROdCEqVG1iiEETx/yTH8+koFQr0lwtMpWaaAZ7hu77FTSpSAkRolVyRPkLQb8DD5lTHgwqHmYAICnXAz/NQ8JfLI5WgHDxB3lr2AOnrN5qQc8A0mTvUcQ5ZizpCnITz1Wf6LanyTOZO/KulAaKyjQa26B8smLQHZiXYOIABmE3U/SUemBVlx3Fb4IVoIL+qwcJRdRg+C7ignsbyvFS6zORKcdjTtpktH+vpRsBU2+NozAsDDXOQiCI58A==\nARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=bitdefender.com; dmarc=pass action=none\n header.from=bitdefender.com; dkim=pass header.d=bitdefender.com; arc=none\nDKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=bitdefender.onmicrosoft.com; s=selector2-bitdefender-onmicrosoft-com;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=dNdnDTkXFSB7LLx6bNq04Oc0bd8/QYnLUPngVXmiRD0=;\n b=CApFzyrk0mlMDcSadvV/d7ZUlanzXmS+m7aVES+7/PlT/2HEmwtYEBdN6pUdWDbsMBYgnAMaNTdghBKp3Ljfj+sRsO2IjLpx2+Nk1zooYnlxP3QQLDlJ+cjiXhDsw5VdDPZKhF+Fgtm5nygmi5D0onhECyNDNDc+49NlW67VOq8=\nReceived: from AM0PR02MB5553.eurprd02.prod.outlook.com (10.255.30.78) by\n AM0PR02MB4386.eurprd02.prod.outlook.com (20.178.17.212) with Microsoft SMTP\n Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n 15.20.2538.20; Tue, 17 Dec 2019 15:12:22 +0000\nReceived: from AM0PR02MB5553.eurprd02.prod.outlook.com\n ([fe80::8cec:7638:734c:89d]) by AM0PR02MB5553.eurprd02.prod.outlook.com\n ([fe80::8cec:7638:734c:89d%4]) with mapi id 15.20.2538.019; Tue, 17 Dec 2019\n 15:12:22 +0000\nFrom: Alexandru Stefan ISAILA <aisaila@bitdefender.com>\nTo: \"xen-devel@lists.xenproject.org\" <xen-devel@lists.xenproject.org>\nCC: Alexandru Stefan ISAILA <aisaila@bitdefender.com>, Razvan COJOCARU\n\t<rcojocaru@bitdefender.com>, Tamas K Lengyel <tamas@tklengyel.com>, \"Petre\n Ovidiu PIRCALABU\" <ppircalabu@bitdefender.com>, George Dunlap\n\t<george.dunlap@eu.citrix.com>, Jan Beulich <jbeulich@suse.com>, Andrew Cooper\n\t<andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,\n\t=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Jun Nakajima\n\t<jun.nakajima@intel.com>, Kevin Tian <kevin.tian@intel.com>\nSubject: [PATCH V4 1/4] x86/mm: Add array_index_nospec to guest provided index\n values\nThread-Topic: [PATCH V4 1/4] x86/mm: Add array_index_nospec to guest provided\n index values\nThread-Index: AQHVtOxhsG39wuvEP0STO9uvU+j0gQ==\nDate: Tue, 17 Dec 2019 15:12:21 +0000\nMessage-ID: <20191217151144.9781-1-aisaila@bitdefender.com>\nAccept-Language: en-US\nContent-Language: en-US\nX-MS-Has-Attach:\nX-MS-TNEF-Correlator:\nx-clientproxiedby: AM0PR01CA0067.eurprd01.prod.exchangelabs.com\n (2603:10a6:208:e6::44) To AM0PR02MB5553.eurprd02.prod.outlook.com\n (2603:10a6:208:160::14)\nx-ms-exchange-messagesentrepresentingtype: 1\nx-mailer: git-send-email 2.17.1\nx-originating-ip: [91.199.104.6]\nx-ms-publictraffictype: Email\nx-ms-office365-filtering-correlation-id: d067ba9e-8c9c-4f83-ca0c-08d7830383e9\nx-ms-traffictypediagnostic: AM0PR02MB4386:|AM0PR02MB4386:|AM0PR02MB4386:\nx-ms-exchange-transport-forked: True\nx-microsoft-antispam-prvs: <AM0PR02MB43863905751FF81BCCB3A482AB500@AM0PR02MB4386.eurprd02.prod.outlook.com>\nx-ms-oob-tlc-oobclassifiers: OLM:923;\nx-forefront-prvs: 02543CD7CD\nx-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(366004)(136003)(396003)(39860400002)(346002)(376002)(189003)(199004)(6512007)(52116002)(64756008)(86362001)(186003)(8936002)(6486002)(4326008)(2906002)(54906003)(66476007)(71200400001)(66556008)(66946007)(36756003)(26005)(81156014)(81166006)(5660300002)(8676002)(6506007)(478600001)(66446008)(1076003)(2616005)(316002)(6916009);DIR:OUT;SFP:1102;SCL:1;SRVR:AM0PR02MB4386;H:AM0PR02MB5553.eurprd02.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1;\nx-ms-exchange-senderadcheck: 1\nx-microsoft-antispam: BCL:0;\nx-microsoft-antispam-message-info: O/DKVO6WLk5mFLsOwWvTpR9EV9dOb/z8utBIF47hT/GmWxtlgygxrYXbFHURww2fBdoahCSbAU36jUcW9Af2P+DzsJFgABqDJstVvyxzROv/Cyma3xwE+P/8avTSh4/Kk5EhIFXsSq4PbkTGvBbhjvPoYngpML5prLyyw5D3ZbGcxbgFQoiahCzLrYlm8iebb0EYUtsAE5hAqXfoWTuPq8XbXdZJ6oF6w+AgGCJPXkTbeBzfbXbOujX1AMOUpqw4YTdrQjY4+uqitzCr1E5Fuu/jtC9sygJijnuBH5xtozAPxojbyfQQPl6adAqz2CdCj/FaR6pQEARfnpdMPHYaOQp/Q4sRit1eQYX12g8+YnLijmYlyWGdDF8nBQ0Ppt3rZYjRUTJl6rMyAzsh2ipeJc6/9+EuQQcn5ZDmHtkRXJu2oUJq/FCwdx27zs1pgrEl\nContent-Type: text/plain; charset=\"utf-8\"\nContent-ID: <1944D3022A1EC5408CCD757F6F1CA470@eurprd02.prod.outlook.com>\nContent-Transfer-Encoding: base64\nX-MS-Exchange-CrossTenant-Network-Message-Id: d067ba9e-8c9c-4f83-ca0c-08d7830383e9\nX-MS-Exchange-CrossTenant-originalarrivaltime: 17 Dec 2019 15:12:22.0510\n (UTC)\nX-MS-Exchange-CrossTenant-fromentityheader: Hosted\nX-MS-Exchange-CrossTenant-id: 487baf29-f1da-469a-9221-243f830c36f3\nX-MS-Exchange-CrossTenant-mailboxtype: HOSTED\nX-MS-Exchange-CrossTenant-userprincipalname: A4teMOnRYkBZigPSnz6BzBUsDtClQtl/013J/4L4xfNdJRcIMDnzaZnH0IuLq5LRt496/1IKqGcweibRK2gV5UF8Z71xJP43w54Eyy5pPPg=\nX-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR02MB4386\nReturn-Path: aisaila@bitdefender.com\nX-MS-Exchange-Organization-Network-Message-Id: e5abb707-a0fb-4a92-0f14-08d78303871e\nX-MS-Exchange-Organization-AVStamp-Enterprise: 1.0\nX-MS-Exchange-Organization-AuthSource: MIAPEX02MSOL02.citrite.net\nX-MS-Exchange-Organization-AuthAs: Anonymous\nMIME-Version: 1.0\n\nVGhpcyBwYXRjaCBhaW1zIHRvIHNhbml0aXplIGluZGV4ZXMsIHBvdGVudGlhbGx5IGd1ZXN0IHBy\nb3ZpZGVkDQp2YWx1ZXMsIGZvciBhbHRwMm1fZXB0cFtdIGFuZCBhbHRwMm1fcDJtW10gYXJyYXlz\nLg0KDQpTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kcnUgSXNhaWxhIDxhaXNhaWxhQGJpdGRlZmVuZGVy\nLmNvbT4NCi0tLQ0KQ0M6IFJhenZhbiBDb2pvY2FydSA8cmNvam9jYXJ1QGJpdGRlZmVuZGVyLmNv\nbT4NCkNDOiBUYW1hcyBLIExlbmd5ZWwgPHRhbWFzQHRrbGVuZ3llbC5jb20+DQpDQzogUGV0cmUg\nUGlyY2FsYWJ1IDxwcGlyY2FsYWJ1QGJpdGRlZmVuZGVyLmNvbT4NCkNDOiBHZW9yZ2UgRHVubGFw\nIDxnZW9yZ2UuZHVubGFwQGV1LmNpdHJpeC5jb20+DQpDQzogSmFuIEJldWxpY2ggPGpiZXVsaWNo\nQHN1c2UuY29tPg0KQ0M6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+\nDQpDQzogV2VpIExpdSA8d2xAeGVuLm9yZz4NCkNDOiAiUm9nZXIgUGF1IE1vbm7DqSIgPHJvZ2Vy\nLnBhdUBjaXRyaXguY29tPg0KQ0M6IEp1biBOYWthamltYSA8anVuLm5ha2FqaW1hQGludGVsLmNv\nbT4NCkNDOiBLZXZpbiBUaWFuIDxrZXZpbi50aWFuQGludGVsLmNvbT4NCi0tLQ0KIHhlbi9hcmNo\nL3g4Ni9tbS9tZW1fYWNjZXNzLmMgfCAxNSArKysrKysrKystLS0tLS0NCiB4ZW4vYXJjaC94ODYv\nbW0vcDJtLWVwdC5jICAgIHwgIDUgKysrLS0NCiB4ZW4vYXJjaC94ODYvbW0vcDJtLmMgICAgICAg\nIHwgMjcgKysrKysrKysrKysrKysrKystLS0tLS0tLS0tDQogMyBmaWxlcyBjaGFuZ2VkLCAyOSBp\nbnNlcnRpb25zKCspLCAxOCBkZWxldGlvbnMoLSkNCg0KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4\nNi9tbS9tZW1fYWNjZXNzLmMgYi94ZW4vYXJjaC94ODYvbW0vbWVtX2FjY2Vzcy5jDQppbmRleCAz\nMjBiOWZlNjIxLi43MGYzNTI4YmIxIDEwMDY0NA0KLS0tIGEveGVuL2FyY2gveDg2L21tL21lbV9h\nY2Nlc3MuYw0KKysrIGIveGVuL2FyY2gveDg2L21tL21lbV9hY2Nlc3MuYw0KQEAgLTM2NywxMCAr\nMzY3LDExIEBAIGxvbmcgcDJtX3NldF9tZW1fYWNjZXNzKHN0cnVjdCBkb21haW4gKmQsIGdmbl90\nIGdmbiwgdWludDMyX3QgbnIsDQogICAgIGlmICggYWx0cDJtX2lkeCApDQogICAgIHsNCiAgICAg\nICAgIGlmICggYWx0cDJtX2lkeCA+PSBNQVhfQUxUUDJNIHx8DQotICAgICAgICAgICAgIGQtPmFy\nY2guYWx0cDJtX2VwdHBbYWx0cDJtX2lkeF0gPT0gbWZuX3goSU5WQUxJRF9NRk4pICkNCisgICAg\nICAgICAgICAgZC0+YXJjaC5hbHRwMm1fZXB0cFthcnJheV9pbmRleF9ub3NwZWMoYWx0cDJtX2lk\neCwgTUFYX0VQVFApXSA9PQ0KKyAgICAgICAgICAgICBtZm5feChJTlZBTElEX01GTikgKQ0KICAg\nICAgICAgICAgIHJldHVybiAtRUlOVkFMOw0KIA0KLSAgICAgICAgYXAybSA9IGQtPmFyY2guYWx0\ncDJtX3AybVthbHRwMm1faWR4XTsNCisgICAgICAgIGFwMm0gPSBkLT5hcmNoLmFsdHAybV9wMm1b\nYXJyYXlfaW5kZXhfbm9zcGVjKGFsdHAybV9pZHgsIE1BWF9BTFRQMk0pXTsNCiAgICAgfQ0KICNl\nbHNlDQogICAgIEFTU0VSVCghYWx0cDJtX2lkeCk7DQpAQCAtNDI2LDEwICs0MjcsMTEgQEAgbG9u\nZyBwMm1fc2V0X21lbV9hY2Nlc3NfbXVsdGkoc3RydWN0IGRvbWFpbiAqZCwNCiAgICAgaWYgKCBh\nbHRwMm1faWR4ICkNCiAgICAgew0KICAgICAgICAgaWYgKCBhbHRwMm1faWR4ID49IE1BWF9BTFRQ\nMk0gfHwNCi0gICAgICAgICAgICAgZC0+YXJjaC5hbHRwMm1fZXB0cFthbHRwMm1faWR4XSA9PSBt\nZm5feChJTlZBTElEX01GTikgKQ0KKyAgICAgICAgICAgICBkLT5hcmNoLmFsdHAybV9lcHRwW2Fy\ncmF5X2luZGV4X25vc3BlYyhhbHRwMm1faWR4LCBNQVhfRVBUUCldID09DQorICAgICAgICAgICAg\nIG1mbl94KElOVkFMSURfTUZOKSApDQogICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7DQogDQot\nICAgICAgICBhcDJtID0gZC0+YXJjaC5hbHRwMm1fcDJtW2FsdHAybV9pZHhdOw0KKyAgICAgICAg\nYXAybSA9IGQtPmFyY2guYWx0cDJtX3AybVthcnJheV9pbmRleF9ub3NwZWMoYWx0cDJtX2lkeCwg\nTUFYX0FMVFAyTSldOw0KICAgICB9DQogI2Vsc2UNCiAgICAgQVNTRVJUKCFhbHRwMm1faWR4KTsN\nCkBAIC00OTIsMTAgKzQ5NCwxMSBAQCBpbnQgcDJtX2dldF9tZW1fYWNjZXNzKHN0cnVjdCBkb21h\naW4gKmQsIGdmbl90IGdmbiwgeGVubWVtX2FjY2Vzc190ICphY2Nlc3MsDQogICAgIGVsc2UgaWYg\nKCBhbHRwMm1faWR4ICkgLyogYWx0cDJtIHZpZXcgMCBpcyB0cmVhdGVkIGFzIHRoZSBob3N0cDJt\nICovDQogICAgIHsNCiAgICAgICAgIGlmICggYWx0cDJtX2lkeCA+PSBNQVhfQUxUUDJNIHx8DQot\nICAgICAgICAgICAgIGQtPmFyY2guYWx0cDJtX2VwdHBbYWx0cDJtX2lkeF0gPT0gbWZuX3goSU5W\nQUxJRF9NRk4pICkNCisgICAgICAgICAgICAgZC0+YXJjaC5hbHRwMm1fZXB0cFthcnJheV9pbmRl\neF9ub3NwZWMoYWx0cDJtX2lkeCwgTUFYX0VQVFApXSA9PQ0KKyAgICAgICAgICAgICBtZm5feChJ\nTlZBTElEX01GTikgKQ0KICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOw0KIA0KLSAgICAgICAg\ncDJtID0gZC0+YXJjaC5hbHRwMm1fcDJtW2FsdHAybV9pZHhdOw0KKyAgICAgICAgcDJtID0gZC0+\nYXJjaC5hbHRwMm1fcDJtW2FycmF5X2luZGV4X25vc3BlYyhhbHRwMm1faWR4LCBNQVhfQUxUUDJN\nKV07DQogICAgIH0NCiAjZWxzZQ0KICAgICBBU1NFUlQoIWFsdHAybV9pZHgpOw0KZGlmZiAtLWdp\ndCBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0tZXB0LmMgYi94ZW4vYXJjaC94ODYvbW0vcDJtLWVwdC5j\nDQppbmRleCBiNTUxNzc2OWM5Li5lMDg4YTYzZjU2IDEwMDY0NA0KLS0tIGEveGVuL2FyY2gveDg2\nL21tL3AybS1lcHQuYw0KKysrIGIveGVuL2FyY2gveDg2L21tL3AybS1lcHQuYw0KQEAgLTEzNTMs\nNyArMTM1Myw4IEBAIHZvaWQgc2V0dXBfZXB0X2R1bXAodm9pZCkNCiANCiB2b2lkIHAybV9pbml0\nX2FsdHAybV9lcHQoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IGkpDQogew0KLSAgICBz\ndHJ1Y3QgcDJtX2RvbWFpbiAqcDJtID0gZC0+YXJjaC5hbHRwMm1fcDJtW2ldOw0KKyAgICBzdHJ1\nY3QgcDJtX2RvbWFpbiAqcDJtID0NCisgICAgICAgICAgIGQtPmFyY2guYWx0cDJtX3AybVthcnJh\neV9pbmRleF9ub3NwZWMoaSwgTUFYX0FMVFAyTSldOw0KICAgICBzdHJ1Y3QgcDJtX2RvbWFpbiAq\naG9zdHAybSA9IHAybV9nZXRfaG9zdHAybShkKTsNCiAgICAgc3RydWN0IGVwdF9kYXRhICplcHQ7\nDQogDQpAQCAtMTM2Niw3ICsxMzY3LDcgQEAgdm9pZCBwMm1faW5pdF9hbHRwMm1fZXB0KHN0cnVj\ndCBkb21haW4gKmQsIHVuc2lnbmVkIGludCBpKQ0KICAgICBwMm0tPm1heF9tYXBwZWRfcGZuID0g\ncDJtLT5tYXhfcmVtYXBwZWRfZ2ZuID0gMDsNCiAgICAgZXB0ID0gJnAybS0+ZXB0Ow0KICAgICBl\ncHQtPm1mbiA9IHBhZ2V0YWJsZV9nZXRfcGZuKHAybV9nZXRfcGFnZXRhYmxlKHAybSkpOw0KLSAg\nICBkLT5hcmNoLmFsdHAybV9lcHRwW2ldID0gZXB0LT5lcHRwOw0KKyAgICBkLT5hcmNoLmFsdHAy\nbV9lcHRwW2FycmF5X2luZGV4X25vc3BlYyhpLCBNQVhfRVBUUCldID0gZXB0LT5lcHRwOw0KIH0N\nCiANCiB1bnNpZ25lZCBpbnQgcDJtX2ZpbmRfYWx0cDJtX2J5X2VwdHAoc3RydWN0IGRvbWFpbiAq\nZCwgdWludDY0X3QgZXB0cCkNCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbW0vcDJtLmMgYi94\nZW4vYXJjaC94ODYvbW0vcDJtLmMNCmluZGV4IGJhMTI2Zjc5MGEuLjdlN2Y0ZjFhN2MgMTAwNjQ0\nDQotLS0gYS94ZW4vYXJjaC94ODYvbW0vcDJtLmMNCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS9wMm0u\nYw0KQEAgLTI0OTksNyArMjQ5OSw3IEBAIHN0YXRpYyB2b2lkIHAybV9yZXNldF9hbHRwMm0oc3Ry\ndWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IGlkeCwNCiAgICAgc3RydWN0IHAybV9kb21haW4g\nKnAybTsNCiANCiAgICAgQVNTRVJUKGlkeCA8IE1BWF9BTFRQMk0pOw0KLSAgICBwMm0gPSBkLT5h\ncmNoLmFsdHAybV9wMm1baWR4XTsNCisgICAgcDJtID0gZC0+YXJjaC5hbHRwMm1fcDJtW2FycmF5\nX2luZGV4X25vc3BlYyhpZHgsIE1BWF9BTFRQMk0pXTsNCiANCiAgICAgcDJtX2xvY2socDJtKTsN\nCiANCkBAIC0yNTQwLDcgKzI1NDAsNyBAQCBzdGF0aWMgaW50IHAybV9hY3RpdmF0ZV9hbHRwMm0o\nc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IGlkeCkNCiANCiAgICAgQVNTRVJUKGlkeCA8\nIE1BWF9BTFRQMk0pOw0KIA0KLSAgICBwMm0gPSBkLT5hcmNoLmFsdHAybV9wMm1baWR4XTsNCisg\nICAgcDJtID0gZC0+YXJjaC5hbHRwMm1fcDJtW2FycmF5X2luZGV4X25vc3BlYyhpZHgsIE1BWF9B\nTFRQMk0pXTsNCiAgICAgaG9zdHAybSA9IHAybV9nZXRfaG9zdHAybShkKTsNCiANCiAgICAgcDJt\nX2xvY2socDJtKTsNCkBAIC0yNjIyLDkgKzI2MjIsMTAgQEAgaW50IHAybV9kZXN0cm95X2FsdHAy\nbV9ieV9pZChzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgaWR4KQ0KICAgICByYyA9IC1F\nQlVTWTsNCiAgICAgYWx0cDJtX2xpc3RfbG9jayhkKTsNCiANCi0gICAgaWYgKCBkLT5hcmNoLmFs\ndHAybV9lcHRwW2lkeF0gIT0gbWZuX3goSU5WQUxJRF9NRk4pICkNCisgICAgaWYgKCBkLT5hcmNo\nLmFsdHAybV9lcHRwW2FycmF5X2luZGV4X25vc3BlYyhpZHgsIE1BWF9FUFRQKV0gIT0NCisgICAg\nICAgICBtZm5feChJTlZBTElEX01GTikgKQ0KICAgICB7DQotICAgICAgICBwMm0gPSBkLT5hcmNo\nLmFsdHAybV9wMm1baWR4XTsNCisgICAgICAgIHAybSA9IGQtPmFyY2guYWx0cDJtX3AybVthcnJh\neV9pbmRleF9ub3NwZWMoaWR4LCBNQVhfQUxUUDJNKV07DQogDQogICAgICAgICBpZiAoICFfYXRv\nbWljX3JlYWQocDJtLT5hY3RpdmVfdmNwdXMpICkNCiAgICAgICAgIHsNCkBAIC0yNjg2LDExICsy\nNjg3LDEzIEBAIGludCBwMm1fY2hhbmdlX2FsdHAybV9nZm4oc3RydWN0IGRvbWFpbiAqZCwgdW5z\naWduZWQgaW50IGlkeCwNCiAgICAgbWZuX3QgbWZuOw0KICAgICBpbnQgcmMgPSAtRUlOVkFMOw0K\nIA0KLSAgICBpZiAoIGlkeCA+PSBNQVhfQUxUUDJNIHx8IGQtPmFyY2guYWx0cDJtX2VwdHBbaWR4\nXSA9PSBtZm5feChJTlZBTElEX01GTikgKQ0KKyAgICBpZiAoIGlkeCA+PSBNQVhfQUxUUDJNIHx8\nDQorICAgICAgICAgZC0+YXJjaC5hbHRwMm1fZXB0cFthcnJheV9pbmRleF9ub3NwZWMoaWR4LCBN\nQVhfRVBUUCldID09DQorICAgICAgICAgbWZuX3goSU5WQUxJRF9NRk4pICkNCiAgICAgICAgIHJl\ndHVybiByYzsNCiANCiAgICAgaHAybSA9IHAybV9nZXRfaG9zdHAybShkKTsNCi0gICAgYXAybSA9\nIGQtPmFyY2guYWx0cDJtX3AybVtpZHhdOw0KKyAgICBhcDJtID0gZC0+YXJjaC5hbHRwMm1fcDJt\nW2FycmF5X2luZGV4X25vc3BlYyhpZHgsIE1BWF9BTFRQMk0pXTsNCiANCiAgICAgcDJtX2xvY2so\naHAybSk7DQogICAgIHAybV9sb2NrKGFwMm0pOw0KQEAgLTMwMzAsMTAgKzMwMzMsMTIgQEAgaW50\nIHAybV9zZXRfc3VwcHJlc3NfdmUoc3RydWN0IGRvbWFpbiAqZCwgZ2ZuX3QgZ2ZuLCBib29sIHN1\ncHByZXNzX3ZlLA0KICAgICBpZiAoIGFsdHAybV9pZHggPiAwICkNCiAgICAgew0KICAgICAgICAg\naWYgKCBhbHRwMm1faWR4ID49IE1BWF9BTFRQMk0gfHwNCi0gICAgICAgICAgICAgZC0+YXJjaC5h\nbHRwMm1fZXB0cFthbHRwMm1faWR4XSA9PSBtZm5feChJTlZBTElEX01GTikgKQ0KKyAgICAgICAg\nICAgICBkLT5hcmNoLmFsdHAybV9lcHRwW2FycmF5X2luZGV4X25vc3BlYyhhbHRwMm1faWR4LCBN\nQVhfRVBUUCldID09DQorICAgICAgICAgICAgIG1mbl94KElOVkFMSURfTUZOKSApDQogICAgICAg\nICAgICAgcmV0dXJuIC1FSU5WQUw7DQogDQotICAgICAgICBwMm0gPSBhcDJtID0gZC0+YXJjaC5h\nbHRwMm1fcDJtW2FsdHAybV9pZHhdOw0KKyAgICAgICAgcDJtID0gYXAybSA9IGQtPmFyY2guYWx0\ncDJtX3AybVthcnJheV9pbmRleF9ub3NwZWMoYWx0cDJtX2lkeCwNCisgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1BWF9BTFRQMk0pXTsN\nCiAgICAgfQ0KICAgICBlbHNlDQogICAgICAgICBwMm0gPSBob3N0X3AybTsNCkBAIC0zMDczLDEw\nICszMDc4LDEyIEBAIGludCBwMm1fZ2V0X3N1cHByZXNzX3ZlKHN0cnVjdCBkb21haW4gKmQsIGdm\nbl90IGdmbiwgYm9vbCAqc3VwcHJlc3NfdmUsDQogICAgIGlmICggYWx0cDJtX2lkeCA+IDAgKQ0K\nICAgICB7DQogICAgICAgICBpZiAoIGFsdHAybV9pZHggPj0gTUFYX0FMVFAyTSB8fA0KLSAgICAg\nICAgICAgICBkLT5hcmNoLmFsdHAybV9lcHRwW2FsdHAybV9pZHhdID09IG1mbl94KElOVkFMSURf\nTUZOKSApDQorICAgICAgICAgICAgIGQtPmFyY2guYWx0cDJtX2VwdHBbYXJyYXlfaW5kZXhfbm9z\ncGVjKGFsdHAybV9pZHgsIE1BWF9FUFRQKV0gPT0NCisgICAgICAgICAgICAgbWZuX3goSU5WQUxJ\nRF9NRk4pICkNCiAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsNCiANCi0gICAgICAgIHAybSA9\nIGFwMm0gPSBkLT5hcmNoLmFsdHAybV9wMm1bYWx0cDJtX2lkeF07DQorICAgICAgICBwMm0gPSBh\ncDJtID0gZC0+YXJjaC5hbHRwMm1fcDJtW2FycmF5X2luZGV4X25vc3BlYyhhbHRwMm1faWR4LA0K\nKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgTUFYX0FMVFAyTSldOw0KICAgICB9DQogICAgIGVsc2UNCiAgICAgICAgIHAybSA9IGhvc3Rf\ncDJtOw0KLS0gDQoyLjE3LjENCg0K\n\nFrom - Wed Dec 18 10:46:18 2019\nReceived: from FTLPEX02AMS01.citrite.net (10.13.108.166) by\n AMSPEX02CL01.citrite.net (10.69.22.125) with Microsoft SMTP Server (TLS) id\n 15.0.1473.3 via Mailbox Transport; Tue, 17 Dec 2019 16:12:39 +0100\nReceived: from LASPEX02MSOL01.citrite.net (10.160.21.45) by\n FTLPEX02AMS01.citrite.net (10.13.108.166) with Microsoft SMTP Server (TLS) id\n 15.0.1473.3; Tue, 17 Dec 2019 10:12:35 -0500\nReceived: from esa2.hc3370-68.iphmx.com (10.160.38.12) by\n LASPEX02MSOL01.citrite.net (10.160.21.45) with Microsoft SMTP Server (TLS) id\n 15.0.1473.3 via Frontend Transport; Tue, 17 Dec 2019 07:12:35 -0800\nReceived-SPF: None (esa2.hc3370-68.iphmx.com: no sender\n  authenticity information available from domain of\n  aisaila@bitdefender.com) identity=pra;\n  client-ip=40.107.5.101; receiver=esa2.hc3370-68.iphmx.com;\n  envelope-from=\"aisaila@bitdefender.com\";\n  x-sender=\"aisaila@bitdefender.com\";\n  x-conformance=sidf_compatible\nReceived-SPF: Pass (esa2.hc3370-68.iphmx.com: domain of\n  aisaila@bitdefender.com designates 40.107.5.101 as permitted\n  sender) identity=mailfrom; client-ip=40.107.5.101;\n  receiver=esa2.hc3370-68.iphmx.com;\n  envelope-from=\"aisaila@bitdefender.com\";\n  x-sender=\"aisaila@bitdefender.com\";\n  x-conformance=sidf_compatible; x-record-type=\"v=spf1\";\n  x-record-text=\"v=spf1 ip4:40.92.0.0/15 ip4:40.107.0.0/16\n  ip4:52.100.0.0/14 ip4:104.47.0.0/17 ip6:2a01:111:f400::/48\n  ip6:2a01:111:f403::/48 -all\"\nReceived-SPF: Pass (esa2.hc3370-68.iphmx.com: domain of\n  postmaster@EUR03-VE1-obe.outbound.protection.outlook.com\n  designates 40.107.5.101 as permitted sender) identity=helo;\n  client-ip=40.107.5.101; receiver=esa2.hc3370-68.iphmx.com;\n  envelope-from=\"aisaila@bitdefender.com\";\n  x-sender=\"postmaster@EUR03-VE1-obe.outbound.protection.outlook.com\";\n  x-conformance=sidf_compatible; x-record-type=\"v=spf1\";\n  x-record-text=\"v=spf1 ip4:40.92.0.0/15 ip4:40.107.0.0/16\n  ip4:52.100.0.0/14 ip4:104.47.0.0/17 ip6:2a01:111:f400::/48\n  ip6:2a01:111:f403::/48 -all\"\nAuthentication-Results: esa2.hc3370-68.iphmx.com; spf=None smtp.pra=aisaila@bitdefender.com; spf=Pass smtp.mailfrom=aisaila@bitdefender.com; spf=Pass smtp.helo=postmaster@EUR03-VE1-obe.outbound.protection.outlook.com; dkim=pass (signature verified) header.i=@bitdefender.onmicrosoft.com\nIronPort-SDR: GSSRfHFuftbjDZqjEGNGdGVpHvQ1LO0oONGULXCbprWGSf5zqtGpfGNh7gZy7I/ocm7KQtu568\n GktZuqO0lYsp0dsGfbNf684WENRVd0wAYKqN/YMYYP/uNRR1WZbugM7NcZnpedTqjYuegyOVim\n +t1mv3fkB31thRnzIGi/O/BSNKKMmuKnzDrY5a9pJoRWMNi9xI+76shRaROc3qlix2+/bWiR/r\n qMLJKQiChWR/KqIKqfysQNmS+hFoTzK8jBE2K9aCAvLXoE11mBv6sHUQfnbHMg9nRIWhFXE2Nd\n CyhRSiM0IiDhIWJt5ImuVUdq\nX-IronPort-RemoteIP: 40.107.5.101\nX-IronPort-MID: 9822597\nX-IronPort-Reputation: 3.5\nX-IronPort-Listener: InboundMail\nX-IronPort-SenderGroup: SBRS_Whitelist\nX-IronPort-MailFlowPolicy: $ACCEPTED\nX-SBRS: 3.5\nX-MesageID: 9822597\nX-Ironport-Server: esa2.hc3370-68.iphmx.com\nX-Remote-IP: 40.107.5.101\nX-Policy: $ACCEPTED\nIronPort-PHdr: =?us-ascii?q?9a23=3A/ERh7RCbzdeTkaV11LYgUyQJP3N1i/DPJgcQr6?=\n =?us-ascii?q?AfoPdwSP37rsSwAkXT6L1XgUPTWs2DsrQY0rGQ6fi/EjNZqb+681k6OKRWUB?=\n =?us-ascii?q?EEjchE1ycBO+WiTXPBEfjxciYhF95DXlI2t1uyMExSBdqsLwaK+i764jEdAA?=\n =?us-ascii?q?jwOhRoLerpBIHSk9631+ev8JHPfglEnjWwba58IRmsswndqssbjYRgJ6os1x?=\n =?us-ascii?q?DEvmZGd+NKyG1yOFmdhQz85sC+/J5i9yRfpfcs/NNeXKv5Yqo1U6VWACwpPG?=\n =?us-ascii?q?4p6sLrswLDTRaU6XsHTmoWiBtIDBPb4xz8Q5z8rzH1tut52CmdIM32UbU5Ui?=\n =?us-ascii?q?ms4qt3VBPljjoMOiUn+2/LlMN/kKNboAqgpxNhxY7UfJqVP+d6cq/EYN8WWX?=\n =?us-ascii?q?ZNUsNXWidcAI2zcpEPAvIBM+hGsof9u1UAoxiwBQauA+3vyyNHiHD50qAhz+?=\n =?us-ascii?q?QuChvL0BA6Et4SsnnZqsj+OqcIUeCyyanF1SnOb/dI1jby8ofIdA0uoeuRXb?=\n =?us-ascii?q?ltbMTR1VcgFw3fgVWWtIfrPC6b2/gOvWad8+drSOWihHQmqwFquDevx8MshZ?=\n =?us-ascii?q?PSi40Oy1DE6Th2z5g7JdKmTk50fMCrEIFKuy6GMIt2R9ovTmd1syg0zb0GvI?=\n =?us-ascii?q?S0fCkMyJk/wh7QcfOGc5CI4hPjT+aeOyp3i29/eL6lnhq+6FGsyvH7Vsmz1F?=\n =?us-ascii?q?ZKtSxImcTPuHAVzxHe5dSLRuFg8ku92zuDzQDe5vtZLUwoiKbXM5oszqMqmp?=\n =?us-ascii?q?YOtUnOGjX6lFjqgKKZbEkp+/Ck6+r5bbjlupORMop5hwLiPaswhsOyBOY1Pw?=\n =?us-ascii?q?kAUmWY/Omx1rPu8ELlT7hPjfA7lrTWvZbHLsoBvKG5GRVa0oM75ha/ETim1N?=\n =?us-ascii?q?MYkGEIIl1LZByLk4bkN0jBL/73EPuzmlOsnyx1yPzcOb3hH4nNIWPEkLf8e7?=\n =?us-ascii?q?Zy9lRQyBIpzdBY+5JbFK0OIO7yWk/2stzUFBg5MxGow+bjD9V90YAeVXiTDa?=\n =?us-ascii?q?+eNaPeqV6I5uQxLOmQfIIYtyrxJ+I46/Lyj3I1g18QcbO00ZcLdXy0BvFmLF?=\n =?us-ascii?q?+YYXrojNcBC2AKvg8mQePwiV2CSiRcZ3e2X60m/Tw0E4OmDZveSY+zjryOwi?=\n =?us-ascii?q?G7EYBIaWBcEFyDDXDod4CcV/cWdC2SOtNhkiADVbW5So8uzxeuuBX4y7V9Mu?=\n =?us-ascii?q?XU+TYYtZXl1NVu+eLTiAs++iB1D8SByWGNTm51knkUSD8x2aB1uVZ9xUub0a?=\n =?us-ascii?q?hkn/xYEsRe6fJXXQc9L57cwPJ1B8r8VALceNeJTEypQs29DD4vU9I92cMBY0?=\n =?us-ascii?q?dhG9W4jxDC0DCmDKMSl7yOV9QI9feWz3X3Yspw1XvC/K0glEU9BNtCM3W8ga?=\n =?us-ascii?q?xy/BSVAJTG2Q3Nh6usMKgRwiPJ3GOC1naV+lFVVhZqVqfIVmxZYVHZ+4fX/E?=\n =?us-ascii?q?THGpaqBKQuNAdb1Ia5NqZEY9uhrG5vZdPKcIDXYnm4mmO5LRyJ2r+BYofsd2?=\n =?us-ascii?q?gHmi7aDR5XwEgo4X+aOF1mVW+aqGXEAWkrTAq3Oh6+3cpfjTaWUEYw0giWbk?=\n =?us-ascii?q?pni+fvqABA3K/UQqYJxbtBoyco8WgqTx62isjbD9OQqgYmZqhYaMMw7AQity?=\n =?us-ascii?q?rV4gZ8IpCtIa1kilMENQNxukLlzRJsDYtc18MtqSBi119pJKaV209GbWnd15?=\n =?us-ascii?q?HsNrDZJ2/+8QrqbKjT21rE182R9LtK4/M9+DCB9AH8OFAl9idL2sVYgUCB7J?=\n =?us-ascii?q?fHBxZAdJ/qSU84+l1bi+PxZS8h6oXIkEF9KaTmlx7n9pcXCfE+yxGmLecaFZ?=\n =?us-ascii?q?jBOR/5E8QcCMXrE+Esl1WzRz4vPO1Z9/1RXYusd67b6aPwPvxcn2KIn3xAvZ?=\n =?us-ascii?q?tyiEWMrSdnG63mxr0f4NKT3BKBXCbCj3y7vPHazNMhB3kYS1ex03H+DrASY6?=\n =?us-ascii?q?diXZ82WT/2HsOFwPtH3tnUfFJe+XLgLU0N+NGsYgaeSXHBhzRS0nozmlLkuy?=\n =?us-ascii?q?u/ySNLjiwqhLvBgTTk2Pb/LEsaKEBgdThGt3r9PraegIsbWhW3XlEtnSX0/W?=\n =?us-ascii?q?+l3PR7vIc4bGvLanlRfBP6NTpNdY/3hJyLZfYQ17MHknhYaeq8MWC1Eaz++S?=\n =?us-ascii?q?sk3Q+yBU9+5TU1ZSirpoyggT9DmkWzDmYv9C+KMdE1xA3Y4sTbX+IUxDcdWS?=\n =?us-ascii?q?1k3CHeHUPvZYP71MiIl5rFruG1Xn6gUZsWSyTw0Iecr3Hlvz9nGhTl2fC4wY?=\n =?us-ascii?q?a4SU1kgWn6z9lvRWPDqxOvKpLz2fGcNuRqNlJtGEe689BzT4h/iYIxgJg403?=\n =?us-ascii?q?kGipib8HwLnH21OtJeiurldHRYfTcQ2JbO5RT9nkhqL3aH3YX8A3yc2cJgY9?=\n =?us-ascii?q?CSaGIK1i8z4sZGBb3S57tBzmNuulTtlQvKerBmmysFj/sj7HlPm+YSpA8k1T?=\n =?us-ascii?q?mQGJg/IHMAZmnSuk3N6Nqz6qJKeGyobL68klJkmsysB62DpQcaX2vlfpAlHm?=\n =?us-ascii?q?l76cAseF7P0Xim8oj/Y5GQdtMcsBSIjg3Nx/ZYMpM/l/cGxGJnNGvxsGdjyr?=\n =?us-ascii?q?sThx1y0Zy0sY6LJn8r+6S8AxVCMSbyad9V8Tbo1PwMpMud0oGxE5kkIQ0lB8?=\n =?us-ascii?q?K0H9SvFj9a9fn8PlzIEDZn8SjDXOSPWw6H6EJ26XnIFsLjMXbfP3Qfwdh4IX?=\n =?us-ascii?q?vVbEVCnAAZWik7lZ8lB0irwsLmakJw+jEW4BbxtBJNzutiMxS3XH3YoU+kbT?=\n =?us-ascii?q?I9SZ7XKxQzjEkK7kbOOM2a58p5Hj1U85OsqgCAMCqQYAEJRWAFV0qYBkzya6?=\n =?us-ascii?q?G07IqlkaDQDe6/Iv3SJLSW/LAGEa7QmtTylNI+pmXELMiEM3h8Audu11FKBz?=\n =?us-ascii?q?Z5EJ+CxG1KFXxRljrNat7drxC5qUgV5oiy9urmXAX36M6BEbxXZJ9m+gu/gK?=\n =?us-ascii?q?OKH+SRmCp0Jzte2p4Wg3TPzfJMuTxawzErbDSrHbka4GTETbnZm6teJxQady?=\n =?us-ascii?q?9+OsZO468mmAJKPISI77G9nq49hfkzBVBfUFXnkcz8fs0GLVa2M1bfDVqKPr?=\n =?us-ascii?q?CLfGeZ+cz8bKKiRLEVt91660zq6w6SCFSrfjmYnmOvVxv0ar4UyX/Leh1GuI?=\n =?us-ascii?q?StNB1qDDqrQNXjYxy9eNh56F9+ibQ1nXrLMWc0Ozlgf05Do7uc4DkeifJ6U2?=\n =?us-ascii?q?BM9XtqK+CYlj3Rs7Gec85J96YtW3wt3+tBqGw30b5U8D1JSJkX0GPJo9hirk?=\n =?us-ascii?q?vn2uiDxzx7UQZf/zNChYaFp0Jnau3S8phNX2qB/QpYsT3WUkxV4YYjU4W26M?=\n =?us-ascii?q?UygpDVman+KSlP6YfZ5sJGQcjfc5nYaD9/YVzoAD7RHE0OSjv4UAOXz0Fbjv?=\n =?us-ascii?q?yW8WWY65YgrZ250pMPUbZaUFUdHPIGBklrEdoOLY0xVTQh2+3+7oZA9T+loR?=\n =?us-ascii?q?/dSd8P9JnGTfuTBfzHIjeFgbRKah0EzKm+JoMWfN6euQQqehxxm4LEHFDVVN?=\n =?us-ascii?q?ZGr3h6bwM6l05K9WB3Umw530+2IhPo+nIYEuS42wInkgYrK/p47y/iuh1kQz?=\n =?us-ascii?q?iC7Dt1ikQ6ns/pxCycYCKkZrnlRplYUmL1rxRjbsu9ElwzNUvq2hU5fDbcG+?=\n =?us-ascii?q?AN1/05LT8t0EmE/sIRfJwUBaxcPE1Nn7fOP61uiRIE7Xz7jU5fubmcUcckyF?=\n =?us-ascii?q?RsKdj06CsfkwN7MoxvLPSJdvMQlwpe2vrW7H3virBUokdWJl5TojmbIHda4R?=\n =?us-ascii?q?VRZLd6f3H6rKswuUTHkj9HMjFWBcAnqf9r6E4xft+44X+9j+x7I1uqf6ySNK?=\n =?us-ascii?q?rD/WjLzpXXGhZuhgUJj0lA7f591sJxO0aTUkkuyvOWGXFrfYLaLhpJasNJ6H?=\n =?us-ascii?q?XJVQuzi72WhKxYZsC6HO2uSvKSvqEJhE7iBBwuA4kH8sUGGN+rzV3cKsDkar?=\n =?us-ascii?q?UCzHBPrEznKU6EA/JAZB+Q2Gtf5Zjnk9kqm9AFf3kUGi1lPD+y56rLqwNim/?=\n =?us-ascii?q?eFUNosIz8bUoYCKnMqSZi6lipe7BEiRHG81uMUzhTH7iep+nyWVWGjKYclPa?=\n =?us-ascii?q?/NNlt2Bdq7+Csy6f27kleNtJXVfDqlbZE86pnO8eMft9CMDPYHKNs1+0rahY?=\n =?us-ascii?q?RcQGSnFmDVFtvgbZHxcIAtadXcAHemXlGxhjQ5Qt23N9GoZPvt40mgVcNPvY?=\n =?us-ascii?q?+X0Sp2f9e6DS0bEgxsqvsryZ9GPVZGXbdiJBniukI5KrC1Jxqe3pO2WWGxJD?=\n =?us-ascii?q?BKTv5Zi+Kne7hQyClqZei/gihFLNly36y89kgDQ4sPhxfVyKO4ZoVQZiP0H2?=\n =?us-ascii?q?RUZwTFoSdq33gkLOs5xf0zhQ/ZqVRJeS7eb/RnMSYX2rN0TUPXO3h9DXA0Ak?=\n =?us-ascii?q?ORnZaWqBD5xKgcpmNch4oGjbUD4SK45tmHJ2vxEK2z9ceJ62x5NYdg++spdt?=\n =?us-ascii?q?W9R6nO/JLGwm6CFt+J6lXDCGjiUKMG0tlIfHABGKUOxT5jYYpe/tMeoUspCJ?=\n =?us-ascii?q?VkLuQWWvB1/+KkNWI8X3xVkX98NcvI3SRc0L21g+KIz07JIpp+aEdW4tIe0p?=\n =?us-ascii?q?NYWipyKHpC9p/mbJ3fkiq/ckZOOB0atFse7gMcmoJ+c+bp7ZCOR5hJmWYP/q?=\n =?us-ascii?q?BEFxDTH5wtzGPVD2GbhV+kF6eMrtbxhkds4aup1dMWHhliFUJa2uBa0FMyL6?=\n =?us-ascii?q?16ILURuYiMtSKUcUT9vyTmz+70fQAAm/2RTEXxCc/+jUS5VyQd/XMOQooWly?=\n =?us-ascii?q?PVFIgengR0bqomvhNHJ4X0I0s=3D?=\nX-IronPort-Anti-Spam-Filtered: true\nX-IronPort-Anti-Spam-Result: =?us-ascii?q?A0GvAQCb7/hdh2UFayhlHgELHINJUIF?=\n =?us-ascii?q?mAwQLKgqDeoNGA4U6hVSdNwMYPAkEAQEKAS0CAQEBAYQ+AheCHwYBBDQTAgE?=\n =?us-ascii?q?CAQwBAQEDAQEBAgECAwICAQECEAEBAQgNCQgphT4BC4I7KQFpOTgBAQEBAQE?=\n =?us-ascii?q?BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEFAoEMPgIBAxIRBA0MAQE?=\n =?us-ascii?q?3AQ8CASICJgICAjAVEAIEDgUigwCCRwMvAgGiAz0CIwE/AguBBCmIYAEBdH8?=\n =?us-ascii?q?zgn4BAQWFGRhYgT8JgQ4ohz+CU4IaBoFBP4ERgmVshEgIECOCVoJejUGCOzm?=\n =?us-ascii?q?eVCiCFoxmiR4ngkOYBo5NgUaZBwIEAgQFAg4BAQWBaYF7MyIbFYMnUBEUjRI?=\n =?us-ascii?q?ag1mKU0IBMQGBJ49IAYEPAQE?=\nX-IPAS-Result: =?us-ascii?q?A0GvAQCb7/hdh2UFayhlHgELHINJUIFmAwQLKgqDeoNGA?=\n =?us-ascii?q?4U6hVSdNwMYPAkEAQEKAS0CAQEBAYQ+AheCHwYBBDQTAgECAQwBAQEDAQEBA?=\n =?us-ascii?q?gECAwICAQECEAEBAQgNCQgphT4BC4I7KQFpOTgBAQEBAQEBAQEBAQEBAQEBA?=\n =?us-ascii?q?QEBAQEBAQEBAQEBAQEBAQEBAQEFAoEMPgIBAxIRBA0MAQE3AQ8CASICJgICA?=\n =?us-ascii?q?jAVEAIEDgUigwCCRwMvAgGiAz0CIwE/AguBBCmIYAEBdH8zgn4BAQWFGRhYg?=\n =?us-ascii?q?T8JgQ4ohz+CU4IaBoFBP4ERgmVshEgIECOCVoJejUGCOzmeVCiCFoxmiR4ng?=\n =?us-ascii?q?kOYBo5NgUaZBwIEAgQFAg4BAQWBaYF7MyIbFYMnUBEUjRIag1mKU0IBMQGBJ?=\n =?us-ascii?q?49IAYEPAQE?=\nX-IronPort-AV: E=Sophos;i=\"5.69,325,1571716800\"; \n   d=\"scan'208\";a=\"9822597\"\nX-Amp-Result: SKIPPED(no attachment in message)\nX-Amp-File-Uploaded: False\nX-IronPort-Outbreak-Status: No, level 0, Unknown - Unknown\nX-MGA-submission: =?us-ascii?q?MDEZotQ1MnFS2trojv24rD6d9bmMLY42s+40Cr?=\n =?us-ascii?q?nkmV90iWzkajj9ugbvzp5mecw7HoelgaVAvHT0BJzZInrtbyMTc4jU/b?=\n =?us-ascii?q?I6I+KGBjid3Mp+JKuFNzFJF0X2BDw8711O3ceMvoNzQT5qcetuQOuO31?=\n =?us-ascii?q?gp+8mQkkXQ0yi0Reuu5crdzw=3D=3D?=\nReceived: from mail-eopbgr50101.outbound.protection.outlook.com (HELO EUR03-VE1-obe.outbound.protection.outlook.com) ([40.107.5.101])\n  by esa2.hc3370-68.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Dec 2019 10:12:34 -0500\nARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=npc6E7hfAb/6d4ckjxiKauCZtCyMWNNv+ADaAvs4bOyN5OSSA9JGcPZLc6pwb4tFRNiX9sYLnPK/6GoU+mokU8EF6sIQbd3tZNmaY7WSYlXO+Oh/Y+YHq2x1NutsE6oxturlVsxUMKZImTEmJdgrT86flhMkmDc84WPNfnX4ZcWxgfzI0fBlr5N1FxmgAe3u26XUlw4LcrHAZHmJkAo2Jlj5i47HlDgRUGEvHXDJhKLzzWOqzEr4i56cCbNl6c74PivWvouXlfEsdk3QGlpvILkLOUEQi4FA8pZximYFVPdHhs5Yo5Hr+mumZSuAM1ugmcgALcYyz4Uw/bEIhkCDPQ==\nARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector9901;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=5Ye3jrTk8Fzpo5sg2oh2es9+FqCrKKcjqncyVkCrfYE=;\n b=oPGnIe72ay85MMjdsb35kk5kkfLxYd7/n8JfZsJ1vkIOwUFJSQD2YTa0f85+ALzB5e7i9C2S4MszoJ5FiYYoR0ZwVGJ8MicSCrUV7NYJENeaCxO8NdaTgCZ1Q9O8Ige6osZGaPcqPxnMRDB9c22JgOPA9haMuNbSllbHPYHYYOUIYMkhySX8AlP87uhI1NeBWk05BfOs7ZB6B4ME43cI4yKk1RxKug0/AcUMBAqI+Xe2gacOzRC/2FgihT7633t9rpkei1M4uBDHrDzEegM/mjJ/rucSxWAVniruVfnFOhdJbqUVAWaJzWX88i9/Sto8jwD3ci4erU0NGS8zx2efeQ==\nARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=bitdefender.com; dmarc=pass action=none\n header.from=bitdefender.com; dkim=pass header.d=bitdefender.com; arc=none\nDKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=bitdefender.onmicrosoft.com; s=selector2-bitdefender-onmicrosoft-com;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=5Ye3jrTk8Fzpo5sg2oh2es9+FqCrKKcjqncyVkCrfYE=;\n b=Ufr1rbV+mbxHqU800UfZnFQ1/QODneD+BvcHvmstdNET2QjoVLSF+JhonwWuukBy65pBszu09uzFCY9LREywVBg3in5wY1laV9pA7s4HpK/+jpCVqkSdr3GOL/ZNanP7WHGK5gQfh8XG3zk2XVfD9rLHImfzqitq1vKQzOFJx40=\nReceived: from AM0PR02MB5553.eurprd02.prod.outlook.com (10.255.30.78) by\n AM0PR02MB4386.eurprd02.prod.outlook.com (20.178.17.212) with Microsoft SMTP\n Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n 15.20.2538.20; Tue, 17 Dec 2019 15:12:31 +0000\nReceived: from AM0PR02MB5553.eurprd02.prod.outlook.com\n ([fe80::8cec:7638:734c:89d]) by AM0PR02MB5553.eurprd02.prod.outlook.com\n ([fe80::8cec:7638:734c:89d%4]) with mapi id 15.20.2538.019; Tue, 17 Dec 2019\n 15:12:31 +0000\nFrom: Alexandru Stefan ISAILA <aisaila@bitdefender.com>\nTo: \"xen-devel@lists.xenproject.org\" <xen-devel@lists.xenproject.org>\nCC: Alexandru Stefan ISAILA <aisaila@bitdefender.com>, Ian Jackson\n\t<ian.jackson@eu.citrix.com>, Wei Liu <wl@xen.org>, Andrew Cooper\n\t<andrew.cooper3@citrix.com>, George Dunlap <George.Dunlap@eu.citrix.com>,\n\t\"Jan Beulich\" <jbeulich@suse.com>, Julien Grall <julien@xen.org>, \"Konrad\n Rzeszutek Wilk\" <konrad.wilk@oracle.com>, Stefano Stabellini\n\t<sstabellini@kernel.org>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=\n\t<roger.pau@citrix.com>, George Dunlap <george.dunlap@eu.citrix.com>, Razvan\n COJOCARU <rcojocaru@bitdefender.com>, Tamas K Lengyel <tamas@tklengyel.com>,\n\tPetre Ovidiu PIRCALABU <ppircalabu@bitdefender.com>\nSubject: [PATCH V4 2/4] x86/altp2m: Add hypercall to set a range of sve bits\nThread-Topic: [PATCH V4 2/4] x86/altp2m: Add hypercall to set a range of sve\n bits\nThread-Index: AQHVtOxnMZNvtoiQIE62yqEH5VgLvA==\nDate: Tue, 17 Dec 2019 15:12:31 +0000\nMessage-ID: <20191217151144.9781-2-aisaila@bitdefender.com>\nReferences: <20191217151144.9781-1-aisaila@bitdefender.com>\nIn-Reply-To: <20191217151144.9781-1-aisaila@bitdefender.com>\nAccept-Language: en-US\nContent-Language: en-US\nX-MS-Has-Attach:\nX-MS-TNEF-Correlator:\nx-clientproxiedby: AM0PR01CA0067.eurprd01.prod.exchangelabs.com\n (2603:10a6:208:e6::44) To AM0PR02MB5553.eurprd02.prod.outlook.com\n (2603:10a6:208:160::14)\nx-ms-exchange-messagesentrepresentingtype: 1\nx-mailer: git-send-email 2.17.1\nx-originating-ip: [91.199.104.6]\nx-ms-publictraffictype: Email\nx-ms-office365-filtering-correlation-id: e424ed4a-de6c-4ee7-485b-08d7830389b2\nx-ms-traffictypediagnostic: AM0PR02MB4386:|AM0PR02MB4386:|AM0PR02MB4386:\nx-ms-exchange-transport-forked: True\nx-microsoft-antispam-prvs: <AM0PR02MB4386F75A2AB30B7A146F1250AB500@AM0PR02MB4386.eurprd02.prod.outlook.com>\nx-ms-oob-tlc-oobclassifiers: OLM:83;\nx-forefront-prvs: 02543CD7CD\nx-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(366004)(136003)(396003)(39860400002)(346002)(376002)(189003)(199004)(7416002)(6512007)(52116002)(64756008)(86362001)(186003)(8936002)(6486002)(4326008)(2906002)(54906003)(107886003)(66476007)(71200400001)(66556008)(66946007)(36756003)(26005)(81156014)(81166006)(5660300002)(8676002)(6506007)(478600001)(66446008)(1076003)(2616005)(316002)(6916009);DIR:OUT;SFP:1102;SCL:1;SRVR:AM0PR02MB4386;H:AM0PR02MB5553.eurprd02.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1;\nx-ms-exchange-senderadcheck: 1\nx-microsoft-antispam: BCL:0;\nx-microsoft-antispam-message-info: EnEhYEFyc8I/6RKCBwYxsBw+g/HO2QKmmNcAj2HBYDK3qI3kvTQ90Tv82bM0wZmMGRfQIZLmu/9j5EyfSX6d3Z899Un1OvT9+oRfT54HXFdKGIJMTr1vVQDTfymOFkE9iYCKJeEyzeGwISLx1HYcT5fJ4aUEF1fPR2JxowwGMA7ldfxZuSvaig5OrNT1mX/9VH3a6EY2vtzmACqIWWM1/xLOUrnkxR5QrTwR6CI3RdQ6SYLayVxzEn03Wx33lK7dL5YHoJn1RlSwiCaGdMvu0F90PB3hFznXA0N+IYTR14/UixelN8h670dwHrC6lRy/8fCfjveAYPyH0Xay1KOcsFdywUlAb1PrN8eJ6RIFCxX81wg33z28xcL49R6iS/gtricRC3ia0ByyugqxeWoyMVFA++XyGPSST7S8RYnJIL4+Jo1f8gCz6KGfiU3gMAvY\nContent-Type: text/plain; charset=\"utf-8\"\nContent-ID: <F8C450FB4DD57740BD59FDA42D132892@eurprd02.prod.outlook.com>\nContent-Transfer-Encoding: base64\nX-MS-Exchange-CrossTenant-Network-Message-Id: e424ed4a-de6c-4ee7-485b-08d7830389b2\nX-MS-Exchange-CrossTenant-originalarrivaltime: 17 Dec 2019 15:12:31.6266\n (UTC)\nX-MS-Exchange-CrossTenant-fromentityheader: Hosted\nX-MS-Exchange-CrossTenant-id: 487baf29-f1da-469a-9221-243f830c36f3\nX-MS-Exchange-CrossTenant-mailboxtype: HOSTED\nX-MS-Exchange-CrossTenant-userprincipalname: WVqs/bu4Sceq/q/29XVEceoO1vbqpcJVfvXroP9HqNFNSqabScfs201Q3vJbdafY7pnE/eUMRZsiwoUpiCmwpmknkEH4+AgfExhYhCvmkXw=\nX-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR02MB4386\nReturn-Path: aisaila@bitdefender.com\nX-MS-Exchange-Organization-Network-Message-Id: 470dcf58-1cea-476c-b98f-08d783038c3d\nX-MS-Exchange-Organization-AVStamp-Enterprise: 1.0\nX-MS-Exchange-Organization-AuthSource: LASPEX02MSOL01.citrite.net\nX-MS-Exchange-Organization-AuthAs: Anonymous\nMIME-Version: 1.0\n\nQnkgZGVmYXVsdCB0aGUgc3ZlIGJpdHMgYXJlIG5vdCBzZXQuDQpUaGlzIHBhdGNoIGFkZHMgYSBu\nZXcgaHlwZXJjYWxsLCB4Y19hbHRwMm1fc2V0X3N1cHJlc3NfdmVfbXVsdGkoKSwNCnRvIHNldCBh\nIHJhbmdlIG9mIHN2ZSBiaXRzLg0KVGhlIGNvcmUgZnVuY3Rpb24sIHAybV9zZXRfc3VwcHJlc3Nf\ndmVfbXVsdGkoKSwgZG9lcyBub3QgYnJha2UgaW4gY2FzZQ0Kb2YgYSBlcnJvciBhbmQgaXQgaXMg\nZG9pbmcgYSBiZXN0IGVmZm9ydCBmb3Igc2V0dGluZyB0aGUgYml0cyBpbiB0aGUNCmdpdmVuIHJh\nbmdlLiBBIGNoZWNrIGZvciBjb250aW51YXRpb24gaXMgbWFkZSBpbiBvcmRlciB0byBoYXZlDQpw\ncmVlbXB0aW9uIG9uIGJpZyByYW5nZXMuDQpUaGUgZ2ZuIG9mIHRoZSBmaXJzdCBlcnJvciBpcyBz\ndG9yZWQgaW4NCnhlbl9odm1fYWx0cDJtX3N1cHByZXNzX3ZlX211bHRpLmZpcnN0X2Vycm9yIGFu\nZCB0aGUgZXJyb3IgY29kZSBpcw0Kc3RvcmVkIGluIHhlbl9odm1fYWx0cDJtX3N1cHByZXNzX3Zl\nX211bHRpLmZpcnN0X2Vycm9yX2NvZGUuDQpJZiBubyBlcnJvciBvY2N1cnJlZCB0aGUgdmFsdWVz\nIHdpbGwgYmUgMC4NCg0KU2lnbmVkLW9mZi1ieTogQWxleGFuZHJ1IElzYWlsYSA8YWlzYWlsYUBi\naXRkZWZlbmRlci5jb20+DQotLS0NCkNDOiBJYW4gSmFja3NvbiA8aWFuLmphY2tzb25AZXUuY2l0\ncml4LmNvbT4NCkNDOiBXZWkgTGl1IDx3bEB4ZW4ub3JnPg0KQ0M6IEFuZHJldyBDb29wZXIgPGFu\nZHJldy5jb29wZXIzQGNpdHJpeC5jb20+DQpDQzogR2VvcmdlIER1bmxhcCA8R2VvcmdlLkR1bmxh\ncEBldS5jaXRyaXguY29tPg0KQ0M6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4NCkND\nOiBKdWxpZW4gR3JhbGwgPGp1bGllbkB4ZW4ub3JnPg0KQ0M6IEtvbnJhZCBSemVzenV0ZWsgV2ls\nayA8a29ucmFkLndpbGtAb3JhY2xlLmNvbT4NCkNDOiBTdGVmYW5vIFN0YWJlbGxpbmkgPHNzdGFi\nZWxsaW5pQGtlcm5lbC5vcmc+DQpDQzogIlJvZ2VyIFBhdSBNb25uw6kiIDxyb2dlci5wYXVAY2l0\ncml4LmNvbT4NCkNDOiBHZW9yZ2UgRHVubGFwIDxnZW9yZ2UuZHVubGFwQGV1LmNpdHJpeC5jb20+\nDQpDQzogUmF6dmFuIENvam9jYXJ1IDxyY29qb2NhcnVAYml0ZGVmZW5kZXIuY29tPg0KQ0M6IFRh\nbWFzIEsgTGVuZ3llbCA8dGFtYXNAdGtsZW5neWVsLmNvbT4NCkNDOiBQZXRyZSBQaXJjYWxhYnUg\nPHBwaXJjYWxhYnVAYml0ZGVmZW5kZXIuY29tPg0KLS0tDQpDaGFuZ2VzIHNpbmNlIFYzOg0KCS0g\nVXBkYXRlIGNvbW1pdCBtZXNzYWdlDQoJLSBDaGVjayByYyBhbmQgX19jb3B5X3RvX2d1ZXN0KCkg\naW4gdGhlIHNhbWUgaWYNCgktIEZpeCBzdHlsZSBpc3N1ZQ0KCS0gRml4IGNvbW1lbnQgdHlwbw0K\nCS0gSW5pdCBwMm0gd2l0aCBob3N0X3AybQ0KCS0gVXNlIGFycmF5X2luZGV4X25vc3BlYygpIGlu\nIGFsdHAybV9wMm1bXSBhbmQgYWx0cDJtX2VwdHBbXQ0KCS0gRHJvcCBvcGFxdWUNCgktIFVzZSBw\nYWQyIHRvIHJldHVybiBmaXJzdCBlcnJvciBjb2RlDQoJLSBVcGRhdGUgZmlyc3RfZ2ZuDQoJLSBT\ndG9wIHRoZSByYW5nZSBsb29wIGF0IGNwdWlkLT5leHRkLm1heHBoeXNhZGRyLg0KLS0tDQogdG9v\nbHMvbGlieGMvaW5jbHVkZS94ZW5jdHJsLmggICB8ICA0ICsrKw0KIHRvb2xzL2xpYnhjL3hjX2Fs\ndHAybS5jICAgICAgICAgfCAzMyArKysrKysrKysrKysrKysrKw0KIHhlbi9hcmNoL3g4Ni9odm0v\naHZtLmMgICAgICAgICAgfCAxNSArKysrKysrKw0KIHhlbi9hcmNoL3g4Ni9tbS9wMm0uYyAgICAg\nICAgICAgfCA2NCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCiB4ZW4vaW5jbHVk\nZS9wdWJsaWMvaHZtL2h2bV9vcC5oIHwgMTMgKysrKysrKw0KIHhlbi9pbmNsdWRlL3hlbi9tZW1f\nYWNjZXNzLmggICAgfCAgMyArKw0KIDYgZmlsZXMgY2hhbmdlZCwgMTMyIGluc2VydGlvbnMoKykN\nCg0KZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhjL2luY2x1ZGUveGVuY3RybC5oIGIvdG9vbHMvbGli\neGMvaW5jbHVkZS94ZW5jdHJsLmgNCmluZGV4IGY0NDMxNjg3YjMuLjJhY2U4ZWE4MGUgMTAwNjQ0\nDQotLS0gYS90b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaA0KKysrIGIvdG9vbHMvbGlieGMv\naW5jbHVkZS94ZW5jdHJsLmgNCkBAIC0xOTIzLDYgKzE5MjMsMTAgQEAgaW50IHhjX2FsdHAybV9z\nd2l0Y2hfdG9fdmlldyh4Y19pbnRlcmZhY2UgKmhhbmRsZSwgdWludDMyX3QgZG9taWQsDQogICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MTZfdCB2aWV3X2lkKTsNCiBpbnQgeGNfYWx0\ncDJtX3NldF9zdXBwcmVzc192ZSh4Y19pbnRlcmZhY2UgKmhhbmRsZSwgdWludDMyX3QgZG9taWQs\nDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDE2X3Qgdmlld19pZCwgeGVuX3Bm\nbl90IGdmbiwgYm9vbCBzdmUpOw0KK2ludCB4Y19hbHRwMm1fc2V0X3N1cHJlc3NfdmVfbXVsdGko\neGNfaW50ZXJmYWNlICpoYW5kbGUsIHVpbnQzMl90IGRvbWlkLA0KKyAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgdWludDE2X3Qgdmlld19pZCwgeGVuX3Bmbl90IGZpcnN0X2dmbiwN\nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhlbl9wZm5fdCBsYXN0X2dmbiwg\nYm9vbCBzdmUsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4ZW5fcGZuX3Qg\nKmVycm9yX2dmbiwgdWludDMyX3QgKmVycm9yX2NvZGUpOw0KIGludCB4Y19hbHRwMm1fZ2V0X3N1\ncHByZXNzX3ZlKHhjX2ludGVyZmFjZSAqaGFuZGxlLCB1aW50MzJfdCBkb21pZCwNCiAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICB1aW50MTZfdCB2aWV3X2lkLCB4ZW5fcGZuX3QgZ2ZuLCBi\nb29sICpzdmUpOw0KIGludCB4Y19hbHRwMm1fc2V0X21lbV9hY2Nlc3MoeGNfaW50ZXJmYWNlICpo\nYW5kbGUsIHVpbnQzMl90IGRvbWlkLA0KZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhjL3hjX2FsdHAy\nbS5jIGIvdG9vbHMvbGlieGMveGNfYWx0cDJtLmMNCmluZGV4IDA5ZGFkMDM1NWUuLjlmN2U4MzE1\nYjMgMTAwNjQ0DQotLS0gYS90b29scy9saWJ4Yy94Y19hbHRwMm0uYw0KKysrIGIvdG9vbHMvbGli\neGMveGNfYWx0cDJtLmMNCkBAIC0yMzQsNiArMjM0LDM5IEBAIGludCB4Y19hbHRwMm1fc2V0X3N1\ncHByZXNzX3ZlKHhjX2ludGVyZmFjZSAqaGFuZGxlLCB1aW50MzJfdCBkb21pZCwNCiAgICAgcmV0\ndXJuIHJjOw0KIH0NCiANCitpbnQgeGNfYWx0cDJtX3NldF9zdXByZXNzX3ZlX211bHRpKHhjX2lu\ndGVyZmFjZSAqaGFuZGxlLCB1aW50MzJfdCBkb21pZCwNCisgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgIHVpbnQxNl90IHZpZXdfaWQsIHhlbl9wZm5fdCBmaXJzdF9nZm4sDQorICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4ZW5fcGZuX3QgbGFzdF9nZm4sIGJvb2wg\nc3ZlLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeGVuX3Bmbl90ICplcnJv\ncl9nZm4sIHVpbnQzMl90ICplcnJvcl9jb2RlKQ0KK3sNCisgICAgaW50IHJjOw0KKyAgICBERUNM\nQVJFX0hZUEVSQ0FMTF9CVUZGRVIoeGVuX2h2bV9hbHRwMm1fb3BfdCwgYXJnKTsNCisNCisgICAg\nYXJnID0geGNfaHlwZXJjYWxsX2J1ZmZlcl9hbGxvYyhoYW5kbGUsIGFyZywgc2l6ZW9mKCphcmcp\nKTsNCisgICAgaWYgKCBhcmcgPT0gTlVMTCApDQorICAgICAgICByZXR1cm4gLTE7DQorDQorICAg\nIGFyZy0+dmVyc2lvbiA9IEhWTU9QX0FMVFAyTV9JTlRFUkZBQ0VfVkVSU0lPTjsNCisgICAgYXJn\nLT5jbWQgPSBIVk1PUF9hbHRwMm1fc2V0X3N1cHByZXNzX3ZlX211bHRpOw0KKyAgICBhcmctPmRv\nbWFpbiA9IGRvbWlkOw0KKyAgICBhcmctPnUuc3VwcHJlc3NfdmVfbXVsdGkudmlldyA9IHZpZXdf\naWQ7DQorICAgIGFyZy0+dS5zdXBwcmVzc192ZV9tdWx0aS5maXJzdF9nZm4gPSBmaXJzdF9nZm47\nDQorICAgIGFyZy0+dS5zdXBwcmVzc192ZV9tdWx0aS5sYXN0X2dmbiA9IGxhc3RfZ2ZuOw0KKyAg\nICBhcmctPnUuc3VwcHJlc3NfdmVfbXVsdGkuc3VwcHJlc3NfdmUgPSBzdmU7DQorDQorICAgIHJj\nID0geGVuY2FsbDIoaGFuZGxlLT54Y2FsbCwgX19IWVBFUlZJU09SX2h2bV9vcCwgSFZNT1BfYWx0\ncDJtLA0KKyAgICAgICAgICAgICAgICAgIEhZUEVSQ0FMTF9CVUZGRVJfQVNfQVJHKGFyZykpOw0K\nKw0KKyAgICBpZiAoIGFyZy0+dS5zdXBwcmVzc192ZV9tdWx0aS5maXJzdF9lcnJvciApDQorICAg\nIHsNCisgICAgICAgICplcnJvcl9nZm4gPSBhcmctPnUuc3VwcHJlc3NfdmVfbXVsdGkuZmlyc3Rf\nZXJyb3I7DQorICAgICAgICAqZXJyb3JfY29kZSA9IGFyZy0+dS5zdXBwcmVzc192ZV9tdWx0aS5m\naXJzdF9lcnJvcl9jb2RlOw0KKyAgICB9DQorDQorICAgIHhjX2h5cGVyY2FsbF9idWZmZXJfZnJl\nZShoYW5kbGUsIGFyZyk7DQorICAgIHJldHVybiByYzsNCit9DQorDQogaW50IHhjX2FsdHAybV9z\nZXRfbWVtX2FjY2Vzcyh4Y19pbnRlcmZhY2UgKmhhbmRsZSwgdWludDMyX3QgZG9taWQsDQogICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MTZfdCB2aWV3X2lkLCB4ZW5fcGZuX3QgZ2Zu\nLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeGVubWVtX2FjY2Vzc190IGFjY2VzcykN\nCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL2h2bS5jIGIveGVuL2FyY2gveDg2L2h2bS9o\ndm0uYw0KaW5kZXggNDc1NzNmNzFiOC4uYTEyOTA0OWQ2YiAxMDA2NDQNCi0tLSBhL3hlbi9hcmNo\nL3g4Ni9odm0vaHZtLmMNCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMNCkBAIC00NTUzLDYg\nKzQ1NTMsNyBAQCBzdGF0aWMgaW50IGRvX2FsdHAybV9vcCgNCiAgICAgY2FzZSBIVk1PUF9hbHRw\nMm1fZGVzdHJveV9wMm06DQogICAgIGNhc2UgSFZNT1BfYWx0cDJtX3N3aXRjaF9wMm06DQogICAg\nIGNhc2UgSFZNT1BfYWx0cDJtX3NldF9zdXBwcmVzc192ZToNCisgICAgY2FzZSBIVk1PUF9hbHRw\nMm1fc2V0X3N1cHByZXNzX3ZlX211bHRpOg0KICAgICBjYXNlIEhWTU9QX2FsdHAybV9nZXRfc3Vw\ncHJlc3NfdmU6DQogICAgIGNhc2UgSFZNT1BfYWx0cDJtX3NldF9tZW1fYWNjZXNzOg0KICAgICBj\nYXNlIEhWTU9QX2FsdHAybV9zZXRfbWVtX2FjY2Vzc19tdWx0aToNCkBAIC00NzExLDYgKzQ3MTIs\nMjAgQEAgc3RhdGljIGludCBkb19hbHRwMm1fb3AoDQogICAgICAgICB9DQogICAgICAgICBicmVh\nazsNCiANCisgICAgY2FzZSBIVk1PUF9hbHRwMm1fc2V0X3N1cHByZXNzX3ZlX211bHRpOg0KKyAg\nICAgICAgaWYgKCBhLnUuc3VwcHJlc3NfdmVfbXVsdGkucGFkMSB8fA0KKyAgICAgICAgICAgICBh\nLnUuc3VwcHJlc3NfdmVfbXVsdGkuZmlyc3RfZXJyb3JfY29kZSB8fA0KKyAgICAgICAgICAgICBh\nLnUuc3VwcHJlc3NfdmVfbXVsdGkuZmlyc3RfZXJyb3IgfHwNCisgICAgICAgICAgICAgYS51LnN1\ncHByZXNzX3ZlX211bHRpLmZpcnN0X2dmbiA+IGEudS5zdXBwcmVzc192ZV9tdWx0aS5sYXN0X2dm\nbiApDQorICAgICAgICAgICAgcmMgPSAtRUlOVkFMOw0KKyAgICAgICAgZWxzZQ0KKyAgICAgICAg\new0KKyAgICAgICAgICAgIHJjID0gcDJtX3NldF9zdXBwcmVzc192ZV9tdWx0aShkLCAmYS51LnN1\ncHByZXNzX3ZlX211bHRpKTsNCisgICAgICAgICAgICBpZiAoICghcmMgfHwgcmMgPT0gLUVSRVNU\nQVJUKSAmJiBfX2NvcHlfdG9fZ3Vlc3QoYXJnLCAmYSwgMSkgKQ0KKyAgICAgICAgICAgICAgICBy\nYyA9IC1FRkFVTFQ7DQorICAgICAgICB9DQorICAgICAgICBicmVhazsNCisNCiAgICAgY2FzZSBI\nVk1PUF9hbHRwMm1fZ2V0X3N1cHByZXNzX3ZlOg0KICAgICAgICAgaWYgKCBhLnUuc3VwcHJlc3Nf\ndmUucGFkMSB8fCBhLnUuc3VwcHJlc3NfdmUucGFkMiApDQogICAgICAgICAgICAgcmMgPSAtRUlO\nVkFMOw0KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0uYyBiL3hlbi9hcmNoL3g4Ni9t\nbS9wMm0uYw0KaW5kZXggN2U3ZjRmMWE3Yy4uMjUzY2FiMzQ1OCAxMDA2NDQNCi0tLSBhL3hlbi9h\ncmNoL3g4Ni9tbS9wMm0uYw0KKysrIGIveGVuL2FyY2gveDg2L21tL3AybS5jDQpAQCAtMzA2NCw2\nICszMDY0LDcwIEBAIG91dDoNCiAgICAgcmV0dXJuIHJjOw0KIH0NCiANCisvKg0KKyAqIFNldC9j\nbGVhciB0aGUgI1ZFIHN1cHByZXNzIGJpdCBmb3IgbXVsdGlwbGUgcGFnZXMuICBPbmx5IGF2YWls\nYWJsZSBvbiBWTVguDQorICovDQoraW50IHAybV9zZXRfc3VwcHJlc3NfdmVfbXVsdGkoc3RydWN0\nIGRvbWFpbiAqZCwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgeGVuX2h2\nbV9hbHRwMm1fc3VwcHJlc3NfdmVfbXVsdGkgKnN2ZSkNCit7DQorICAgIHN0cnVjdCBwMm1fZG9t\nYWluICpob3N0X3AybSA9IHAybV9nZXRfaG9zdHAybShkKTsNCisgICAgc3RydWN0IHAybV9kb21h\naW4gKmFwMm0gPSBOVUxMOw0KKyAgICBzdHJ1Y3QgcDJtX2RvbWFpbiAqcDJtID0gaG9zdF9wMm07\nDQorICAgIHVpbnQ2NF90IHN0YXJ0ID0gc3ZlLT5maXJzdF9nZm47DQorICAgIGludCByYyA9IDA7\nDQorICAgIHVpbnQ2NF90IG1heF9waHlzX2FkZHIgPSAoMVVMIDw8IGQtPmFyY2guY3B1aWQtPmV4\ndGQubWF4cGh5c2FkZHIpIC0gMTsNCisNCisgICAgaWYgKCBzdmUtPnZpZXcgPiAwICkNCisgICAg\new0KKyAgICAgICAgaWYgKCBzdmUtPnZpZXcgPj0gTUFYX0FMVFAyTSB8fA0KKyAgICAgICAgICAg\nICBkLT5hcmNoLmFsdHAybV9lcHRwW2FycmF5X2luZGV4X25vc3BlYyhzdmUtPnZpZXcsIE1BWF9F\nUFRQKV0gPT0NCisgICAgICAgICAgICAgbWZuX3goSU5WQUxJRF9NRk4pICkNCisgICAgICAgICAg\nICByZXR1cm4gLUVJTlZBTDsNCisNCisgICAgICAgIHAybSA9IGFwMm0gPSBkLT5hcmNoLmFsdHAy\nbV9wMm1bYXJyYXlfaW5kZXhfbm9zcGVjKHN2ZS0+dmlldywNCisgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1BWF9BTFRQMk0pXTsNCisg\nICAgfQ0KKw0KKyAgICBwMm1fbG9jayhob3N0X3AybSk7DQorDQorICAgIGlmICggYXAybSApDQor\nICAgICAgICBwMm1fbG9jayhhcDJtKTsNCisNCisgICAgd2hpbGUgKCBzdmUtPmxhc3RfZ2ZuID49\nIHN0YXJ0ICYmIHN0YXJ0IDwgbWF4X3BoeXNfYWRkciApDQorICAgIHsNCisgICAgICAgIHAybV9h\nY2Nlc3NfdCBhOw0KKyAgICAgICAgcDJtX3R5cGVfdCB0Ow0KKyAgICAgICAgbWZuX3QgbWZuOw0K\nKyAgICAgICAgaW50IGVyciA9IDA7DQorDQorICAgICAgICBpZiAoIGFsdHAybV9nZXRfZWZmZWN0\naXZlX2VudHJ5KHAybSwgX2dmbihzdGFydCksICZtZm4sICZ0LCAmYSwgQVAyTUdFVF9xdWVyeSkg\nKQ0KKyAgICAgICAgICAgIGEgPSBwMm0tPmRlZmF1bHRfYWNjZXNzOw0KKw0KKyAgICAgICAgaWYg\nKCAoZXJyID0gcDJtLT5zZXRfZW50cnkocDJtLCBfZ2ZuKHN0YXJ0KSwgbWZuLCBQQUdFX09SREVS\nXzRLLCB0LCBhLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ZlLT5zdXBw\ncmVzc192ZSkpICYmICFzdmUtPmZpcnN0X2Vycm9yICkNCisgICAgICAgIHsNCisgICAgICAgICAg\nICBzdmUtPmZpcnN0X2Vycm9yID0gc3RhcnQ7IC8qIFNhdmUgdGhlIGdmbiBvZiB0aGUgZmlyc3Qg\nZXJyb3IgKi8NCisgICAgICAgICAgICBzdmUtPmZpcnN0X2Vycm9yX2NvZGUgPSBlcnI7IC8qIFNh\ndmUgdGhlIGZpcnN0IGVycm9yIGNvZGUgKi8NCisgICAgICAgIH0NCisNCisgICAgICAgIC8qIENo\nZWNrIGZvciBjb250aW51YXRpb24gaWYgaXQncyBub3QgdGhlIGxhc3QgaXRlcmF0aW9uLiAqLw0K\nKyAgICAgICAgaWYgKCBzdmUtPmxhc3RfZ2ZuID49ICsrc3RhcnQgJiYgaHlwZXJjYWxsX3ByZWVt\ncHRfY2hlY2soKSApDQorICAgICAgICB7DQorICAgICAgICAgICAgcmMgPSAtRVJFU1RBUlQ7DQor\nICAgICAgICAgICAgYnJlYWs7DQorICAgICAgICB9DQorICAgIH0NCisNCisgICAgc3ZlLT5maXJz\ndF9nZm4gPSBzdGFydDsNCisNCisgICAgaWYgKCBhcDJtICkNCisgICAgICAgIHAybV91bmxvY2so\nYXAybSk7DQorDQorICAgIHAybV91bmxvY2soaG9zdF9wMm0pOw0KKw0KKyAgICByZXR1cm4gcmM7\nDQorfQ0KKw0KIGludCBwMm1fZ2V0X3N1cHByZXNzX3ZlKHN0cnVjdCBkb21haW4gKmQsIGdmbl90\nIGdmbiwgYm9vbCAqc3VwcHJlc3NfdmUsDQogICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWdu\nZWQgaW50IGFsdHAybV9pZHgpDQogew0KZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3B1YmxpYy9o\ndm0vaHZtX29wLmggYi94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2h2bV9vcC5oDQppbmRleCAzNTNm\nODAzNGQ5Li40OTk2NWQyNTZjIDEwMDY0NA0KLS0tIGEveGVuL2luY2x1ZGUvcHVibGljL2h2bS9o\ndm1fb3AuaA0KKysrIGIveGVuL2luY2x1ZGUvcHVibGljL2h2bS9odm1fb3AuaA0KQEAgLTQ2LDYg\nKzQ2LDE2IEBAIHN0cnVjdCB4ZW5faHZtX2FsdHAybV9zdXBwcmVzc192ZSB7DQogICAgIHVpbnQ2\nNF90IGdmbjsNCiB9Ow0KIA0KK3N0cnVjdCB4ZW5faHZtX2FsdHAybV9zdXBwcmVzc192ZV9tdWx0\naSB7DQorICAgIHVpbnQxNl90IHZpZXc7DQorICAgIHVpbnQ4X3Qgc3VwcHJlc3NfdmU7IC8qIEJv\nb2xlYW4gdHlwZS4gKi8NCisgICAgdWludDhfdCBwYWQxOw0KKyAgICB1aW50MzJfdCBmaXJzdF9l\ncnJvcl9jb2RlOyAvKiBNdXN0IGJlIHNldCB0byAwIC4gKi8NCisgICAgdWludDY0X3QgZmlyc3Rf\nZ2ZuOyAvKiBWYWx1ZSB3aWxsIGJlIHVwZGF0ZWQgKi8NCisgICAgdWludDY0X3QgbGFzdF9nZm47\nDQorICAgIHVpbnQ2NF90IGZpcnN0X2Vycm9yOyAvKiBHZm4gb2YgdGhlIGZpcnN0IGVycm9yLiBN\ndXN0IGJlIHNldCB0byAwLiAqLw0KK307DQorDQogI2lmIF9fWEVOX0lOVEVSRkFDRV9WRVJTSU9O\nX18gPCAweDAwMDQwOTAwDQogDQogLyogU2V0IHRoZSBsb2dpY2FsIGxldmVsIG9mIG9uZSBvZiBh\nIGRvbWFpbidzIFBDSSBJTlR4IHdpcmVzLiAqLw0KQEAgLTMzOSw2ICszNDksOCBAQCBzdHJ1Y3Qg\neGVuX2h2bV9hbHRwMm1fb3Agew0KICNkZWZpbmUgSFZNT1BfYWx0cDJtX3ZjcHVfZGlzYWJsZV9u\nb3RpZnkgIDEzDQogLyogR2V0IHRoZSBhY3RpdmUgdmNwdSBwMm0gaW5kZXggKi8NCiAjZGVmaW5l\nIEhWTU9QX2FsdHAybV9nZXRfcDJtX2lkeCAgICAgICAgICAxNA0KKy8qIFNldCB0aGUgIlN1cHJl\nc3MgI1ZFIiBiaXQgZm9yIGEgcmFuZ2Ugb2YgcGFnZXMgKi8NCisjZGVmaW5lIEhWTU9QX2FsdHAy\nbV9zZXRfc3VwcHJlc3NfdmVfbXVsdGkgMTUNCiAgICAgZG9taWRfdCBkb21haW47DQogICAgIHVp\nbnQxNl90IHBhZDE7DQogICAgIHVpbnQzMl90IHBhZDI7DQpAQCAtMzUzLDYgKzM2NSw3IEBAIHN0\ncnVjdCB4ZW5faHZtX2FsdHAybV9vcCB7DQogICAgICAgICBzdHJ1Y3QgeGVuX2h2bV9hbHRwMm1f\nY2hhbmdlX2dmbiAgICAgICAgICAgY2hhbmdlX2dmbjsNCiAgICAgICAgIHN0cnVjdCB4ZW5faHZt\nX2FsdHAybV9zZXRfbWVtX2FjY2Vzc19tdWx0aSBzZXRfbWVtX2FjY2Vzc19tdWx0aTsNCiAgICAg\nICAgIHN0cnVjdCB4ZW5faHZtX2FsdHAybV9zdXBwcmVzc192ZSAgICAgICAgICBzdXBwcmVzc192\nZTsNCisgICAgICAgIHN0cnVjdCB4ZW5faHZtX2FsdHAybV9zdXBwcmVzc192ZV9tdWx0aSAgICBz\ndXBwcmVzc192ZV9tdWx0aTsNCiAgICAgICAgIHN0cnVjdCB4ZW5faHZtX2FsdHAybV92Y3B1X2Rp\nc2FibGVfbm90aWZ5ICBkaXNhYmxlX25vdGlmeTsNCiAgICAgICAgIHN0cnVjdCB4ZW5faHZtX2Fs\ndHAybV9nZXRfdmNwdV9wMm1faWR4ICAgICBnZXRfdmNwdV9wMm1faWR4Ow0KICAgICAgICAgdWlu\ndDhfdCBwYWRbNjRdOw0KZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9tZW1fYWNjZXNzLmgg\nYi94ZW4vaW5jbHVkZS94ZW4vbWVtX2FjY2Vzcy5oDQppbmRleCBlNGQyNDUwMmUwLi4wMGU1OTRh\nMGFkIDEwMDY0NA0KLS0tIGEveGVuL2luY2x1ZGUveGVuL21lbV9hY2Nlc3MuaA0KKysrIGIveGVu\nL2luY2x1ZGUveGVuL21lbV9hY2Nlc3MuaA0KQEAgLTc1LDYgKzc1LDkgQEAgbG9uZyBwMm1fc2V0\nX21lbV9hY2Nlc3NfbXVsdGkoc3RydWN0IGRvbWFpbiAqZCwNCiBpbnQgcDJtX3NldF9zdXBwcmVz\nc192ZShzdHJ1Y3QgZG9tYWluICpkLCBnZm5fdCBnZm4sIGJvb2wgc3VwcHJlc3NfdmUsDQogICAg\nICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGFsdHAybV9pZHgpOw0KIA0KK2ludCBw\nMm1fc2V0X3N1cHByZXNzX3ZlX211bHRpKHN0cnVjdCBkb21haW4gKmQsDQorICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgc3RydWN0IHhlbl9odm1fYWx0cDJtX3N1cHByZXNzX3ZlX211bHRp\nICpzdXBwcmVzc192ZSk7DQorDQogaW50IHAybV9nZXRfc3VwcHJlc3NfdmUoc3RydWN0IGRvbWFp\nbiAqZCwgZ2ZuX3QgZ2ZuLCBib29sICpzdXBwcmVzc192ZSwNCiAgICAgICAgICAgICAgICAgICAg\nICAgICB1bnNpZ25lZCBpbnQgYWx0cDJtX2lkeCk7DQogDQotLSANCjIuMTcuMQ0KDQo=\n\nFrom - Wed Dec 18 10:46:18 2019\nReceived: from FTLPEX02AMS01.citrite.net (10.13.108.166) by\n AMSPEX02CL01.citrite.net (10.69.22.125) with Microsoft SMTP Server (TLS) id\n 15.0.1473.3 via Mailbox Transport; Tue, 17 Dec 2019 16:12:41 +0100\nReceived: from LASPEX02MSOL01.citrite.net (10.160.21.45) by\n FTLPEX02AMS01.citrite.net (10.13.108.166) with Microsoft SMTP Server (TLS) id\n 15.0.1473.3; Tue, 17 Dec 2019 10:12:38 -0500\nReceived: from esa2.hc3370-68.iphmx.com (10.160.38.12) by\n LASPEX02MSOL01.citrite.net (10.160.21.45) with Microsoft SMTP Server (TLS) id\n 15.0.1473.3 via Frontend Transport; Tue, 17 Dec 2019 07:12:38 -0800\nReceived-SPF: None (esa2.hc3370-68.iphmx.com: no sender\n  authenticity information available from domain of\n  aisaila@bitdefender.com) identity=pra;\n  client-ip=40.107.2.105; receiver=esa2.hc3370-68.iphmx.com;\n  envelope-from=\"aisaila@bitdefender.com\";\n  x-sender=\"aisaila@bitdefender.com\";\n  x-conformance=sidf_compatible\nReceived-SPF: Pass (esa2.hc3370-68.iphmx.com: domain of\n  aisaila@bitdefender.com designates 40.107.2.105 as permitted\n  sender) identity=mailfrom; client-ip=40.107.2.105;\n  receiver=esa2.hc3370-68.iphmx.com;\n  envelope-from=\"aisaila@bitdefender.com\";\n  x-sender=\"aisaila@bitdefender.com\";\n  x-conformance=sidf_compatible; x-record-type=\"v=spf1\";\n  x-record-text=\"v=spf1 ip4:40.92.0.0/15 ip4:40.107.0.0/16\n  ip4:52.100.0.0/14 ip4:104.47.0.0/17 ip6:2a01:111:f400::/48\n  ip6:2a01:111:f403::/48 -all\"\nReceived-SPF: Pass (esa2.hc3370-68.iphmx.com: domain of\n  postmaster@EUR02-VE1-obe.outbound.protection.outlook.com\n  designates 40.107.2.105 as permitted sender) identity=helo;\n  client-ip=40.107.2.105; receiver=esa2.hc3370-68.iphmx.com;\n  envelope-from=\"aisaila@bitdefender.com\";\n  x-sender=\"postmaster@EUR02-VE1-obe.outbound.protection.outlook.com\";\n  x-conformance=sidf_compatible; x-record-type=\"v=spf1\";\n  x-record-text=\"v=spf1 ip4:40.92.0.0/15 ip4:40.107.0.0/16\n  ip4:52.100.0.0/14 ip4:104.47.0.0/17 ip6:2a01:111:f400::/48\n  ip6:2a01:111:f403::/48 -all\"\nAuthentication-Results: esa2.hc3370-68.iphmx.com; spf=None smtp.pra=aisaila@bitdefender.com; spf=Pass smtp.mailfrom=aisaila@bitdefender.com; spf=Pass smtp.helo=postmaster@EUR02-VE1-obe.outbound.protection.outlook.com; dkim=pass (signature verified) header.i=@bitdefender.onmicrosoft.com\nIronPort-SDR: PnqSc0B77LeANL3Hw+DGtt/O3/v0Y11DLjGxjQ++t1bxNGDqROWo17u2nW7CEhQ00f0s/7Ee84\n fYkLxjf0zQffOURGGvHJledwhb3/WYADU2X19VB+kRFiyF3CufCwYYcAqx8WJY+Nl0Ovk0Zc37\n RzQEo8EgXWDdaTycwKsAImCvl6gXrVq35lVzCNZzjK/TDBDpyAOEQqzIBA3222plXJv6sw0ojA\n Ptq6cu2Q/LimYZeaXhKpoIuv/MIeIC8nbCVilGkzdRyx+w8ZXhimhOahsfeTXGDZTtZU6HLFmJ\n vtTtF1H/jCRzDA79hWT0X6Jy\nX-IronPort-RemoteIP: 40.107.2.105\nX-IronPort-MID: 9822605\nX-IronPort-Reputation: 3.5\nX-IronPort-Listener: InboundMail\nX-IronPort-SenderGroup: SBRS_Whitelist\nX-IronPort-MailFlowPolicy: $ACCEPTED\nX-SBRS: 3.5\nX-MesageID: 9822605\nX-Ironport-Server: esa2.hc3370-68.iphmx.com\nX-Remote-IP: 40.107.2.105\nX-Policy: $ACCEPTED\nIronPort-PHdr: =?us-ascii?q?9a23=3AgTaAPx3YxqAMNMPEsmDT+DRfVm0co7zxezQtwd?=\n =?us-ascii?q?8ZseMRLvad9pjvdHbS+e9qxAeQG9mCsLQe07Wd7PmocFdDyK7JiGoFfp1IWk?=\n =?us-ascii?q?1NouQttCtkPvS4D1bmJuXhdS0wEZcKflZk+3amLRodQ56mNBXdrXKo8DEdBA?=\n =?us-ascii?q?j0OxZrKeTpAI7SiNm82/yv95HJbAhEmTSwbalsIBmqrwjducsbjZZ/Iast1x?=\n =?us-ascii?q?XFpWdFdf5Lzm1yP1KTmBj85sa0/JF99ilbpuws+c1dX6jkZqo0VbNXAigoPG?=\n =?us-ascii?q?Az/83rqALMTRCT6XsGU2UZiQRHDg7Y5xznRJjxsy/6tu1g2CmGOMD9UL45VS?=\n =?us-ascii?q?i+46ptVRTlkzkMOSIn/27Li8xwlKNbrwynpxxj2I7ffYWZOONjcq/BYd8WQG?=\n =?us-ascii?q?xMVdtTWSNcGIOxd4sBAfQcM+ZEoYfzpFUOohm5CwmtGOzhxTBHi2Tq3aIhye?=\n =?us-ascii?q?ktDRvL0BAiEt8IrX/arM/1NKAXUe2t0KTIySvMbvxM1jf79YfIaA0hquyRU7?=\n =?us-ascii?q?Jsb8XRx1MgFwXYhVuTtILoIzCb2OIRvmOG6OdvT+Ovi3U9pAFwpjig3NwhhZ?=\n =?us-ascii?q?LIhoIJ11/L6yt5z5gzJdKlVkF7e8SoH4dXtyGfLoZ7RN4pTWJwuCsixbAKpY?=\n =?us-ascii?q?S3cDUWxJkl3RLTdeaLf5WU7h/jTOqcJSp0iGh4dL+7gxu+61WsxvHzW8Wu0V?=\n =?us-ascii?q?tGtiRFncfPu3wR0hHe78uKRedj8Ui93DuC1QHe5+9HLE0xl6fWJZEszaI1m5?=\n =?us-ascii?q?cQtUnMAyn7k1jsgqCMbEUr4O2o5vznYrr4op+cMJd5hA7wPaoyhsCzH/00PQ?=\n =?us-ascii?q?cBUWSG4Oi806bs8lPjTLVNk/02jrLWsJfHJcQdu6G1GRdV0pwk6xajETipzM?=\n =?us-ascii?q?gYnXgALFJDYh6HiJXpO03KIPD/Cve/gE6gnytsx/DDJrHhA5PNIWbfkLr5cr?=\n =?us-ascii?q?tx91RQxBcvwd1d/Z5YFKsNLO/vVkLxrNDYCwU2Mw2ww+bpEtV90YYeVHqVDa?=\n =?us-ascii?q?+YK6Pdq16I5uY1LOSXf4AVuSr9JOU76P7gk3A5n0IScrez3ZcNdH+4GfFmL1?=\n =?us-ascii?q?2DYXXwmtcBDXsKvg0mQezlllKCViRTZ3msUK4m+z47FYSmDYPZSYC1m7GOwj?=\n =?us-ascii?q?q7EodKaWBHFlCMC3bodoqeV/gQbyKSJ5wprjtRH6isTcot2A+jsCf+yqF7Na?=\n =?us-ascii?q?zE9ysAr5Xh2dNpoerJmlt6oSx5CYGR3n+AS0lwn3gUXHkm0aZnu0t/x1yfl6?=\n =?us-ascii?q?9ijKoLO8ZU4qZgVgoqPJjQ1fEyMMz/VAvHNvayYXeCa53yCDAqR9M1yvcEYl?=\n =?us-ascii?q?pxFtuviBzOxWyhBLpDxO/DP4A97q+Jhyu5HM160XuTkfB51wB7EOdsFEjjq7?=\n =?us-ascii?q?B28xXaG4/OlRnEzfS0IP1PlCeY7nyKiHGOtRsFDl04WvDfUHQWdkba6s704k?=\n =?us-ascii?q?rSQrP9bNZvPl5LyNKOJ6VHbNHklxNBQvLiM87ZeGW/hyG7AhPbjqjZd4fudm?=\n =?us-ascii?q?4B2z+HTUIFjwwe83uAOQUkQyCnpmPVFjt1ElzzJkjr9Lobyju7G2EuyATYQ0?=\n =?us-ascii?q?R92uiO5xQXiPeAGdYexakNtypkihkmN1G7w9/QF5+8thJsLoB9RP543lpdzm?=\n =?us-ascii?q?PesV5Ne7mbao1yjV4XdQt6+njj0Rl6EKxsusgnp3B5qWg6I6LN12p4fDHf3r?=\n =?us-ascii?q?vUJ6TXB07wxAKMO/LR+XOE3cy3y7gvzewJl3zzgyeNPGUd8CA0trsd2S6tuZ?=\n =?us-ascii?q?ntLwgjc7DfD2gozD17gOiBRAsl/I+E5GdtbaaI6BSY2IwrNPdi8A6OYdgBOr?=\n =?us-ascii?q?KPPh3AVOEhG+iDKP0KqnauP0MDZfID5oo1NeOvTKTWwoi0GN5/ljW4onhuzI?=\n =?us-ascii?q?9e/3ylqQ9fVtflxpEGmNrH3lu4aSnWjV76vNmpp6JubjMeJkOOlRT4PNF9QI?=\n =?us-ascii?q?hUJ6MnWEioL+6rmcdXvMLSRCJ57FiGPnJewMqAOhSyUHGojkVAkEUNpnq/nj?=\n =?us-ascii?q?GkiiZ5iCwtsv+H1TfVkL64JjMaJm5GQnVjhl7wII+yyuoXR1WscxNzykH36F?=\n =?us-ascii?q?3zne5br/8kcDGWHxcOfjD2KnEkWay15fKZe8AazpQuvG1MVfikJ0iAQ+v0og?=\n =?us-ascii?q?AT0ifqN2Ff2Dw2eTystpjj2Rd9jTHVN259+ULQYto43hLD/JrZTP9V0CABQX?=\n =?us-ascii?q?xxiCLeB1y1F9Oo4dmZmZrFvu2kEWmmU84bajHlmLuJrzDz/mh2GVu/kvS0z8?=\n =?us-ascii?q?XgChQ/2DTn2sNCeBjy9Ey5XKSykqOwPKRgY1ViA0L654xiAIZin4AshZYWn3?=\n =?us-ascii?q?8HmpGS+nlBmmD2Yp1X2qP7OWIEXiVDg8XU7w7sxFB5IzqXypj4WHSQzoopZ9?=\n =?us-ascii?q?Szbm4MnCNox8pLFKuZ4rFCkSZv5F2+qAPae/9mmTkBj/Ap7SdA0dsEswcs0C?=\n =?us-ascii?q?iRR4sqMxIBYX7KkBKFp5Czt6wNImakKuPvjA8gzZagFLGHskdXX3OrMpElVT?=\n =?us-ascii?q?R96MlyKjeumDX6953kdd/MbNkSqgzckhHOiPJQIY4wkfxCjDRuOGb0t3kog+?=\n =?us-ascii?q?Ahihkm0Za/tYmBY2JjmcDxShdZLTT0Y8o78DDxgatQk8Ca0prpFZJkW30KUJ?=\n =?us-ascii?q?buUfO0AWcKr/20UmTGWDY4q3qdBf/eBVrDsAE/9y2JSdbybyzEbGMUxthjWh?=\n =?us-ascii?q?SHcUFEiVpSXD5hxcFhU176gs35cEJpoDsW4w2dyFMEx+R2Oh34Smqaqh2vb2?=\n =?us-ascii?q?J+QZmEJRtS5ylI5lvZPMKT6O5+BWdT+Zjr/2nvYiSLIh9FC20EQBnODlH4N7?=\n =?us-ascii?q?iq7PHK8vSUC+SzKffDe/OFrukUBJLqjdq/l4Bh+TiLLMCGOHJvWuY61kR0Vn?=\n =?us-ascii?q?d8A83Fmj8LRnVNxRjAZMOauhqwvxZPgJzuqqbTURn0rcuCELIId9VkoEvp2e?=\n =?us-ascii?q?LdZ6iRnCZ8OXBT0ZZejXPPzbEe2hYVhUQMP3GkEK8JtCrEZKjRhqNaARMdZy?=\n =?us-ascii?q?5pcsBP6uow0xJMNsjSlt7unuIgyKdtVBEfEwW5x4mgfoQSLnu4NU/bCUruVv?=\n =?us-ascii?q?zOPjDNz8ztIOu9RbBWkORIpki1sDefHVXkO2fLnD3oWhazdOBU2X3DekUG58?=\n =?us-ascii?q?fnNE81VDuGLpqucBCwPd5pgCdjzKY93DXKPjVHbmA5LRMLr6WQ6DMeifJ6SA?=\n =?us-ascii?q?kjpjJoK/eJnyGB4qzWMJET5LFiAz99luZTyH4717dY4ixCSPFv3iDVq5Q9xj?=\n =?us-ascii?q?Pu2vnK0TdhXBdU/3xChZmCvEFrEa/Y6pVNV3vC8B8Xq26XDl5ZwrktQs2qsK?=\n =?us-ascii?q?dWxN/Vkav1IzoX6NPY8/wXAM3MId6GOn4sYlL5XSTZBwwfQXu3JHnS0gZDxe?=\n =?us-ascii?q?qK+CTf/f1Y4tD83YADQbhBWBkpG+MGXw57SccaLs4/Xyt4w+LDyp9SoyL49F?=\n =?us-ascii?q?6IGY1bpsyVCqrUWK2wbm7f1f4dOX5qifv5NdhBa9e9ghQ6LAE8xMOTRwLRRY?=\n =?us-ascii?q?wf+3U9KFNr5h0LqD8nESUywxy3MAr1uS1KTKfmkEJu0lksJrh9kVWkq1YveA?=\n =?us-ascii?q?iQrXNpwhBowIfr3WjKImy2cPf4GIhSD2Ct7RoLP5j2Qhh4YUiJpWI5aWuWf7?=\n =?us-ascii?q?tKlPMgeHti0kncssAURqYZE/0CYQcQwOHRbPItgxxQrSCuxEkP4uWga9MqjA?=\n =?us-ascii?q?wxbZultG5NwSpOUeRtf+nuCfMMyVJdwKWToiWvy+Y9hhcEIFoA+3+TfyhOv1?=\n =?us-ascii?q?EUMr4hJGyj+ekJi0TKlzZYeWcKXuYnubo2rgVkY7vGlWS5i+MLI1v5L+GFKq?=\n =?us-ascii?q?KFp2XM3dWFRF89zAJAlkVI+6R3zdZ2c0eQUBNKrvPZHBAIOMzebABNOpYKsi?=\n =?us-ascii?q?GLImDU97yVnME9JYi2G+H2QPXbub0d2ASkF11yQNxJsJRHH4Gs1VGeJsDif9?=\n =?us-ascii?q?tngV0g4hrmIFKdAbFHYhWOxX0Ootq2zZt+9YNcOj0QD2h7PSitoL3Qo0V55Z?=\n =?us-ascii?q?jLFMdzeXocUoYeYzguX9amnidCo3laJBSK6LpDjTavtnr7rCmWCyTgZd1+Yv?=\n =?us-ascii?q?vSfQlrFNy95TQ49e6xlELT9ZLdYWr9MJ4x372HofNfrJGBBfROSLB7uEqJgI?=\n =?us-ascii?q?hUSUuhVGvXGMK0LZz9OME8KMb5AXGgXhmjmio4Go3vac21IPHC0mSKDc5E9Z?=\n =?us-ascii?q?OW1zc5OYqhGyECTl1u8vob6vs0ZBVfMcZjJ0+y8Vx4b+vmfU+Zyon8Hz7rcG?=\n =?us-ascii?q?MJCaEZlaLjOdk1h2ItdrPolSFmF8liibHxqQlUGNkLlk2MnK7/IdUBF3C1Qj?=\n =?us-ascii?q?sEJE3OvXRrzWE5b7Rrm75tzk+Q6QtOdGzbEY4hIG1c4YNmDAvLcywvUzg2Gw?=\n =?us-ascii?q?fH39iEvl7kmrkW+2EEw4RklNZduX27hafxJSq2UfX0+5/UryYtY9Ugr6Brd4?=\n =?us-ascii?q?fkJ5ne7c6MrnnkVJDV9za9fmu6Gv5dxocCDR9iGKMNp0x8fMsMtMxG9FY7Ud?=\n =?us-ascii?q?o4K/pXEq4wq7u2aD1iSykP0SseUIDG1zsH0L7liunq0yyIeZFnCyQq9ZBLg9?=\n =?us-ascii?q?8TSSlzO3xMrq6/W4jYmmmIR3JNKwAWv11B?=\nX-IronPort-Anti-Spam-Filtered: true\nX-IronPort-Anti-Spam-Result: =?us-ascii?q?A0H5AACb7/hdh2kCayhlHAEBAQEBBwE?=\n =?us-ascii?q?BEQEEBAEBgX6BS1BxdQMECyoKg3qDRgOFOoVUlmuGTAMYPAkEAQEKARsSAgE?=\n =?us-ascii?q?BAQGBAoM8AheCHwYBBDQTAgECAQwBAQEDAQEBAgECAwICAQECEAEBAQgNCQg?=\n =?us-ascii?q?phT4BC4I7KQFpOTcBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE?=\n =?us-ascii?q?BAQEBBQKBBwU+AgEDEhEEDQwBATcBDwIBIgImAgICMBUQAgQOBSKDAAGCRgM?=\n =?us-ascii?q?vAgGiAz0CIwE/AguBBCmIYAEBdH8zgn4BAQV3hCIYWIE/CYEOKIc/hG0GgUE?=\n =?us-ascii?q?/g3ZshEgYgnmCXo98OZ5UKIIWhy+OVSeaSS2OIJZBhAwCBAIEBQIOAQEFgWm?=\n =?us-ascii?q?BezMiGxVIDYJSCUcRFI0SDA4JgUmCB4pTQgExAYEnj0gBgQ8BAQ?=\nX-IPAS-Result: =?us-ascii?q?A0H5AACb7/hdh2kCayhlHAEBAQEBBwEBEQEEBAEBgX6BS?=\n =?us-ascii?q?1BxdQMECyoKg3qDRgOFOoVUlmuGTAMYPAkEAQEKARsSAgEBAQGBAoM8AheCH?=\n =?us-ascii?q?wYBBDQTAgECAQwBAQEDAQEBAgECAwICAQECEAEBAQgNCQgphT4BC4I7KQFpO?=\n =?us-ascii?q?TcBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBBQKBBwU+A?=\n =?us-ascii?q?gEDEhEEDQwBATcBDwIBIgImAgICMBUQAgQOBSKDAAGCRgMvAgGiAz0CIwE/A?=\n =?us-ascii?q?guBBCmIYAEBdH8zgn4BAQV3hCIYWIE/CYEOKIc/hG0GgUE/g3ZshEgYgnmCX?=\n =?us-ascii?q?o98OZ5UKIIWhy+OVSeaSS2OIJZBhAwCBAIEBQIOAQEFgWmBezMiGxVIDYJSC?=\n =?us-ascii?q?UcRFI0SDA4JgUmCB4pTQgExAYEnj0gBgQ8BAQ?=\nX-IronPort-AV: E=Sophos;i=\"5.69,325,1571716800\"; \n   d=\"scan'208\";a=\"9822605\"\nX-Amp-Result: SKIPPED(no attachment in message)\nX-Amp-File-Uploaded: False\nX-IronPort-Outbreak-Status: No, level 0, Unknown - Unknown\nX-MGA-submission: =?us-ascii?q?MDHz5KiAI5OXPM3SvCR8Czkwc138DAbZFpqQ1a?=\n =?us-ascii?q?fGcOnegWlLifAOLt1ulQMrlDPZjoqFz06TbWsfFAQ+hE2AN8qEM0/358?=\n =?us-ascii?q?J2Hh4mq+8/smnycxnAQYnBeWdZ75WmZHQzIoJgWLuHgcuqMvBIEJozez?=\n =?us-ascii?q?fUXdF7YAi3hH9Sgw+uv+6eVg=3D=3D?=\nReceived: from mail-eopbgr20105.outbound.protection.outlook.com (HELO EUR02-VE1-obe.outbound.protection.outlook.com) ([40.107.2.105])\n  by esa2.hc3370-68.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Dec 2019 10:12:37 -0500\nARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=UsqQ+JVzdelMk0G3Moh1xKAmfnKsezG16wWxRv/mqjT3V6s2GNwUqgNT+lpp4SZpq2doC/OIMysd4ppbyqYrx/VfZhprsIiHvlJGlOaRrL4lBtr6j4KY9+IosqGWAV1EuDzu70MfKSQ48uqiMHy41joCZpN7LjbP9JDokV1bQdeMKVZ8m+Y2M2KSKnc8fLYohKy9CD8n+/Y12lpTK1GC8jsV2WCVD6BJSCZ54lVS7H5gO4IsVWB3BtKDpBQX9I6i44cBm9lsYNgyy4d4dgRzz3ynS2JdAtjOqaP3w1sLmklcYS6yB5wPU9pCVl6Ne5hcEC1fYVxDLDbHAmjACglAJA==\nARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector9901;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=oQQcj/kCLuqhEOjPzK84oKJ2erIYwHMpYTAxWNLBGWk=;\n b=E6pimmRW2Xk6NXhv8fQkEsbdZfI93flSsEdqhhdYiXQY/6ZMPzK/sr6f9ITblpDFrhlmP4BtZkAYFo1xzzSd2s6ziav2lgYS75uEl/iiUJkFtOT5ORsA5JiwaSsp90ftLrchYoJk3idKNdGJaWNlXbPv9AGh5vwxLWfVmByCV5a0DN77OffXEedL/Y87K+kKtd2nj53EoxCIZqEK9xqRHDtDOLM5vHFKlTMuPyoe8FNdAVlNRovc6UwQu4mOkEnCy6v5Cw1oSE8LagCEQ/UZ9rE0aeAQf1HQmwveWAMA8GCkRSufPY38641qL0AUr2kA8br2R3Tvctz0uBZrGZ6z4A==\nARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=bitdefender.com; dmarc=pass action=none\n header.from=bitdefender.com; dkim=pass header.d=bitdefender.com; arc=none\nDKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=bitdefender.onmicrosoft.com; s=selector2-bitdefender-onmicrosoft-com;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=oQQcj/kCLuqhEOjPzK84oKJ2erIYwHMpYTAxWNLBGWk=;\n b=Y7dOKjYJJF5FwSMiO13NJpsd8Yri4gT2C2k6jXt/RpFvg6bycBzZ/DStHEhyHYFo99o1z9zLibHaS78rNwLPwbovGtADgKEVA6MKtQEqok3C7h8WVvBia3fq6VJBcjdPAY4TtP7DNMN2MD9GndKt7zAS4Ww4IpnMQI0pmA+fHWE=\nReceived: from AM0PR02MB5553.eurprd02.prod.outlook.com (10.255.30.78) by\n AM0PR02MB4386.eurprd02.prod.outlook.com (20.178.17.212) with Microsoft SMTP\n Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n 15.20.2538.20; Tue, 17 Dec 2019 15:12:35 +0000\nReceived: from AM0PR02MB5553.eurprd02.prod.outlook.com\n ([fe80::8cec:7638:734c:89d]) by AM0PR02MB5553.eurprd02.prod.outlook.com\n ([fe80::8cec:7638:734c:89d%4]) with mapi id 15.20.2538.019; Tue, 17 Dec 2019\n 15:12:35 +0000\nFrom: Alexandru Stefan ISAILA <aisaila@bitdefender.com>\nTo: \"xen-devel@lists.xenproject.org\" <xen-devel@lists.xenproject.org>\nCC: Alexandru Stefan ISAILA <aisaila@bitdefender.com>, Jun Nakajima\n\t<jun.nakajima@intel.com>, Kevin Tian <kevin.tian@intel.com>, George Dunlap\n\t<george.dunlap@eu.citrix.com>, Jan Beulich <jbeulich@suse.com>, Andrew Cooper\n\t<andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,\n\t=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>\nSubject: [PATCH V4 3/4] x86/mm: Pull out the p2m specifics from\n p2m_init_altp2m_ept\nThread-Topic: [PATCH V4 3/4] x86/mm: Pull out the p2m specifics from\n p2m_init_altp2m_ept\nThread-Index: AQHVtOxpSoGNE4L+skG6HNN4NefFyg==\nDate: Tue, 17 Dec 2019 15:12:34 +0000\nMessage-ID: <20191217151144.9781-3-aisaila@bitdefender.com>\nReferences: <20191217151144.9781-1-aisaila@bitdefender.com>\nIn-Reply-To: <20191217151144.9781-1-aisaila@bitdefender.com>\nAccept-Language: en-US\nContent-Language: en-US\nX-MS-Has-Attach:\nX-MS-TNEF-Correlator:\nx-clientproxiedby: AM0PR01CA0067.eurprd01.prod.exchangelabs.com\n (2603:10a6:208:e6::44) To AM0PR02MB5553.eurprd02.prod.outlook.com\n (2603:10a6:208:160::14)\nx-ms-exchange-messagesentrepresentingtype: 1\nx-mailer: git-send-email 2.17.1\nx-originating-ip: [91.199.104.6]\nx-ms-publictraffictype: Email\nx-ms-office365-filtering-correlation-id: c1a01afe-51c6-4cc6-89c2-08d783038bb2\nx-ms-traffictypediagnostic: AM0PR02MB4386:|AM0PR02MB4386:|AM0PR02MB4386:\nx-ms-exchange-transport-forked: True\nx-microsoft-antispam-prvs: <AM0PR02MB4386E6445AB0E784035C3BB8AB500@AM0PR02MB4386.eurprd02.prod.outlook.com>\nx-ms-oob-tlc-oobclassifiers: OLM:243;\nx-forefront-prvs: 02543CD7CD\nx-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(366004)(136003)(396003)(39860400002)(346002)(376002)(189003)(199004)(6512007)(52116002)(64756008)(86362001)(186003)(8936002)(6486002)(4326008)(2906002)(54906003)(66476007)(71200400001)(66556008)(66946007)(36756003)(26005)(81156014)(81166006)(5660300002)(8676002)(6506007)(478600001)(66446008)(1076003)(2616005)(316002)(6916009);DIR:OUT;SFP:1102;SCL:1;SRVR:AM0PR02MB4386;H:AM0PR02MB5553.eurprd02.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1;\nx-ms-exchange-senderadcheck: 1\nx-microsoft-antispam: BCL:0;\nx-microsoft-antispam-message-info: e4pRuDFPAcL6s+eDgRdWK3fVdAhp9PxWUVaUrBJ8R5xNELg4IptDimz7SKD228T4Mpu6Womhg+nTd26dw3AwKmKNSXgG73rYgL4fZQXMe3Ncf7gxEARtqag0B9o6wgkEtiQI0iEKr6169waPvlC/h48IFkK/rSvQq99igiuHkuqsAaoTPgkcNt0hV4ufdfedgvdTCut3dH8xZEiKaNyYAVcHuFIgDZHatGAcTxt1gxbD6/BMAPepgbakhrLvuuZQNawEBVh/CAKMJmTbvyHiDYPtvsi41b2HIFmIZCZ5TNafvWgOMb0HEk8psx2STVw6EmY2cxld+RSTsx+Ywh9OIC4vTHpjh1pgoBVbmopuZh+KRepkpyfc5Fyw4bN51UGiji+AnyNUCfrunjJ07uwzGbd97E1nDKfjVP8HKcPFwe7rEI/wPtjMN184qVNLhgbB\nContent-Type: text/plain; charset=\"utf-8\"\nContent-ID: <6723024B440EC240AB191EC15FBD9BD3@eurprd02.prod.outlook.com>\nContent-Transfer-Encoding: base64\nX-MS-Exchange-CrossTenant-Network-Message-Id: c1a01afe-51c6-4cc6-89c2-08d783038bb2\nX-MS-Exchange-CrossTenant-originalarrivaltime: 17 Dec 2019 15:12:34.9937\n (UTC)\nX-MS-Exchange-CrossTenant-fromentityheader: Hosted\nX-MS-Exchange-CrossTenant-id: 487baf29-f1da-469a-9221-243f830c36f3\nX-MS-Exchange-CrossTenant-mailboxtype: HOSTED\nX-MS-Exchange-CrossTenant-userprincipalname: AIk4KbwPHZV1QNglVJtBdgpq7WvRljvY6i1yFB0WJcRsn/GofL6SYt8pNdcGp0kqrHAE8UHto4fQoDcD/9yAsno8UxJeFIXN5kZFObrfYm0=\nX-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR02MB4386\nReturn-Path: aisaila@bitdefender.com\nX-MS-Exchange-Organization-Network-Message-Id: 3e5a23ab-6ab2-4622-71d9-08d783038e01\nX-MS-Exchange-Organization-AVStamp-Enterprise: 1.0\nX-MS-Exchange-Organization-AuthSource: LASPEX02MSOL01.citrite.net\nX-MS-Exchange-Organization-AuthAs: Anonymous\nMIME-Version: 1.0\n\nU2lnbmVkLW9mZi1ieTogQWxleGFuZHJ1IElzYWlsYSA8YWlzYWlsYUBiaXRkZWZlbmRlci5jb20+\nDQotLS0NCkNDOiBKdW4gTmFrYWppbWEgPGp1bi5uYWthamltYUBpbnRlbC5jb20+DQpDQzogS2V2\naW4gVGlhbiA8a2V2aW4udGlhbkBpbnRlbC5jb20+DQpDQzogR2VvcmdlIER1bmxhcCA8Z2Vvcmdl\nLmR1bmxhcEBldS5jaXRyaXguY29tPg0KQ0M6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNv\nbT4NCkNDOiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPg0KQ0M6IFdl\naSBMaXUgPHdsQHhlbi5vcmc+DQpDQzogIlJvZ2VyIFBhdSBNb25uw6kiIDxyb2dlci5wYXVAY2l0\ncml4LmNvbT4NCi0tLQ0KIHhlbi9hcmNoL3g4Ni9tbS9wMm0tZXB0LmMgfCA2IC0tLS0tLQ0KIHhl\nbi9hcmNoL3g4Ni9tbS9wMm0uYyAgICAgfCA2ICsrKysrKw0KIDIgZmlsZXMgY2hhbmdlZCwgNiBp\nbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQ0KDQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2\nL21tL3AybS1lcHQuYyBiL3hlbi9hcmNoL3g4Ni9tbS9wMm0tZXB0LmMNCmluZGV4IGUwODhhNjNm\nNTYuLjM2MmY3MDc5YWIgMTAwNjQ0DQotLS0gYS94ZW4vYXJjaC94ODYvbW0vcDJtLWVwdC5jDQor\nKysgYi94ZW4vYXJjaC94ODYvbW0vcDJtLWVwdC5jDQpAQCAtMTM1OCwxMyArMTM1OCw3IEBAIHZv\naWQgcDJtX2luaXRfYWx0cDJtX2VwdChzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgaSkN\nCiAgICAgc3RydWN0IHAybV9kb21haW4gKmhvc3RwMm0gPSBwMm1fZ2V0X2hvc3RwMm0oZCk7DQog\nICAgIHN0cnVjdCBlcHRfZGF0YSAqZXB0Ow0KIA0KLSAgICBwMm0tPmRlZmF1bHRfYWNjZXNzID0g\naG9zdHAybS0+ZGVmYXVsdF9hY2Nlc3M7DQotICAgIHAybS0+ZG9tYWluID0gaG9zdHAybS0+ZG9t\nYWluOw0KLQ0KLSAgICBwMm0tPmdsb2JhbF9sb2dkaXJ0eSA9IGhvc3RwMm0tPmdsb2JhbF9sb2dk\naXJ0eTsNCiAgICAgcDJtLT5lcHQuYWQgPSBob3N0cDJtLT5lcHQuYWQ7DQotICAgIHAybS0+bWlu\nX3JlbWFwcGVkX2dmbiA9IGdmbl94KElOVkFMSURfR0ZOKTsNCi0gICAgcDJtLT5tYXhfbWFwcGVk\nX3BmbiA9IHAybS0+bWF4X3JlbWFwcGVkX2dmbiA9IDA7DQogICAgIGVwdCA9ICZwMm0tPmVwdDsN\nCiAgICAgZXB0LT5tZm4gPSBwYWdldGFibGVfZ2V0X3BmbihwMm1fZ2V0X3BhZ2V0YWJsZShwMm0p\nKTsNCiAgICAgZC0+YXJjaC5hbHRwMm1fZXB0cFthcnJheV9pbmRleF9ub3NwZWMoaSwgTUFYX0VQ\nVFApXSA9IGVwdC0+ZXB0cDsNCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbW0vcDJtLmMgYi94\nZW4vYXJjaC94ODYvbW0vcDJtLmMNCmluZGV4IDI1M2NhYjM0NTguLmQzODFmNjg3N2YgMTAwNjQ0\nDQotLS0gYS94ZW4vYXJjaC94ODYvbW0vcDJtLmMNCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS9wMm0u\nYw0KQEAgLTI1NTksNiArMjU1OSwxMiBAQCBzdGF0aWMgaW50IHAybV9hY3RpdmF0ZV9hbHRwMm0o\nc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IGlkeCkNCiAgICAgICAgIGdvdG8gb3V0Ow0K\nICAgICB9DQogDQorICAgIHAybS0+ZGVmYXVsdF9hY2Nlc3MgPSBob3N0cDJtLT5kZWZhdWx0X2Fj\nY2VzczsNCisgICAgcDJtLT5kb21haW4gPSBob3N0cDJtLT5kb21haW47DQorICAgIHAybS0+Z2xv\nYmFsX2xvZ2RpcnR5ID0gaG9zdHAybS0+Z2xvYmFsX2xvZ2RpcnR5Ow0KKyAgICBwMm0tPm1pbl9y\nZW1hcHBlZF9nZm4gPSBnZm5feChJTlZBTElEX0dGTik7DQorICAgIHAybS0+bWF4X21hcHBlZF9w\nZm4gPSBwMm0tPm1heF9yZW1hcHBlZF9nZm4gPSAwOw0KKw0KICAgICBwMm1faW5pdF9hbHRwMm1f\nZXB0KGQsIGlkeCk7DQogDQogIG91dDoNCi0tIA0KMi4xNy4xDQoNCg==\n\nFrom - Wed Dec 18 10:46:18 2019\nReceived: from FTLPEX02AMS01.citrite.net (10.13.108.166) by\n AMSPEX02CL01.citrite.net (10.69.22.125) with Microsoft SMTP Server (TLS) id\n 15.0.1473.3 via Mailbox Transport; Tue, 17 Dec 2019 16:12:46 +0100\nReceived: from LASPEX02MSOL02.citrite.net (10.160.21.46) by\n FTLPEX02AMS01.citrite.net (10.13.108.166) with Microsoft SMTP Server (TLS) id\n 15.0.1473.3; Tue, 17 Dec 2019 10:12:45 -0500\nReceived: from esa6.hc3370-68.iphmx.com (10.160.38.12) by\n LASPEX02MSOL02.citrite.net (10.160.21.46) with Microsoft SMTP Server (TLS) id\n 15.0.1473.3 via Frontend Transport; Tue, 17 Dec 2019 07:12:45 -0800\nReceived-SPF: None (esa6.hc3370-68.iphmx.com: no sender\n  authenticity information available from domain of\n  aisaila@bitdefender.com) identity=pra;\n  client-ip=40.107.2.123; receiver=esa6.hc3370-68.iphmx.com;\n  envelope-from=\"aisaila@bitdefender.com\";\n  x-sender=\"aisaila@bitdefender.com\";\n  x-conformance=sidf_compatible\nReceived-SPF: Pass (esa6.hc3370-68.iphmx.com: domain of\n  aisaila@bitdefender.com designates 40.107.2.123 as permitted\n  sender) identity=mailfrom; client-ip=40.107.2.123;\n  receiver=esa6.hc3370-68.iphmx.com;\n  envelope-from=\"aisaila@bitdefender.com\";\n  x-sender=\"aisaila@bitdefender.com\";\n  x-conformance=sidf_compatible; x-record-type=\"v=spf1\";\n  x-record-text=\"v=spf1 ip4:40.92.0.0/15 ip4:40.107.0.0/16\n  ip4:52.100.0.0/14 ip4:104.47.0.0/17 ip6:2a01:111:f400::/48\n  ip6:2a01:111:f403::/48 -all\"\nReceived-SPF: Pass (esa6.hc3370-68.iphmx.com: domain of\n  postmaster@EUR02-VE1-obe.outbound.protection.outlook.com\n  designates 40.107.2.123 as permitted sender) identity=helo;\n  client-ip=40.107.2.123; receiver=esa6.hc3370-68.iphmx.com;\n  envelope-from=\"aisaila@bitdefender.com\";\n  x-sender=\"postmaster@EUR02-VE1-obe.outbound.protection.outlook.com\";\n  x-conformance=sidf_compatible; x-record-type=\"v=spf1\";\n  x-record-text=\"v=spf1 ip4:40.92.0.0/15 ip4:40.107.0.0/16\n  ip4:52.100.0.0/14 ip4:104.47.0.0/17 ip6:2a01:111:f400::/48\n  ip6:2a01:111:f403::/48 -all\"\nAuthentication-Results: esa6.hc3370-68.iphmx.com; spf=None smtp.pra=aisaila@bitdefender.com; spf=Pass smtp.mailfrom=aisaila@bitdefender.com; spf=Pass smtp.helo=postmaster@EUR02-VE1-obe.outbound.protection.outlook.com; dkim=pass (signature verified) header.i=@bitdefender.onmicrosoft.com\nIronPort-SDR: nGAb3eA9Sbc9iZuJr4Fergwi3EVWhqvxtnt563Axx6RJ2qnf8udqFPUPtyGwDiyoEg9ykwyv8A\n hXYlT4o/ydC7i4iJCUJ0gOXlsfCjrST7G8D1N2/Qx3gsHKPyE4EsXkQK6Hgx2XE63w9LOiKoh6\n BGPooJrXe0gsUwfr7H75bVFZ9bOvikJU10rEIfyl/7Q3rJeOUjbF7hA3XGOHn6i6NgYE/T41zC\n uENkisdgTWHeujm0bP8mGeCRpwmVEDeufBoLtW8mD/JflFBF9ipZUdqHPFNFblpdwuDHQfzxd0\n oTArjDzMZAJP1VMeceoDzG5l\nX-IronPort-RemoteIP: 40.107.2.123\nX-IronPort-MID: 10228222\nX-IronPort-Reputation: 3.5\nX-IronPort-Listener: InboundMail\nX-IronPort-SenderGroup: SBRS_Whitelist\nX-IronPort-MailFlowPolicy: $ACCEPTED\nX-SBRS: 3.5\nX-MesageID: 10228222\nX-Ironport-Server: esa6.hc3370-68.iphmx.com\nX-Remote-IP: 40.107.2.123\nX-Policy: $ACCEPTED\nIronPort-PHdr: =?us-ascii?q?9a23=3AmtYeIxFdULJbAtTngD2zpp1GYnF86YWxBRYc79?=\n =?us-ascii?q?8ds5kLTJ76p8i6bnLW6fgltlLVR4KTs6sC17ON9fq4BidfuN6oizMrSNR0TR?=\n =?us-ascii?q?gLiMEbzUQLIfWuLgnFFsPsdDEwB89YVVVorDmROElRH9viNRWJ+iXhpTEdFQ?=\n =?us-ascii?q?/iOgVrO+/7BpDdj9it1+C15pbffxhEiCCybL9vIhi6txvdutUUjIdtKKs91w?=\n =?us-ascii?q?bCr2dVdehR2W5mP0+YkQzm5se38p5j8iBQtOwk+sVdT6j0fLk2QKJBAjg+PG?=\n =?us-ascii?q?87+MPktR/YTQuS/XQcSXkZkgBJAwfe8h73WIr6vzbguep83CmaOtD2TawxVD?=\n =?us-ascii?q?+/4apnVAPkhSEaPDMi7mrZltJ/g75aoBK5phxw3YjUYJ2ONPFjeq/RZM4WSX?=\n =?us-ascii?q?ZdUspUUSFKH4GyYJYVD+cZPehWsZTzp0cAoxW9CwmjBuThyj5UiXH50qI3yP?=\n =?us-ascii?q?ghHhrc0QA8Bd8CrHbZodPoP6kSS+C1y6zIwC3fYvNSxzj855LHchY8rvGWQL?=\n =?us-ascii?q?J7bNffyVUxGAPLlFqQr5HuMTCI2OkRsGaV6fZtXv+ohmE9qgFxuSKgxsYoio?=\n =?us-ascii?q?bTnY8a0VHE9Tlkz4krK923Vkh7bsO6H5tKrS2VK4x2QsY7TmxupS00yaUGtI?=\n =?us-ascii?q?a0cSQW0pgr2gLTZv6df4SW+B7vSfidLDlgiH9hZb6znQu+/Eykx+HmS8W4zF?=\n =?us-ascii?q?lHojBEn9XUuHACyR/e5tSCR/Z4/UquxSiA2BzW5+xGIE05m6nWJpsjz7M+mZ?=\n =?us-ascii?q?ccrUHOEyzylUrriqKda18q9fKy6+v9Z7Xrvp+cOJFwigH5KqkglcKwD/gkPg?=\n =?us-ascii?q?QQRmSU9uuy2KD68U3+W7pFkOc6kq7EsJDGPssbobO5AwlI3Yo58xa/FTCm0M?=\n =?us-ascii?q?gGknYbMFJFeRWHj47zN1HJPfD4EfO/g1OrkDdo3fzJIrrhApDVInjClrfuY6?=\n =?us-ascii?q?p95lZTxQYv19xT+o5YB7MbLP7tQEP9qcLUAxEhPwyx2ennCdF91o0EWWKIB6?=\n =?us-ascii?q?+UKLndsV6T5u01IumMYJUatS3mJPgk+/7hkGE2mVEDcqmvwJQYdmq4Eu56LE?=\n =?us-ascii?q?WeZHrgms0BHnsSvgoiUOzqj0WPXz9NaHa1RaI86S80BJioA4feQICthKaO3D?=\n =?us-ascii?q?+gE5JIe2BKEEyDEXb0d4WeWvcNZzieLdNmkjwBTbKhUZMu1QmytA/mzLpqNu?=\n =?us-ascii?q?vU9TcetZ751th6/fHclRIp9TxzCcSQyH+CT3xukmwURj82wLp/oU1yy1uZza?=\n =?us-ascii?q?d4hPlYRpRv4KYDQgo8cJLR0eF+I9TzQR7aOMeETk68RderCi13Scg+iZdac0?=\n =?us-ascii?q?t7XtmvkB3H9y6rGKMO0ayGAoQu9aDR1GS3INxynSXozq4k2nAiT9tGM2G8m+?=\n =?us-ascii?q?ZE6wXdDoiBsn6wtoKDPfAV3TXE9WOK5WCPoE1VXgN2XajfG3sYYx2F/pzC+k?=\n =?us-ascii?q?reQur2WvwcOQxbxJvHc/MSM4C7oXZnYbLOJt3afmutmmC2WUvSlK3ZNdmicj?=\n =?us-ascii?q?AHxyyYE0gNyV1Nrj6NYBIzAi6xrm6ZFjFqHELibxCJk6Fy/Xm6UkM5wQyMY0?=\n =?us-ascii?q?B7kb2z/x8en/uHTP0PmLkDvXRpsGBvEVKw1M7REYDFrQt9cKhSbNUx7U0C0m?=\n =?us-ascii?q?TctgdnOYenIbwnjVkbIGEV90O7+Q9wD9dsmNQn/kg3xgh/Ir7K9V5abDqX0N?=\n =?us-ascii?q?XRFu/8LW/u8RazLpLHwlyM9fez1+Ix5e4jqlLl7jHsM3Fn3mVs09BT3HbZ3Z?=\n =?us-ascii?q?jMAAcIeL7aUks89EsfxfnQYnwl/oDK2SIxMYC/uWWc4uwUFfod0jn5Y+ZiDq?=\n =?us-ascii?q?WpRUzKN5NLCOG/Isosv1SAO0FhXqhYoZUWLfL2UKfYx76rObhChzD7qHRW7c?=\n =?us-ascii?q?Nb+32x23VVFv/DwsgImNup9yamRhDtoGe7uNnai6NPVyBORECf7hHrFIBadr?=\n =?us-ascii?q?J3dqstMEq+BuK0n9tO3oeyZDl6zHWOPkwB+deFexOYUQan4SBtjRU4uiW5wX?=\n =?us-ascii?q?ea7jB0nxF1pa+g/w3I2NrYbTECJ0pQWWg4lHewLJatv8hKXmXxNhoujwq8vk?=\n =?us-ascii?q?Thw5QYlI58Fm2OYm5QcH2lZ3EnU7G3sKKFedIK8p4zrCFLBfy1ekvJEOSvig?=\n =?us-ascii?q?YG0y7lA2pVzSw6cDfvgJjighhmkzjDdiR+t3OHP8F7nkyAvJmCFbhQxjoDVG?=\n =?us-ascii?q?9zjjyETkOkMYyP+tOZ34zGrvj4T3ioA5RSaiDqyYqoviqn6WBkDBuzkur1kd?=\n =?us-ascii?q?riQkAhySGu79BxTm3TqQrkJIzi1qC0K+ViK0BpH1b978NSEIBinoY+iZcc1G?=\n =?us-ascii?q?JcjZKQrjIciWmmCdxAwurlaWYVAz4Gx9mA+A/+xEhqNW6E3arUa0/FmI5fSo?=\n =?us-ascii?q?D/ZWkbnCUg88pNFaGYqqRemjd4qUa5qgSXZuVhmjAayr0l73tJy+0KuQ941i?=\n =?us-ascii?q?yGGfhSBkhXOyXwig6Fp86ztqRZZWujMPCw2UNykMrnDeSqqABAVHv3d5EuED?=\n =?us-ascii?q?U26cN6MVnW12b05J2ic97VNIhBjBCfnhbeguQQE6ofzaNW1wxgP2+1/XA+wr?=\n =?us-ascii?q?B9jRc1hs7i+dbXbWR1/KepRBVfM2+9YcRb4TzrgatE+6Tel4myApVsHCkKV5?=\n =?us-ascii?q?r0XLqpFjwVr/HuKweJFnU1tH6aHbPVGQLX5l1hqjrDFJWiNnffI3d8r50qTR?=\n =?us-ascii?q?iGLU1biSgeXSk2k5A0EAyn3orqd0I4rjEd61jkqwddn/pyPkqaMC+XrwOpZz?=\n =?us-ascii?q?EoDZmHeUYOqFgauAGPd5XEtbE7BSxT85y/oRbYJ3eSOUJIBjpSBRTBWQClP6?=\n =?us-ascii?q?Gu4MmG+O+dVY/cZ7PDZ6uDretGWrKG35Wqh8Fv/i2FN8GGFnNjE/E21EdFUX?=\n =?us-ascii?q?1jXc/enn9cLk5f3zKIdMOdqBqmr2d+r9u28fDicAju+YeCBbZUPdh1vRuxhO?=\n =?us-ascii?q?3QUozYzDY8IjFe2JQWwHbOw7VKx18ehRZlcDy1GKgBvyrAFfiCoKJcAh8FZi?=\n =?us-ascii?q?82D/Nms/NmjDFEItWTyt7u3+A+jvVuUAgdEAKx3MCxZckaZWq6MQGPCEGOPb?=\n =?us-ascii?q?WAbTrFpqO/Kaq9UrRRiOx8vRystTuVHknvMy7FnD7sHxyiKuBDiiiHMQcW5N?=\n =?us-ascii?q?n7K04yTzKlFYi9IhSgeMd6lzg33aE5ihaofSYHPD5wflkM5ryc4CVEg+luTm?=\n =?us-ascii?q?lI735rN+6ByG6S6+jVLIpTsOM+XnwyzroFpi58kuEOv0QmDLRvlSDfr8BjuQ?=\n =?us-ascii?q?SrieDRjDpsC0ER8nMV1MSKpUVnKePS8ZwTPBSMtB8L82iUDAwH4tV/Ddi68a?=\n =?us-ascii?q?lR0dHOkKvbIjZe/9/a8M0QCtKSI8WCeilEU1KhCHvPAQ0JQCT+f2jenEVclP?=\n =?us-ascii?q?i6/HyJopU0p57glYBIQbheHg9QdLtSGgFuG9oMJ41yVzUvnOuAjcIG0nG5qQ?=\n =?us-ascii?q?HYWMRQup2UHuLXG/jkLyyVyKVVfxZdi62tNpwdb8eovi4qIkk/honBHFDcGM?=\n =?us-ascii?q?xAsjE0JBFhu11DqTB/VjFhhxqjO1nruDlLUqfp1h8u1lkiOaJ0rGiquxFvYQ?=\n =?us-ascii?q?OUwUl42EgpxYe423bIKGa3dOHoGtgKQyvs6xpoas+9H1kzNUvq2hU7fDbcGe?=\n =?us-ascii?q?ALhuM5Jzky0V3S5cMXS6wbEf0hAldYxOnJNa8hiQ0O83z+l0EbvbCXW9w+xE?=\n =?us-ascii?q?NveJqo5SsaiThuZ9M0O6HcYZFx4AUN2vC2tzSznqA82wZAYUYGqzjNIGtW6A?=\n =?us-ascii?q?oJLrkjN2yj+ek+oQCFnjJCfiALWZ9I6rpy8VghPu2b0y/6+5N+EBjrctKydu?=\n =?us-ascii?q?aesWWGktOUSFQt0E9Oj1NC4bV9zcYkdQyTSlwry7ySUR8OMK+gYUlZYtFT+3?=\n =?us-ascii?q?7aYSuV+bmVh8stYMPnULmyFqeHr+4Mj1ihHRo1EohE9ckHEpS2kQnZIcrhML?=\n =?us-ascii?q?8Z2EAt6QDsdzDnRLxCfBOGlitCotnqkMcxhNECYGtbWD8mYm2t673apxEnmq?=\n =?us-ascii?q?+OR95oJHcRBdBbbjdoCIu7gy5crzJLCzzkt4BRgAWE8TL4oTzdSTfmaN82Lv?=\n =?us-ascii?q?6VfhptDNie8zQj/6W4hFjb/4+YLGb/f4cH2JeH+aYBqpCLBukBB6F6qFvZkp?=\n =?us-ascii?q?JESmaCflP1SYTwGbWpLo4mYJrzF2qwVUG5h3QtVcDtMd2xL6+Oxwb1WYJTt4?=\n =?us-ascii?q?rd1zcmf5zYdHlWC1J7oOcN47h5bAsIbs8gYBLmgA85MrS2PAaS1tj9C3boMz?=\n =?us-ascii?q?ZdSONTiPmrf7EChTR5dfe0kTFzK/Nyh/ny60MGQ4sGyw3T1er2LZcLSjD9Qz?=\n =?us-ascii?q?RcY1md+XJ/xjInbqBqhb5iiBLQ7QtAa3bSLLMvMCoc+IhiYDHaaXRuVjhlHR?=\n =?us-ascii?q?nF1dKFukj0mOlOtypFw4QNibED7Ce45tmHJ2vzEK2z98ePunJ5P4F/+v9/bd?=\n =?us-ascii?q?S7cJnB6MO7/HSXTYGO4FeMCHfoTqMDyNYMeHkKEr4UySlgMMgC89Mdu3p0bd?=\n =?us-ascii?q?83Ivl0MIdpvqqjMGU2By8OwSIXWoWM0SZEieC5ieODy0WgNa86ORlBi61sx9?=\n =?us-ascii?q?sQVykqPXEzmZX7DcDoujbBTWIGZgAO8Q5L+QQM0Jdqefzo65bJS5kKzCNKp/?=\n =?us-ascii?q?VzUW3AEZw6rgKqGFHTukDxTbCaq8Ls2AtTyPz21dxCB0x1CFRRyuhbkEclMv?=\n =?us-ascii?q?d8LKxC54M=3D?=\nX-IronPort-Anti-Spam-Filtered: true\nX-IronPort-Anti-Spam-Result: =?us-ascii?q?A0GvAQBv7/hdh3sCayhlHgELHINJKSe?=\n =?us-ascii?q?BZgMECyoKg3qDRgOFOoVUlmuGTAMYPAkEAQEKAS0CAQEBAYQ+AheCHwYBBDQ?=\n =?us-ascii?q?TAgECAQwBAQEDAQEBAgECAwICAQECEAEBAQgNCQgphT4BC4I7KQFpOTgBAQE?=\n =?us-ascii?q?BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEFAoEMPgIBAxIRBA0?=\n =?us-ascii?q?MAQE3AQ8CASICJgICAjAVEAIEDgUigjVLgkcDLwIBogM9AiMBPwILgQQpiGA?=\n =?us-ascii?q?BAXR/M4J+AQEFhRkYWIE/CYEOKIc/glOCGgaBQT+BEYJlbIRIGCOCVoJej3w?=\n =?us-ascii?q?5nlQoghaWBCeaSS2OIJpNAgQCBAUCDgEBBYFpgXszIhsVgydQERSNEgwOCRW?=\n =?us-ascii?q?DO4pTQgExAYEnj0gBgQ8BAQ?=\nX-IPAS-Result: =?us-ascii?q?A0GvAQBv7/hdh3sCayhlHgELHINJKSeBZgMECyoKg3qDR?=\n =?us-ascii?q?gOFOoVUlmuGTAMYPAkEAQEKAS0CAQEBAYQ+AheCHwYBBDQTAgECAQwBAQEDA?=\n =?us-ascii?q?QEBAgECAwICAQECEAEBAQgNCQgphT4BC4I7KQFpOTgBAQEBAQEBAQEBAQEBA?=\n =?us-ascii?q?QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEFAoEMPgIBAxIRBA0MAQE3AQ8CASICJ?=\n =?us-ascii?q?gICAjAVEAIEDgUigjVLgkcDLwIBogM9AiMBPwILgQQpiGABAXR/M4J+AQEFh?=\n =?us-ascii?q?RkYWIE/CYEOKIc/glOCGgaBQT+BEYJlbIRIGCOCVoJej3w5nlQoghaWBCeaS?=\n =?us-ascii?q?S2OIJpNAgQCBAUCDgEBBYFpgXszIhsVgydQERSNEgwOCRWDO4pTQgExAYEnj?=\n =?us-ascii?q?0gBgQ8BAQ?=\nX-IronPort-AV: E=Sophos;i=\"5.69,325,1571716800\"; \n   d=\"scan'208\";a=\"10228222\"\nX-Amp-Result: SKIPPED(no attachment in message)\nX-Amp-File-Uploaded: False\nX-IronPort-Outbreak-Status: No, level 0, Unknown - Unknown\nX-MGA-submission: =?us-ascii?q?MDEVpuULf5u9cOc3D5DvTaUSB+5GE0BdTY6pRO?=\n =?us-ascii?q?XGYMJvsWzyQ6cf+b+4Vk5HJyoIteHv4NdBn6iDIZeNbS5VJb2LHnFjXR?=\n =?us-ascii?q?L3EPPS8nXqzb0llb0HPlErmDKpLoc71jl4L/S8SoP770Qfc7h30At0D+?=\n =?us-ascii?q?HcGt+ZUby2pcEA4ursoZJfYw=3D=3D?=\nReceived: from mail-eopbgr20123.outbound.protection.outlook.com (HELO EUR02-VE1-obe.outbound.protection.outlook.com) ([40.107.2.123])\n  by esa6.hc3370-68.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Dec 2019 10:12:43 -0500\nARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=nJS4Eg07+fBcFtVTgBMretvZBZ7ai7dElJStp/MAL9oJ8+iB70l/Zxt8hw4ZX8W3TzIlTV0s+ZGJLKo6DdZMh+Yel5G43A3U5iZRcwv5mufJzyboyy7lUJd+IMB87Ea3hZn5uVq1SdYNsw4QBD4DzyhbSY+k600PvyVcfqp+lekbkMlaatKwQq+K/lu/IKZGMrvsVSBsygz6c8zpTY1067vo+sLfsQGuZICpGr6kY27kQCIIg9A2zcM29YeguxBqsCvVC+mlCIuV99W1g7aHNID45rFvu7bfFqCShCIeV0Gf65o5UHH1ZoWE7b9OCLiE0ezffX6c/XsOIdF43tKyDw==\nARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector9901;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=pqkvd75hAcc26QVUyyPpG1tYUVnE9+PL69gAybNnLdA=;\n b=VDTi2LdWW/cfC3qOdvTUtDAvVl60wCVeHTRm7lVnQwASjS67cFNNHis55Bt2hLBPINwpXppbF3mr5FXdULs1Kelw27GxlCYg3JrCEFptg3alhf8zlm5i+Ih9faz9mR+YPKJtQJSsbVObKWsGUc9KKBWeAEkWqt4p0/HODlVnZjzk8EViTHWX6tjx2Ba7f44+8xE7OvH9KCjNEfcc2RdTicIta3JqWxqg30Np5URM2F6FzULO/c2X88w9IF+hQLIDG1/6qVaMaffAMOimePecNLG6M2ptP6p6QOaLkD7bLPdxfjvHcecgXBzBOfj6Jouv4SJKEAoXQecqQQorC9pqWw==\nARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=bitdefender.com; dmarc=pass action=none\n header.from=bitdefender.com; dkim=pass header.d=bitdefender.com; arc=none\nDKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=bitdefender.onmicrosoft.com; s=selector2-bitdefender-onmicrosoft-com;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=pqkvd75hAcc26QVUyyPpG1tYUVnE9+PL69gAybNnLdA=;\n b=SJzY8O46wxhm6Jsj5Mxye+NAWUD7A4ycu6e3BYAEIyOyDXrbqEzKcZy42BHOQgxfcxwmcENQExMGk1fX1q7W/JPCEQwoIpDjabV22TEU09Gs1v04JIdhdH4cmWKInsVRqCmuLsui2qH4evqXp8jE11zosyq3jslT+XBkQl5KApg=\nReceived: from AM0PR02MB5553.eurprd02.prod.outlook.com (10.255.30.78) by\n AM0PR02MB4386.eurprd02.prod.outlook.com (20.178.17.212) with Microsoft SMTP\n Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n 15.20.2538.20; Tue, 17 Dec 2019 15:12:42 +0000\nReceived: from AM0PR02MB5553.eurprd02.prod.outlook.com\n ([fe80::8cec:7638:734c:89d]) by AM0PR02MB5553.eurprd02.prod.outlook.com\n ([fe80::8cec:7638:734c:89d%4]) with mapi id 15.20.2538.019; Tue, 17 Dec 2019\n 15:12:42 +0000\nFrom: Alexandru Stefan ISAILA <aisaila@bitdefender.com>\nTo: \"xen-devel@lists.xenproject.org\" <xen-devel@lists.xenproject.org>\nCC: Alexandru Stefan ISAILA <aisaila@bitdefender.com>, Jan Beulich\n\t<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu\n\t<wl@xen.org>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>,\n\tGeorge Dunlap <George.Dunlap@eu.citrix.com>, Ian Jackson\n\t<ian.jackson@eu.citrix.com>, Julien Grall <julien@xen.org>, \"Konrad Rzeszutek\n Wilk\" <konrad.wilk@oracle.com>, Stefano Stabellini <sstabellini@kernel.org>,\n\tRazvan COJOCARU <rcojocaru@bitdefender.com>, Tamas K Lengyel\n\t<tamas@tklengyel.com>, Petre Ovidiu PIRCALABU <ppircalabu@bitdefender.com>,\n\tGeorge Dunlap <george.dunlap@eu.citrix.com>\nSubject: [PATCH V4 4/4] x86/mm: Make use of the default access param from\n xc_altp2m_create_view\nThread-Topic: [PATCH V4 4/4] x86/mm: Make use of the default access param from\n xc_altp2m_create_view\nThread-Index: AQHVtOxtPhIY/fNOfU26Nr2n4YFnQg==\nDate: Tue, 17 Dec 2019 15:12:41 +0000\nMessage-ID: <20191217151144.9781-4-aisaila@bitdefender.com>\nReferences: <20191217151144.9781-1-aisaila@bitdefender.com>\nIn-Reply-To: <20191217151144.9781-1-aisaila@bitdefender.com>\nAccept-Language: en-US\nContent-Language: en-US\nX-MS-Has-Attach:\nX-MS-TNEF-Correlator:\nx-clientproxiedby: AM0PR01CA0067.eurprd01.prod.exchangelabs.com\n (2603:10a6:208:e6::44) To AM0PR02MB5553.eurprd02.prod.outlook.com\n (2603:10a6:208:160::14)\nx-ms-exchange-messagesentrepresentingtype: 1\nx-mailer: git-send-email 2.17.1\nx-originating-ip: [91.199.104.6]\nx-ms-publictraffictype: Email\nx-ms-office365-filtering-correlation-id: d1c7465d-82bc-4165-5826-08d783038fd7\nx-ms-traffictypediagnostic: AM0PR02MB4386:|AM0PR02MB4386:|AM0PR02MB4386:\nx-ms-exchange-transport-forked: True\nx-microsoft-antispam-prvs: <AM0PR02MB438698F6D3702C0E5BE4C7B0AB500@AM0PR02MB4386.eurprd02.prod.outlook.com>\nx-ms-oob-tlc-oobclassifiers: OLM:2582;\nx-forefront-prvs: 02543CD7CD\nx-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(366004)(136003)(396003)(39860400002)(346002)(376002)(189003)(199004)(7416002)(6512007)(52116002)(64756008)(86362001)(186003)(8936002)(6486002)(4326008)(2906002)(54906003)(66476007)(71200400001)(66556008)(66946007)(36756003)(26005)(81156014)(81166006)(5660300002)(8676002)(6506007)(478600001)(66446008)(1076003)(2616005)(316002)(6916009);DIR:OUT;SFP:1102;SCL:1;SRVR:AM0PR02MB4386;H:AM0PR02MB5553.eurprd02.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1;\nx-ms-exchange-senderadcheck: 1\nx-microsoft-antispam: BCL:0;\nx-microsoft-antispam-message-info: Hvb8sdyrmFVpHcpMuHblM/GFZ0y7JsgE8e6hrXWrE4pUL+DhxOXTPUUCf7szvpsA//KDM+hj2zVlUcgVXlceThYKX3r1+jMqWZK/B9bRwH8IZWMZ/V269Tt343OrxhKK2lfUR+rI6iSlaMz5aZH15Nll1RQrHV2X53yCubu/NCSh/UJsUa6j67SCYJD9bCxS7h05r9i+6oG8kmbL3lZXoIFM76QyWftafbmYdCLhP+UITzbM6TTkDJCFh7nZw7Urdqy1nr00O9idYOlYvUElkq4Kv6nPfeBxST/PuzGJ8xgKOI3s9yQKYpxnxiCgPNEaq/oVjKnFztEuEmfPspAbrDs/ykUzWqUiTN9GWyr2HQPhEGUCi2Cb0wxiP8tS9yfvnq2pg5QWYh/DsAGghxMWRGPD+EtCK9kKOgGlVLB4pFs1Z6wEVqICccitza+vLNND\nContent-Type: text/plain; charset=\"utf-8\"\nContent-ID: <CE425A9B4EFD9D44AB8E10D62D0B9390@eurprd02.prod.outlook.com>\nContent-Transfer-Encoding: base64\nX-MS-Exchange-CrossTenant-Network-Message-Id: d1c7465d-82bc-4165-5826-08d783038fd7\nX-MS-Exchange-CrossTenant-originalarrivaltime: 17 Dec 2019 15:12:41.8998\n (UTC)\nX-MS-Exchange-CrossTenant-fromentityheader: Hosted\nX-MS-Exchange-CrossTenant-id: 487baf29-f1da-469a-9221-243f830c36f3\nX-MS-Exchange-CrossTenant-mailboxtype: HOSTED\nX-MS-Exchange-CrossTenant-userprincipalname: PCR1X1DxL4hxn9Ih2pTkoY5HjUOuRUi2ixtjHso5vquAQESEKZvoKD/WR3CjE8wyFMnPPpeiXWFLyVTvpjnnSuL388r8QMGazJuBSJQ1zTQ=\nX-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR02MB4386\nReturn-Path: aisaila@bitdefender.com\nX-MS-Exchange-Organization-Network-Message-Id: 9fa57bc0-5c97-4872-ce1e-08d783039233\nX-MS-Exchange-Organization-AVStamp-Enterprise: 1.0\nX-MS-Exchange-Organization-AuthSource: LASPEX02MSOL02.citrite.net\nX-MS-Exchange-Organization-AuthAs: Anonymous\nMIME-Version: 1.0\n\nQXQgdGhpcyBtb21lbnQgdGhlIGRlZmF1bHRfYWNjZXNzIHBhcmFtIGZyb20geGNfYWx0cDJtX2Ny\nZWF0ZV92aWV3IGlzDQpub3QgdXNlZC4NCg0KVGhpcyBwYXRjaCBhc3NpZ25zIGRlZmF1bHRfYWNj\nZXNzIHRvIHAybS0+ZGVmYXVsdF9hY2Nlc3MgYXQgdGhlIHRpbWUgb2YNCmluaXRpYWxpemluZyBh\nIG5ldyBhbHRwMm0gdmlldy4NCg0KU2lnbmVkLW9mZi1ieTogQWxleGFuZHJ1IElzYWlsYSA8YWlz\nYWlsYUBiaXRkZWZlbmRlci5jb20+DQotLS0NCkNDOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3Vz\nZS5jb20+DQpDQzogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4NCkND\nOiBXZWkgTGl1IDx3bEB4ZW4ub3JnPg0KQ0M6ICJSb2dlciBQYXUgTW9ubsOpIiA8cm9nZXIucGF1\nQGNpdHJpeC5jb20+DQpDQzogR2VvcmdlIER1bmxhcCA8R2VvcmdlLkR1bmxhcEBldS5jaXRyaXgu\nY29tPg0KQ0M6IElhbiBKYWNrc29uIDxpYW4uamFja3NvbkBldS5jaXRyaXguY29tPg0KQ0M6IEp1\nbGllbiBHcmFsbCA8anVsaWVuQHhlbi5vcmc+DQpDQzogS29ucmFkIFJ6ZXN6dXRlayBXaWxrIDxr\nb25yYWQud2lsa0BvcmFjbGUuY29tPg0KQ0M6IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJlbGxp\nbmlAa2VybmVsLm9yZz4NCkNDOiBSYXp2YW4gQ29qb2NhcnUgPHJjb2pvY2FydUBiaXRkZWZlbmRl\nci5jb20+DQpDQzogVGFtYXMgSyBMZW5neWVsIDx0YW1hc0B0a2xlbmd5ZWwuY29tPg0KQ0M6IFBl\ndHJlIFBpcmNhbGFidSA8cHBpcmNhbGFidUBiaXRkZWZlbmRlci5jb20+DQpDQzogR2VvcmdlIER1\nbmxhcCA8Z2VvcmdlLmR1bmxhcEBldS5jaXRyaXguY29tPg0KLS0tDQpDaGFuZ2VzIHNpbmNlIFYz\nOg0KCS0gQ2hhbmdlIHR5cGUgb2YgaHZtbWVtX2RlZmF1bHRfYWNjZXNzIHRvIHhlbm1lbV9hY2Nl\nc3NfdA0KCS0gRml4IHN0eWxlIGlzc3Vlcw0KCS0gUmVsZWFzZSBsb2NrIGJlZm9yZSByZXR1cm4u\nDQotLS0NCiB4ZW4vYXJjaC94ODYvaHZtL2h2bS5jICAgICAgICAgIHwgIDMgKystDQogeGVuL2Fy\nY2gveDg2L21tL21lbV9hY2Nlc3MuYyAgICB8ICA2ICsrKy0tLQ0KIHhlbi9hcmNoL3g4Ni9tbS9w\nMm0uYyAgICAgICAgICAgfCAyNyArKysrKysrKysrKysrKysrKysrKysrLS0tLS0NCiB4ZW4vaW5j\nbHVkZS9hc20teDg2L3AybS5oICAgICAgIHwgIDMgKystDQogeGVuL2luY2x1ZGUvcHVibGljL2h2\nbS9odm1fb3AuaCB8ICAyIC0tDQogeGVuL2luY2x1ZGUveGVuL21lbV9hY2Nlc3MuaCAgICB8ICA0\nICsrKysNCiA2IGZpbGVzIGNoYW5nZWQsIDMzIGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygt\nKQ0KDQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9odm0uYyBiL3hlbi9hcmNoL3g4Ni9o\ndm0vaHZtLmMNCmluZGV4IGExMjkwNDlkNmIuLmQ0YjE5ZDI0MTIgMTAwNjQ0DQotLS0gYS94ZW4v\nYXJjaC94ODYvaHZtL2h2bS5jDQorKysgYi94ZW4vYXJjaC94ODYvaHZtL2h2bS5jDQpAQCAtNDY4\nNyw3ICs0Njg3LDggQEAgc3RhdGljIGludCBkb19hbHRwMm1fb3AoDQogICAgIH0NCiANCiAgICAg\nY2FzZSBIVk1PUF9hbHRwMm1fY3JlYXRlX3AybToNCi0gICAgICAgIGlmICggIShyYyA9IHAybV9p\nbml0X25leHRfYWx0cDJtKGQsICZhLnUudmlldy52aWV3KSkgKQ0KKyAgICAgICAgaWYgKCAhKHJj\nID0gcDJtX2luaXRfbmV4dF9hbHRwMm0oZCwgJmEudS52aWV3LnZpZXcsDQorICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhLnUudmlldy5odm1tZW1fZGVmYXVsdF9hY2Nl\nc3MpKSApDQogICAgICAgICAgICAgcmMgPSBfX2NvcHlfdG9fZ3Vlc3QoYXJnLCAmYSwgMSkgPyAt\nRUZBVUxUIDogMDsNCiAgICAgICAgIGJyZWFrOw0KIA0KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4\nNi9tbS9tZW1fYWNjZXNzLmMgYi94ZW4vYXJjaC94ODYvbW0vbWVtX2FjY2Vzcy5jDQppbmRleCA3\nMGYzNTI4YmIxLi4yODhjODY1ZmZhIDEwMDY0NA0KLS0tIGEveGVuL2FyY2gveDg2L21tL21lbV9h\nY2Nlc3MuYw0KKysrIGIveGVuL2FyY2gveDg2L21tL21lbV9hY2Nlc3MuYw0KQEAgLTMxNCw5ICsz\nMTQsOSBAQCBzdGF0aWMgaW50IHNldF9tZW1fYWNjZXNzKHN0cnVjdCBkb21haW4gKmQsIHN0cnVj\ndCBwMm1fZG9tYWluICpwMm0sDQogICAgIHJldHVybiByYzsNCiB9DQogDQotc3RhdGljIGJvb2wg\neGVubWVtX2FjY2Vzc190b19wMm1fYWNjZXNzKHN0cnVjdCBwMm1fZG9tYWluICpwMm0sDQotICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhlbm1lbV9hY2Nlc3NfdCB4YWNj\nZXNzLA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwMm1fYWNjZXNz\nX3QgKnBhY2Nlc3MpDQorYm9vbCB4ZW5tZW1fYWNjZXNzX3RvX3AybV9hY2Nlc3Moc3RydWN0IHAy\nbV9kb21haW4gKnAybSwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4ZW5tZW1f\nYWNjZXNzX3QgeGFjY2VzcywNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwMm1f\nYWNjZXNzX3QgKnBhY2Nlc3MpDQogew0KICAgICBzdGF0aWMgY29uc3QgcDJtX2FjY2Vzc190IG1l\nbWFjY2Vzc1tdID0gew0KICNkZWZpbmUgQUNDRVNTKGFjKSBbWEVOTUVNX2FjY2Vzc18jI2FjXSA9\nIHAybV9hY2Nlc3NfIyNhYw0KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0uYyBiL3hl\nbi9hcmNoL3g4Ni9tbS9wMm0uYw0KaW5kZXggZDM4MWY2ODc3Zi4uZDY3MzI2ZjhiNyAxMDA2NDQN\nCi0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0uYw0KKysrIGIveGVuL2FyY2gveDg2L21tL3AybS5j\nDQpAQCAtMjUsNiArMjUsNyBAQA0KIA0KICNpbmNsdWRlIDx4ZW4vZ3Vlc3RfYWNjZXNzLmg+IC8q\nIGNvcHlfZnJvbV9ndWVzdCgpICovDQogI2luY2x1ZGUgPHhlbi9pb21tdS5oPg0KKyNpbmNsdWRl\nIDx4ZW4vbWVtX2FjY2Vzcy5oPg0KICNpbmNsdWRlIDx4ZW4vdm1fZXZlbnQuaD4NCiAjaW5jbHVk\nZSA8eGVuL2V2ZW50Lmg+DQogI2luY2x1ZGUgPHB1YmxpYy92bV9ldmVudC5oPg0KQEAgLTI1MzMs\nNyArMjUzNCw4IEBAIHZvaWQgcDJtX2ZsdXNoX2FsdHAybShzdHJ1Y3QgZG9tYWluICpkKQ0KICAg\nICBhbHRwMm1fbGlzdF91bmxvY2soZCk7DQogfQ0KIA0KLXN0YXRpYyBpbnQgcDJtX2FjdGl2YXRl\nX2FsdHAybShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgaWR4KQ0KK3N0YXRpYyBpbnQg\ncDJtX2FjdGl2YXRlX2FsdHAybShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgaWR4LA0K\nKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwMm1fYWNjZXNzX3QgaHZtbWVtX2RlZmF1\nbHRfYWNjZXNzKQ0KIHsNCiAgICAgc3RydWN0IHAybV9kb21haW4gKmhvc3RwMm0sICpwMm07DQog\nICAgIGludCByYzsNCkBAIC0yNTU5LDcgKzI1NjEsNyBAQCBzdGF0aWMgaW50IHAybV9hY3RpdmF0\nZV9hbHRwMm0oc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IGlkeCkNCiAgICAgICAgIGdv\ndG8gb3V0Ow0KICAgICB9DQogDQotICAgIHAybS0+ZGVmYXVsdF9hY2Nlc3MgPSBob3N0cDJtLT5k\nZWZhdWx0X2FjY2VzczsNCisgICAgcDJtLT5kZWZhdWx0X2FjY2VzcyA9IGh2bW1lbV9kZWZhdWx0\nX2FjY2VzczsNCiAgICAgcDJtLT5kb21haW4gPSBob3N0cDJtLT5kb21haW47DQogICAgIHAybS0+\nZ2xvYmFsX2xvZ2RpcnR5ID0gaG9zdHAybS0+Z2xvYmFsX2xvZ2RpcnR5Ow0KICAgICBwMm0tPm1p\nbl9yZW1hcHBlZF9nZm4gPSBnZm5feChJTlZBTElEX0dGTik7DQpAQCAtMjU3Niw2ICsyNTc4LDcg\nQEAgc3RhdGljIGludCBwMm1fYWN0aXZhdGVfYWx0cDJtKHN0cnVjdCBkb21haW4gKmQsIHVuc2ln\nbmVkIGludCBpZHgpDQogaW50IHAybV9pbml0X2FsdHAybV9ieV9pZChzdHJ1Y3QgZG9tYWluICpk\nLCB1bnNpZ25lZCBpbnQgaWR4KQ0KIHsNCiAgICAgaW50IHJjID0gLUVJTlZBTDsNCisgICAgc3Ry\ndWN0IHAybV9kb21haW4gKmhvc3RwMm0gPSBwMm1fZ2V0X2hvc3RwMm0oZCk7DQogDQogICAgIGlm\nICggaWR4ID49IE1BWF9BTFRQMk0gKQ0KICAgICAgICAgcmV0dXJuIHJjOw0KQEAgLTI1ODMsMTYg\nKzI1ODYsMjIgQEAgaW50IHAybV9pbml0X2FsdHAybV9ieV9pZChzdHJ1Y3QgZG9tYWluICpkLCB1\nbnNpZ25lZCBpbnQgaWR4KQ0KICAgICBhbHRwMm1fbGlzdF9sb2NrKGQpOw0KIA0KICAgICBpZiAo\nIGQtPmFyY2guYWx0cDJtX2VwdHBbaWR4XSA9PSBtZm5feChJTlZBTElEX01GTikgKQ0KLSAgICAg\nICAgcmMgPSBwMm1fYWN0aXZhdGVfYWx0cDJtKGQsIGlkeCk7DQorICAgICAgICByYyA9IHAybV9h\nY3RpdmF0ZV9hbHRwMm0oZCwgaWR4LCBob3N0cDJtLT5kZWZhdWx0X2FjY2Vzcyk7DQogDQogICAg\nIGFsdHAybV9saXN0X3VubG9jayhkKTsNCiAgICAgcmV0dXJuIHJjOw0KIH0NCiANCi1pbnQgcDJt\nX2luaXRfbmV4dF9hbHRwMm0oc3RydWN0IGRvbWFpbiAqZCwgdWludDE2X3QgKmlkeCkNCitpbnQg\ncDJtX2luaXRfbmV4dF9hbHRwMm0oc3RydWN0IGRvbWFpbiAqZCwgdWludDE2X3QgKmlkeCwNCisg\nICAgICAgICAgICAgICAgICAgICAgICAgeGVubWVtX2FjY2Vzc190IGh2bW1lbV9kZWZhdWx0X2Fj\nY2VzcykNCiB7DQogICAgIGludCByYyA9IC1FSU5WQUw7DQogICAgIHVuc2lnbmVkIGludCBpOw0K\nKyAgICBwMm1fYWNjZXNzX3QgYTsNCisgICAgc3RydWN0IHAybV9kb21haW4gKnAybTsNCisNCisg\nICAgaWYgKCBodm1tZW1fZGVmYXVsdF9hY2Nlc3MgPiBYRU5NRU1fYWNjZXNzX2RlZmF1bHQgKQ0K\nKyAgICAgICAgcmV0dXJuIHJjOw0KIA0KICAgICBhbHRwMm1fbGlzdF9sb2NrKGQpOw0KIA0KQEAg\nLTI2MDEsNyArMjYxMCwxNSBAQCBpbnQgcDJtX2luaXRfbmV4dF9hbHRwMm0oc3RydWN0IGRvbWFp\nbiAqZCwgdWludDE2X3QgKmlkeCkNCiAgICAgICAgIGlmICggZC0+YXJjaC5hbHRwMm1fZXB0cFtp\nXSAhPSBtZm5feChJTlZBTElEX01GTikgKQ0KICAgICAgICAgICAgIGNvbnRpbnVlOw0KIA0KLSAg\nICAgICAgcmMgPSBwMm1fYWN0aXZhdGVfYWx0cDJtKGQsIGkpOw0KKyAgICAgICAgcDJtID0gZC0+\nYXJjaC5hbHRwMm1fcDJtW2ldOw0KKw0KKyAgICAgICAgaWYgKCAheGVubWVtX2FjY2Vzc190b19w\nMm1fYWNjZXNzKHAybSwgaHZtbWVtX2RlZmF1bHRfYWNjZXNzLCAmYSkgKQ0KKyAgICAgICAgew0K\nKyAgICAgICAgICAgIGFsdHAybV9saXN0X3VubG9jayhkKTsNCisgICAgICAgICAgICByZXR1cm4g\nLUVJTlZBTDsNCisgICAgICAgIH0NCisNCisgICAgICAgIHJjID0gcDJtX2FjdGl2YXRlX2FsdHAy\nbShkLCBpLCBhKTsNCiANCiAgICAgICAgIGlmICggIXJjICkNCiAgICAgICAgICAgICAqaWR4ID0g\naTsNCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L3AybS5oIGIveGVuL2luY2x1ZGUv\nYXNtLXg4Ni9wMm0uaA0KaW5kZXggOTQyODVkYjFiNC4uYWMyZDI3ODdmNCAxMDA2NDQNCi0tLSBh\nL3hlbi9pbmNsdWRlL2FzbS14ODYvcDJtLmgNCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvcDJt\nLmgNCkBAIC04ODQsNyArODg0LDggQEAgYm9vbCBwMm1fYWx0cDJtX2dldF9vcl9wcm9wYWdhdGUo\nc3RydWN0IHAybV9kb21haW4gKmFwMm0sIHVuc2lnbmVkIGxvbmcgZ2ZuX2wsDQogaW50IHAybV9p\nbml0X2FsdHAybV9ieV9pZChzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgaWR4KTsNCiAN\nCiAvKiBGaW5kIGFuIGF2YWlsYWJsZSBhbHRlcm5hdGUgcDJtIGFuZCBtYWtlIGl0IHZhbGlkICov\nDQotaW50IHAybV9pbml0X25leHRfYWx0cDJtKHN0cnVjdCBkb21haW4gKmQsIHVpbnQxNl90ICpp\nZHgpOw0KK2ludCBwMm1faW5pdF9uZXh0X2FsdHAybShzdHJ1Y3QgZG9tYWluICpkLCB1aW50MTZf\ndCAqaWR4LA0KKyAgICAgICAgICAgICAgICAgICAgICAgICB4ZW5tZW1fYWNjZXNzX3QgaHZtbWVt\nX2RlZmF1bHRfYWNjZXNzKTsNCiANCiAvKiBNYWtlIGEgc3BlY2lmaWMgYWx0ZXJuYXRlIHAybSBp\nbnZhbGlkICovDQogaW50IHAybV9kZXN0cm95X2FsdHAybV9ieV9pZChzdHJ1Y3QgZG9tYWluICpk\nLCB1bnNpZ25lZCBpbnQgaWR4KTsNCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMvaHZt\nL2h2bV9vcC5oIGIveGVuL2luY2x1ZGUvcHVibGljL2h2bS9odm1fb3AuaA0KaW5kZXggNDk5NjVk\nMjU2Yy4uMjU5OTg4N2Y3ZiAxMDA2NDQNCi0tLSBhL3hlbi9pbmNsdWRlL3B1YmxpYy9odm0vaHZt\nX29wLmgNCisrKyBiL3hlbi9pbmNsdWRlL3B1YmxpYy9odm0vaHZtX29wLmgNCkBAIC0yNTEsOCAr\nMjUxLDYgQEAgREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2h2bV9hbHRwMm1fdmNwdV9kaXNh\nYmxlX25vdGlmeV90KTsNCiBzdHJ1Y3QgeGVuX2h2bV9hbHRwMm1fdmlldyB7DQogICAgIC8qIElO\nL09VVCB2YXJpYWJsZSAqLw0KICAgICB1aW50MTZfdCB2aWV3Ow0KLSAgICAvKiBDcmVhdGUgdmll\ndyBvbmx5OiBkZWZhdWx0IGFjY2VzcyB0eXBlDQotICAgICAqIE5PVEU6IGN1cnJlbnRseSBpZ25v\ncmVkICovDQogICAgIHVpbnQxNl90IGh2bW1lbV9kZWZhdWx0X2FjY2VzczsgLyogeGVubWVtX2Fj\nY2Vzc190ICovDQogfTsNCiB0eXBlZGVmIHN0cnVjdCB4ZW5faHZtX2FsdHAybV92aWV3IHhlbl9o\ndm1fYWx0cDJtX3ZpZXdfdDsNCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vbWVtX2FjY2Vz\ncy5oIGIveGVuL2luY2x1ZGUveGVuL21lbV9hY2Nlc3MuaA0KaW5kZXggMDBlNTk0YTBhZC4uZGM2\nYWZjNzI1MiAxMDA2NDQNCi0tLSBhL3hlbi9pbmNsdWRlL3hlbi9tZW1fYWNjZXNzLmgNCisrKyBi\nL3hlbi9pbmNsdWRlL3hlbi9tZW1fYWNjZXNzLmgNCkBAIC01OCw2ICs1OCwxMCBAQCB0eXBlZGVm\nIGVudW0gew0KICAgICAvKiBOT1RFOiBBc3N1bWVkIHRvIGJlIG9ubHkgNCBiaXRzIHJpZ2h0IG5v\ndyBvbiB4ODYuICovDQogfSBwMm1fYWNjZXNzX3Q7DQogDQorYm9vbCB4ZW5tZW1fYWNjZXNzX3Rv\nX3AybV9hY2Nlc3Moc3RydWN0IHAybV9kb21haW4gKnAybSwNCisgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICB4ZW5tZW1fYWNjZXNzX3QgeGFjY2VzcywNCisgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICBwMm1fYWNjZXNzX3QgKnBhY2Nlc3MpOw0KKw0KIC8qDQogICogU2V0\nIGFjY2VzcyB0eXBlIGZvciBhIHJlZ2lvbiBvZiBnZm5zLg0KICAqIElmIGdmbiA9PSBJTlZBTElE\nX0dGTiwgc2V0cyB0aGUgZGVmYXVsdCBhY2Nlc3MgdHlwZS4NCi0tIA0KMi4xNy4xDQoNCg==\n\n\n\nFrom - Wed Dec 18 11:05:12 2019\nReceived: from FTLPEX02AMS01.citrite.net (10.13.108.166) by\n AMSPEX02CL01.citrite.net (10.69.22.125) with Microsoft SMTP Server (TLS) id\n 15.0.1473.3 via Mailbox Transport; Wed, 18 Dec 2019 08:49:09 +0100\nReceived: from LASPEX02MSOL01.citrite.net (10.160.21.45) by\n FTLPEX02AMS01.citrite.net (10.13.108.166) with Microsoft SMTP Server (TLS) id\n 15.0.1473.3; Wed, 18 Dec 2019 02:49:07 -0500\nReceived: from esa6.hc3370-68.iphmx.com (10.160.38.12) by\n LASPEX02MSOL01.citrite.net (10.160.21.45) with Microsoft SMTP Server (TLS) id\n 15.0.1473.3 via Frontend Transport; Tue, 17 Dec 2019 23:49:07 -0800\nAuthentication-Results: esa6.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none; spf=None smtp.pra=jgross@suse.com; spf=Pass smtp.mailfrom=jgross@suse.com; spf=None smtp.helo=postmaster@mx2.suse.de\nReceived-SPF: None (esa6.hc3370-68.iphmx.com: no sender\n  authenticity information available from domain of\n  jgross@suse.com) identity=pra; client-ip=195.135.220.15;\n  receiver=esa6.hc3370-68.iphmx.com;\n  envelope-from=\"jgross@suse.com\"; x-sender=\"jgross@suse.com\";\n  x-conformance=sidf_compatible\nReceived-SPF: Pass (esa6.hc3370-68.iphmx.com: domain of\n  jgross@suse.com designates 195.135.220.15 as permitted\n  sender) identity=mailfrom; client-ip=195.135.220.15;\n  receiver=esa6.hc3370-68.iphmx.com;\n  envelope-from=\"jgross@suse.com\"; x-sender=\"jgross@suse.com\";\n  x-conformance=sidf_compatible; x-record-type=\"v=spf1\";\n  x-record-text=\"v=spf1 ip4:103.9.96.0/22 ip4:117.120.16.0/21\n  ip4:130.57.0.0/16 ip4:137.65.0.0/16 ip4:143.186.119.0/24\n  ip4:147.2.0.0/16 ip4:149.44.0.0/16 ip4:162.249.213.164\n  ip4:164.99.0.0/16 ip4:165.180.149.103 ip4:173.203.201.103\n  ip4:193.109.254.0/23 ip4:194.106.220.0/23\n  ip4:194.116.198.0/23 ip4:195.135.220.0/23\n  ip4:195.245.230.0/23 ip4:196.14.170.0/23 ip4:34.252.226.93\n  include:spf1.novell.com include:spf2.novell.com\n  include:spf3.novell.com include:spf.protection.outlook.com\n  -all\"\nReceived-SPF: None (esa6.hc3370-68.iphmx.com: no sender\n  authenticity information available from domain of\n  postmaster@mx2.suse.de) identity=helo;\n  client-ip=195.135.220.15; receiver=esa6.hc3370-68.iphmx.com;\n  envelope-from=\"jgross@suse.com\";\n  x-sender=\"postmaster@mx2.suse.de\";\n  x-conformance=sidf_compatible\nIronPort-SDR: Ha5rE0IYy54WA6tjIHc/h/qA8IG2MNcxI60nwx4tPyC+1DmTk0jkR05xzr5PbwyuW+ZEFY0dYb\n P3ectOEeCUlWnhxg8BXooo0mykXNLxfyuwzod6LbaQMbGkZ258YpCB+uOno/Qk5HgHEeP44/5U\n 3DDoToOLw3c8XRTYp7YE2bFsIoktrVTS8AbmqoXcs2COuq9mFhr4hx9lPXo/bzjV1g9hFWXzec\n wqV7QVf5uLwaP07vrFYh711lRfuHK5RtF19izsEWBWbjcckkYqDDnwP9hMogZcyjcTWPvKPtgC\n 80XOAnR7NkyLTxLoMjRSl0Eq\nX-IronPort-RemoteIP: 195.135.220.15\nX-IronPort-MID: 10279306\nX-IronPort-Reputation: 3.4\nX-IronPort-Listener: InboundMail\nX-IronPort-SenderGroup: ValidList\nX-IronPort-MailFlowPolicy: $ACCEPTED\nX-SBRS: 3.4\nX-MesageID: 10279306\nX-Ironport-Server: esa6.hc3370-68.iphmx.com\nX-Remote-IP: 195.135.220.15\nX-Policy: $ACCEPTED\nIronPort-PHdr: =?us-ascii?q?9a23=3ADGi6HxPCYTZ26F0ZeDsl6mtUPXoX/o7sNwtQ0K?=\n =?us-ascii?q?IMzox0Iv7/rarrMEGX3/hxlliBBdydt6sfzbCO4+u5ADdIyK3CmUhKSIZLWR?=\n =?us-ascii?q?4BhJdetC0bK+nBN3fGKuX3ZTcxBsVIWQwt1Xi6NU9IBJS2PAWK8TW94jEIBx?=\n =?us-ascii?q?rwKxd+KPjrFY7OlcS30P2594HObwlSizexfL1/IA+ooQnNtcQajpZuJrs/xx?=\n =?us-ascii?q?DUvnZGZuNayH9yK1mOhRj8/MCw/JBi8yRUpf0s8tNLXLv5caolU7FWFSwqPG?=\n =?us-ascii?q?8p6sLlsxnDVhaP6WAHUmoKiBpIAhPK4w/8U5zsryb1rOt92C2dPc3rUbA5XC?=\n =?us-ascii?q?mp4ql3RBP0jioMKiU0+3/LhMNukK1boQqhpx1hzI7SfIGVL+d1cqfEcd8HWW?=\n =?us-ascii?q?ZNQsNdWipcCY2+coQPFfIMM+ZGoYfgqVUArhywCguiBO701jNEmmX70bEg3u?=\n =?us-ascii?q?g9DQ3L2hErEdIUsHTTqdX4LKMcUf2rw6nSwjXMcfVW0ir85ojSdRAhuuqMVq?=\n =?us-ascii?q?93fMrTxkkvDQTFjk6LqYH+JDOVy/8NvHaB4+V8UuKvjncqpgdsqTas3schkp?=\n =?us-ascii?q?TFi4YVx1ze6Cl0zoY4KcemREJlfdKoCoZcuiGCO4drRs4vQ3tktDs0x7AGo5?=\n =?us-ascii?q?K3YjYGxIg9yxLBa/GKfI6F6Q/5WumLOzd3nndldaq/hxms9UigzfXxVsy70V?=\n =?us-ascii?q?pUtCZFicTMtmsT2BDJ98eIVONx/kan2TmRywDe8vxILEQ0mKbBNpIszL49mo?=\n =?us-ascii?q?ANvUjdAiP6glj6ga+OekUh4Oeo6uDnYrv8pp+bMo95kgP+Mqs0msy4GuQ4KR?=\n =?us-ascii?q?MDX3OG+eSnyrLv51H2QLJPjvEuiKnWrIjaJdgHpq6+GwJb05gs6xGlDzepzt?=\n =?us-ascii?q?sUh3cJLE9DeBKDlYfpI0rDL+7lDfuln1uskStrx+rHPrzuGJnCMn/DkLL5d7?=\n =?us-ascii?q?Zn90Fc0BYzzcxY559MC7EOOvTzVlXztNPCEhA5MBe0w+HhCNhmyIweRHiDDb?=\n =?us-ascii?q?OYMKPOq1+I5+0uL/OQa48SvTauY8Qisu7jizo1lEEQeYGt3IALczaoE/J+OU?=\n =?us-ascii?q?KbbHHwxNAbHjQkpA07Gc73hUeNXDgbSGy1RLl0sjM0EoW9Fq/YW5ugxreG2X?=\n =?us-ascii?q?HoTdVtemlaBwXUQj/TfIKeVqJJMXrKeJUzuyEYVbWnV44q3A2vswm/8bd8M+?=\n =?us-ascii?q?7I4XRI5cDuz9Eroe3YzkptrXkqX4Kcy2GIXyd/mWZbDzM13aUqp0t7xx/D1K?=\n =?us-ascii?q?VjmPVXGJRV4O8BSQY1M5PQjqR6Btn+VxiHf4KPT1CrEZ29GT9kaNU3zpcVZl?=\n =?us-ascii?q?plXc24h0XB0DCtGKQ9jKGQCdo/9aePl2PpKZNFwm3dnLIkk0FgR8JOMWO8ga?=\n =?us-ascii?q?sq9QfJAJXSu16EjKvsfqMZj2bW7GnW622IsQlDVRJoF6XIWXdKfkzNsdHw/V?=\n =?us-ascii?q?/PVZerGe5hKRZaxIiOJ/IQOOfkhlhHWvrvfe/mTTjhyjWWAhCFjvOBd4O0PW?=\n =?us-ascii?q?UWh36CUA1aw0YS5XaDJU41ASLz62TZRCdjE17ieSaOuaF3tW+7Q0kozgqLc1?=\n =?us-ascii?q?wp1ry7/QQQjOCdTPVb16wNuSMooTF5VFin2NeeB92FrgtnNKJSBLF1qFVIz2?=\n =?us-ascii?q?XCrCRmI4etaatlgx9Wcgh6uV/vywQiEp9JwoAhqHInyhY3KLrNiQIcMWrDgN?=\n =?us-ascii?q?aqYOWRczShmXLnI7Tb0VzfztuMr6oU4ap+q164517xUxRytXR/09xFlXCb48?=\n =?us-ascii?q?avbkJaXJTvX0Iw7xU/qavdZ3x35YzO0mZ3GbKpqTKE0NUsTrht2lO7ctFTPb?=\n =?us-ascii?q?nRXg39CcoBHOC1Nfcn3VOua1hXWYIavL5xNMSgefyc3aetN+s1hzOqg1NM54?=\n =?us-ascii?q?Vl216N/S5xE7Sa5ZsOzvCG0wfCbA/S3Az44Pj+gpsMJTwJFzT5ySO/X9EJI/?=\n =?us-ascii?q?MiO4cTCWK+Zcaww4c2i5noUn9evFmtYjFOkM2mYx2JdHTmwBZdk08QpDSrlD?=\n =?us-ascii?q?C5wDp9jzwy5vPOgWqXmLmkLkBffDcWDGB5xU/hO421k8wXUC3KJ0AymR2p6F?=\n =?us-ascii?q?y7j6lXqaJjLnXCFEJBfiz4NWZnAeO7sruPZdIK6Yt96HQKFr3nPBbAEOa7+k?=\n =?us-ascii?q?ZJtkGrV3FTzz06aTyw75jilkI8iGnGdykr6SSJP8BoxRLPotfbQK00vHJOSS?=\n =?us-ascii?q?9mhD3QHlX5McOu+IDelZjZtfulf3m8TZAVei7uh9DIpG6g6GtmDAfq1fK8gN?=\n =?us-ascii?q?r8CiAhzDT2kdJtUG+byXS0Kpmu3KO8P+V9e0BuD1Kp8Mt2FLZ1lY4ojY0R03?=\n =?us-ascii?q?wX1d2FuGAKmmDpPZBHyLrzOTATECUTzYefs22HkAVza2iEzIXjWjCBz9t9Mp?=\n =?us-ascii?q?OkN3gO1Ht17tgWWv7Mt/oV23or5AL/91iZYOAhzG5Elr13siZc2r9P4E13l0?=\n =?us-ascii?q?D/SvgTBRUKZHe00UnXqYj49OIOOi6uaeTijREh2478SunE+kYFBj74YstwRH?=\n =?us-ascii?q?MrqJwvbhSViSy1ssa+JLyyJZoSrkHGykufybITcNRp0aNUzSt/ZTCk4Sxjl7?=\n =?us-ascii?q?J91Vo2msjk9Imfdzc0ovj/WEIJcGesPIVKpG2I7+4Wn97KjdnxQtMwS3NTGs?=\n =?us-ascii?q?OvFKzgESpO5625akDXQGV68yvKX+OHRkee8Bs09i2UVcrzbDfNfCBflI05IX?=\n =?us-ascii?q?vVbE1H3FJNDW58x8ZoUFr3mIq5Nx0irjEJugyh+0cKk7o2cUOlCiGH413zD1?=\n =?us-ascii?q?V8AJmHcEgPv10Evh6Ld5XPvqQrWHsDtpy58F7UezHdPl8VSztTAgrcQAq4W9?=\n =?us-ascii?q?vmrdjYr7rBV7f4daeTJ+/V8aoGEK3TjZO3jtk/rmjKb5nJZyY6SaV8gBELXG?=\n =?us-ascii?q?glSZ+F3W9SEWpNzXyLPpX+xl/0+yt8qt2z/abwQAy2o42IFbZWNZNk/BX+gK?=\n =?us-ascii?q?GIM/OciXRiMTgCkJUL23LMzP4U21t36Wkmdj+mFakMuHzWVKyL3KlQERMfb2?=\n =?us-ascii?q?V4M84A7qQ32hRBNJzAkt2zzqR/kvM+F1ZCUxrmh92tYssJZWq6MTalTA7OPb?=\n =?us-ascii?q?CCb2SRkfv6aq69V7Bcyd5smUbo5mS9FEnudnSOjDC3ERCkaroT1GTFbFpfoI?=\n =?us-ascii?q?G4YlBmDm2xBNThIga2NtN6l1hUifU9m2/KOGgAMDN9b1IFr7ue6jldi+l+HG?=\n =?us-ascii?q?oJ52RsLO2NkSKUp+fCLZNevfxuCyVy3+VUhRZyg6NS9z1BTedplTH6q8405U?=\n =?us-ascii?q?q7ieTJxjcmGBtCpzBXhZ6a6EVvPaKKk/sIEX3A/R8L8SCRE0FT9oYjU4ay/f?=\n =?us-ascii?q?oKkp6WyfG7MjpJ/tPK8NFJCtPddoSHOyF6bkKsRm6SDRMFSC7tPmba1Ck/2L?=\n =?us-ascii?q?mf8GOYqp8ip93igp0LH/VZW0YyDegyEVl+EZoJJ5I9DVZG2faLydUF43aztk?=\n =?us-ascii?q?ybXMJBopXOTe6fG93qOGzflqRfal0EzPmrSOZbfp2+0EtkZF5gmY3MEEeFRt?=\n =?us-ascii?q?FBrBpqaQosqVlM+nxzFzxh6wfecgqopUQrO7uxlx8yhBF5ZL11pizx+FpxLV?=\n =?us-ascii?q?3P9nJpzBsB3O79iDXUSwbfab+qVNgOWTHprEV3OZT+EV4sMF+C2Hd8PTKBfI?=\n =?us-ascii?q?p/yrttcWcy013ZqcEJAuNHQOtIbU1IyA=3D=3D?=\nX-IronPort-Anti-Spam-Filtered: true\nX-IronPort-Anti-Spam-Result: =?us-ascii?q?A0HpAQBM2fldhg/ch8NlHQEBAQkBEQU?=\n =?us-ascii?q?FAYF+ghuBRiMECyqTL51ACQQBAQsvAQEBhD8CghocBwEENBMCAwEMAQEBAwE?=\n =?us-ascii?q?BAQIBAgMCAgEBAhABAQEKCQsIKYVKgjspAYNPAgEDElkOEB0iEkkOGSKDAIJ?=\n =?us-ascii?q?8oSg9AiMBTIEEizGJDoFIgTaHP4MWgUMagUE/gRGDUYo3BI1CgjifD4I+lgY?=\n =?us-ascii?q?MG45Ri32lKoQagWmBezMaCBsVgydQERSNHg4JjiRAMwGPJAEB?=\nX-IPAS-Result: =?us-ascii?q?A0HpAQBM2fldhg/ch8NlHQEBAQkBEQUFAYF+ghuBRiMEC?=\n =?us-ascii?q?yqTL51ACQQBAQsvAQEBhD8CghocBwEENBMCAwEMAQEBAwEBAQIBAgMCAgEBA?=\n =?us-ascii?q?hABAQEKCQsIKYVKgjspAYNPAgEDElkOEB0iEkkOGSKDAIJ8oSg9AiMBTIEEi?=\n =?us-ascii?q?zGJDoFIgTaHP4MWgUMagUE/gRGDUYo3BI1CgjifD4I+lgYMG45Ri32lKoQag?=\n =?us-ascii?q?WmBezMaCBsVgydQERSNHg4JjiRAMwGPJAEB?=\nX-IronPort-AV: E=Sophos;i=\"5.69,328,1571716800\"; \n   d=\"scan'208\";a=\"10279306\"\nX-Amp-Result: SKIPPED(no attachment in message)\nX-Amp-File-Uploaded: False\nX-IronPort-Outbreak-Status: No, level 0, Unknown - Unknown\nX-MGA-submission: =?us-ascii?q?MDGQ9bSEHfMngCsmyG0Q6KFzr3M/kwx4riA/bH?=\n =?us-ascii?q?H68XkYwy5lIGNkk/AeU6EGDMEryakXcrQURQBsZG13tCRErumpnpu3r+?=\n =?us-ascii?q?ERPlKmDFgYnYhHi3v7sCVi9Fs4kx5ybHlpi1t9FQtDQvzq3IPpMVc0SU?=\n =?us-ascii?q?2SJ4UvYvvjN8wpe4lhuvYDsg=3D=3D?=\nReceived: from mx2.suse.de ([195.135.220.15])\n  by esa6.hc3370-68.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Dec 2019 02:49:04 -0500\nX-Virus-Scanned: by amavisd-new at test-mx.suse.de\nReceived: from relay2.suse.de (unknown [195.135.220.254])\n\tby mx2.suse.de (Postfix) with ESMTP id 13462AB9B;\n\tWed, 18 Dec 2019 07:49:03 +0000 (UTC)\nFrom: Juergen Gross <jgross@suse.com>\nTo: <xen-devel@lists.xenproject.org>\nCC: Juergen Gross <jgross@suse.com>, Andrew Cooper\n\t<andrew.cooper3@citrix.com>, George Dunlap <George.Dunlap@eu.citrix.com>, Ian\n Jackson <ian.jackson@eu.citrix.com>, Jan Beulich <jbeulich@suse.com>, Julien\n Grall <julien@xen.org>, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,\n\tStefano Stabellini <sstabellini@kernel.org>, \"Wei Liu\" <wl@xen.org>, Dario\n Faggioli <dfaggioli@suse.com>, Josh Whitehead\n\t<josh.whitehead@dornerworks.com>, Stewart Hildebrand\n\t<stewart.hildebrand@dornerworks.com>, Meng Xu <mengxu@cis.upenn.edu>\nSubject: [PATCH 1/9] xen/sched: move schedulers and cpupool coding to dedicated directory\nDate: Wed, 18 Dec 2019 08:48:51 +0100\nMessage-ID: <20191218074859.21665-2-jgross@suse.com>\nX-Mailer: git-send-email 2.16.4\nIn-Reply-To: <20191218074859.21665-1-jgross@suse.com>\nReferences: <20191218074859.21665-1-jgross@suse.com>\nReturn-Path: jgross@suse.com\nContent-Type: text/plain\nX-MS-Exchange-Organization-Network-Message-Id: 37c99f12-d910-4e98-d600-08d7838ec34c\nX-MS-Exchange-Organization-AVStamp-Enterprise: 1.0\nX-MS-Exchange-Organization-AuthSource: LASPEX02MSOL01.citrite.net\nX-MS-Exchange-Organization-AuthAs: Anonymous\nMIME-Version: 1.0\n\nMove sched*c and cpupool.c to a new directory common/sched.\n\nSigned-off-by: Juergen Gross <jgross@suse.com>\n---\n MAINTAINERS                                        |  8 +--\n xen/common/Kconfig                                 | 66 +---------------------\n xen/common/Makefile                                |  8 +--\n xen/common/sched/Kconfig                           | 65 +++++++++++++++++++++\n xen/common/sched/Makefile                          |  7 +++\n .../{compat/schedule.c => sched/compat_schedule.c} |  2 +-\n xen/common/{ => sched}/cpupool.c                   |  0\n xen/common/{ => sched}/sched_arinc653.c            |  0\n xen/common/{ => sched}/sched_credit.c              |  0\n xen/common/{ => sched}/sched_credit2.c             |  0\n xen/common/{ => sched}/sched_null.c                |  0\n xen/common/{ => sched}/sched_rt.c                  |  0\n xen/common/{ => sched}/schedule.c                  |  2 +-\n 13 files changed, 80 insertions(+), 78 deletions(-)\n create mode 100644 xen/common/sched/Kconfig\n create mode 100644 xen/common/sched/Makefile\n rename xen/common/{compat/schedule.c => sched/compat_schedule.c} (97%)\n rename xen/common/{ => sched}/cpupool.c (100%)\n rename xen/common/{ => sched}/sched_arinc653.c (100%)\n rename xen/common/{ => sched}/sched_credit.c (100%)\n rename xen/common/{ => sched}/sched_credit2.c (100%)\n rename xen/common/{ => sched}/sched_null.c (100%)\n rename xen/common/{ => sched}/sched_rt.c (100%)\n rename xen/common/{ => sched}/schedule.c (99%)\n\ndiff --git a/MAINTAINERS b/MAINTAINERS\nindex 012c847ebd..37d4da2bc2 100644\n--- a/MAINTAINERS\n+++ b/MAINTAINERS\n@@ -174,7 +174,7 @@ M:\tJosh Whitehead <josh.whitehead@dornerworks.com>\n M:\tStewart Hildebrand <stewart.hildebrand@dornerworks.com>\n S:\tSupported\n L:\tDornerWorks Xen-Devel <xen-devel@dornerworks.com>\n-F:\txen/common/sched_arinc653.c\n+F:\txen/common/sched/sched_arinc653.c\n F:\ttools/libxc/xc_arinc653.c\n \n ARM (W/ VIRTUALISATION EXTENSIONS) ARCHITECTURE\n@@ -212,7 +212,7 @@ CPU POOLS\n M:\tJuergen Gross <jgross@suse.com>\n M:\tDario Faggioli <dfaggioli@suse.com>\n S:\tSupported\n-F:\txen/common/cpupool.c\n+F:\txen/common/sched/cpupool.c\n \n DEVICE TREE\n M:\tStefano Stabellini <sstabellini@kernel.org>\n@@ -378,13 +378,13 @@ RTDS SCHEDULER\n M:\tDario Faggioli <dfaggioli@suse.com>\n M:\tMeng Xu <mengxu@cis.upenn.edu>\n S:\tSupported\n-F:\txen/common/sched_rt.c\n+F:\txen/common/sched/sched_rt.c\n \n SCHEDULING\n M:\tGeorge Dunlap <george.dunlap@eu.citrix.com>\n M:\tDario Faggioli <dfaggioli@suse.com>\n S:\tSupported\n-F:\txen/common/sched*\n+F:\txen/common/sched/\n \n SEABIOS UPSTREAM\n M:\tWei Liu <wl@xen.org>\ndiff --git a/xen/common/Kconfig b/xen/common/Kconfig\nindex 2f516da101..79465fc1f9 100644\n--- a/xen/common/Kconfig\n+++ b/xen/common/Kconfig\n@@ -278,71 +278,7 @@ config ARGO\n \n \t  If unsure, say N.\n \n-menu \"Schedulers\"\n-\tvisible if EXPERT = \"y\"\n-\n-config SCHED_CREDIT\n-\tbool \"Credit scheduler support\"\n-\tdefault y\n-\t---help---\n-\t  The traditional credit scheduler is a general purpose scheduler.\n-\n-config SCHED_CREDIT2\n-\tbool \"Credit2 scheduler support\"\n-\tdefault y\n-\t---help---\n-\t  The credit2 scheduler is a general purpose scheduler that is\n-\t  optimized for lower latency and higher VM density.\n-\n-config SCHED_RTDS\n-\tbool \"RTDS scheduler support (EXPERIMENTAL)\"\n-\tdefault y\n-\t---help---\n-\t  The RTDS scheduler is a soft and firm real-time scheduler for\n-\t  multicore, targeted for embedded, automotive, graphics and gaming\n-\t  in the cloud, and general low-latency workloads.\n-\n-config SCHED_ARINC653\n-\tbool \"ARINC653 scheduler support (EXPERIMENTAL)\"\n-\tdefault DEBUG\n-\t---help---\n-\t  The ARINC653 scheduler is a hard real-time scheduler for single\n-\t  cores, targeted for avionics, drones, and medical devices.\n-\n-config SCHED_NULL\n-\tbool \"Null scheduler support (EXPERIMENTAL)\"\n-\tdefault y\n-\t---help---\n-\t  The null scheduler is a static, zero overhead scheduler,\n-\t  for when there always are less vCPUs than pCPUs, typically\n-\t  in embedded or HPC scenarios.\n-\n-choice\n-\tprompt \"Default Scheduler?\"\n-\tdefault SCHED_CREDIT2_DEFAULT\n-\n-\tconfig SCHED_CREDIT_DEFAULT\n-\t\tbool \"Credit Scheduler\" if SCHED_CREDIT\n-\tconfig SCHED_CREDIT2_DEFAULT\n-\t\tbool \"Credit2 Scheduler\" if SCHED_CREDIT2\n-\tconfig SCHED_RTDS_DEFAULT\n-\t\tbool \"RT Scheduler\" if SCHED_RTDS\n-\tconfig SCHED_ARINC653_DEFAULT\n-\t\tbool \"ARINC653 Scheduler\" if SCHED_ARINC653\n-\tconfig SCHED_NULL_DEFAULT\n-\t\tbool \"Null Scheduler\" if SCHED_NULL\n-endchoice\n-\n-config SCHED_DEFAULT\n-\tstring\n-\tdefault \"credit\" if SCHED_CREDIT_DEFAULT\n-\tdefault \"credit2\" if SCHED_CREDIT2_DEFAULT\n-\tdefault \"rtds\" if SCHED_RTDS_DEFAULT\n-\tdefault \"arinc653\" if SCHED_ARINC653_DEFAULT\n-\tdefault \"null\" if SCHED_NULL_DEFAULT\n-\tdefault \"credit2\"\n-\n-endmenu\n+source \"common/sched/Kconfig\"\n \n config CRYPTO\n \tbool\ndiff --git a/xen/common/Makefile b/xen/common/Makefile\nindex 62b34e69e9..2abb8250b0 100644\n--- a/xen/common/Makefile\n+++ b/xen/common/Makefile\n@@ -3,7 +3,6 @@ obj-y += bitmap.o\n obj-y += bsearch.o\n obj-$(CONFIG_CORE_PARKING) += core_parking.o\n obj-y += cpu.o\n-obj-y += cpupool.o\n obj-$(CONFIG_DEBUG_TRACE) += debugtrace.o\n obj-$(CONFIG_HAS_DEVICE_TREE) += device_tree.o\n obj-y += domctl.o\n@@ -38,12 +37,6 @@ obj-y += radix-tree.o\n obj-y += rbtree.o\n obj-y += rcupdate.o\n obj-y += rwlock.o\n-obj-$(CONFIG_SCHED_ARINC653) += sched_arinc653.o\n-obj-$(CONFIG_SCHED_CREDIT) += sched_credit.o\n-obj-$(CONFIG_SCHED_CREDIT2) += sched_credit2.o\n-obj-$(CONFIG_SCHED_RTDS) += sched_rt.o\n-obj-$(CONFIG_SCHED_NULL) += sched_null.o\n-obj-y += schedule.o\n obj-y += shutdown.o\n obj-y += softirq.o\n obj-y += sort.o\n@@ -74,6 +67,7 @@ obj-$(CONFIG_COMPAT) += $(addprefix compat/,domain.o kernel.o memory.o multicall\n extra-y := symbols-dummy.o\n \n subdir-$(CONFIG_COVERAGE) += coverage\n+subdir-y += sched\n subdir-$(CONFIG_UBSAN) += ubsan\n \n subdir-$(CONFIG_NEEDS_LIBELF) += libelf\ndiff --git a/xen/common/sched/Kconfig b/xen/common/sched/Kconfig\nnew file mode 100644\nindex 0000000000..883ac87cab\n--- /dev/null\n+++ b/xen/common/sched/Kconfig\n@@ -0,0 +1,65 @@\n+menu \"Schedulers\"\n+\tvisible if EXPERT = \"y\"\n+\n+config SCHED_CREDIT\n+\tbool \"Credit scheduler support\"\n+\tdefault y\n+\t---help---\n+\t  The traditional credit scheduler is a general purpose scheduler.\n+\n+config SCHED_CREDIT2\n+\tbool \"Credit2 scheduler support\"\n+\tdefault y\n+\t---help---\n+\t  The credit2 scheduler is a general purpose scheduler that is\n+\t  optimized for lower latency and higher VM density.\n+\n+config SCHED_RTDS\n+\tbool \"RTDS scheduler support (EXPERIMENTAL)\"\n+\tdefault y\n+\t---help---\n+\t  The RTDS scheduler is a soft and firm real-time scheduler for\n+\t  multicore, targeted for embedded, automotive, graphics and gaming\n+\t  in the cloud, and general low-latency workloads.\n+\n+config SCHED_ARINC653\n+\tbool \"ARINC653 scheduler support (EXPERIMENTAL)\"\n+\tdefault DEBUG\n+\t---help---\n+\t  The ARINC653 scheduler is a hard real-time scheduler for single\n+\t  cores, targeted for avionics, drones, and medical devices.\n+\n+config SCHED_NULL\n+\tbool \"Null scheduler support (EXPERIMENTAL)\"\n+\tdefault y\n+\t---help---\n+\t  The null scheduler is a static, zero overhead scheduler,\n+\t  for when there always are less vCPUs than pCPUs, typically\n+\t  in embedded or HPC scenarios.\n+\n+choice\n+\tprompt \"Default Scheduler?\"\n+\tdefault SCHED_CREDIT2_DEFAULT\n+\n+\tconfig SCHED_CREDIT_DEFAULT\n+\t\tbool \"Credit Scheduler\" if SCHED_CREDIT\n+\tconfig SCHED_CREDIT2_DEFAULT\n+\t\tbool \"Credit2 Scheduler\" if SCHED_CREDIT2\n+\tconfig SCHED_RTDS_DEFAULT\n+\t\tbool \"RT Scheduler\" if SCHED_RTDS\n+\tconfig SCHED_ARINC653_DEFAULT\n+\t\tbool \"ARINC653 Scheduler\" if SCHED_ARINC653\n+\tconfig SCHED_NULL_DEFAULT\n+\t\tbool \"Null Scheduler\" if SCHED_NULL\n+endchoice\n+\n+config SCHED_DEFAULT\n+\tstring\n+\tdefault \"credit\" if SCHED_CREDIT_DEFAULT\n+\tdefault \"credit2\" if SCHED_CREDIT2_DEFAULT\n+\tdefault \"rtds\" if SCHED_RTDS_DEFAULT\n+\tdefault \"arinc653\" if SCHED_ARINC653_DEFAULT\n+\tdefault \"null\" if SCHED_NULL_DEFAULT\n+\tdefault \"credit2\"\n+\n+endmenu\ndiff --git a/xen/common/sched/Makefile b/xen/common/sched/Makefile\nnew file mode 100644\nindex 0000000000..359af4f8bb\n--- /dev/null\n+++ b/xen/common/sched/Makefile\n@@ -0,0 +1,7 @@\n+obj-y += cpupool.o\n+obj-$(CONFIG_SCHED_ARINC653) += sched_arinc653.o\n+obj-$(CONFIG_SCHED_CREDIT) += sched_credit.o\n+obj-$(CONFIG_SCHED_CREDIT2) += sched_credit2.o\n+obj-$(CONFIG_SCHED_RTDS) += sched_rt.o\n+obj-$(CONFIG_SCHED_NULL) += sched_null.o\n+obj-y += schedule.o\ndiff --git a/xen/common/compat/schedule.c b/xen/common/sched/compat_schedule.c\nsimilarity index 97%\nrename from xen/common/compat/schedule.c\nrename to xen/common/sched/compat_schedule.c\nindex 8b6e6f107d..2e450685d6 100644\n--- a/xen/common/compat/schedule.c\n+++ b/xen/common/sched/compat_schedule.c\n@@ -37,7 +37,7 @@ static int compat_poll(struct compat_sched_poll *compat)\n #define do_poll compat_poll\n #define sched_poll compat_sched_poll\n \n-#include \"../schedule.c\"\n+#include \"schedule.c\"\n \n int compat_set_timer_op(u32 lo, s32 hi)\n {\ndiff --git a/xen/common/cpupool.c b/xen/common/sched/cpupool.c\nsimilarity index 100%\nrename from xen/common/cpupool.c\nrename to xen/common/sched/cpupool.c\ndiff --git a/xen/common/sched_arinc653.c b/xen/common/sched/sched_arinc653.c\nsimilarity index 100%\nrename from xen/common/sched_arinc653.c\nrename to xen/common/sched/sched_arinc653.c\ndiff --git a/xen/common/sched_credit.c b/xen/common/sched/sched_credit.c\nsimilarity index 100%\nrename from xen/common/sched_credit.c\nrename to xen/common/sched/sched_credit.c\ndiff --git a/xen/common/sched_credit2.c b/xen/common/sched/sched_credit2.c\nsimilarity index 100%\nrename from xen/common/sched_credit2.c\nrename to xen/common/sched/sched_credit2.c\ndiff --git a/xen/common/sched_null.c b/xen/common/sched/sched_null.c\nsimilarity index 100%\nrename from xen/common/sched_null.c\nrename to xen/common/sched/sched_null.c\ndiff --git a/xen/common/sched_rt.c b/xen/common/sched/sched_rt.c\nsimilarity index 100%\nrename from xen/common/sched_rt.c\nrename to xen/common/sched/sched_rt.c\ndiff --git a/xen/common/schedule.c b/xen/common/sched/schedule.c\nsimilarity index 99%\nrename from xen/common/schedule.c\nrename to xen/common/sched/schedule.c\nindex e70cc70a65..a550dd8f93 100644\n--- a/xen/common/schedule.c\n+++ b/xen/common/sched/schedule.c\n@@ -3125,7 +3125,7 @@ void __init sched_setup_dom0_vcpus(struct domain *d)\n #endif\n \n #ifdef CONFIG_COMPAT\n-#include \"compat/schedule.c\"\n+#include \"compat_schedule.c\"\n #endif\n \n #endif /* !COMPAT */\n-- \n2.16.4\n\n\nFrom - Wed Dec 18 11:05:12 2019\nReceived: from FTLPEX02AMS01.citrite.net (10.13.108.166) by\n AMSPEX02CL01.citrite.net (10.69.22.125) with Microsoft SMTP Server (TLS) id\n 15.0.1473.3 via Mailbox Transport; Wed, 18 Dec 2019 08:49:10 +0100\nReceived: from MIAPEX02MSOL01.citrite.net (10.52.109.11) by\n FTLPEX02AMS01.citrite.net (10.13.108.166) with Microsoft SMTP Server (TLS) id\n 15.0.1473.3; Wed, 18 Dec 2019 02:49:08 -0500\nReceived: from esa3.hc3370-68.iphmx.com (10.9.154.239) by\n MIAPEX02MSOL01.citrite.net (10.52.109.11) with Microsoft SMTP Server (TLS) id\n 15.0.1473.3 via Frontend Transport; Wed, 18 Dec 2019 02:49:07 -0500\nAuthentication-Results: esa3.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none; spf=None smtp.pra=jgross@suse.com; spf=Pass smtp.mailfrom=jgross@suse.com; spf=None smtp.helo=postmaster@mx2.suse.de\nReceived-SPF: None (esa3.hc3370-68.iphmx.com: no sender\n  authenticity information available from domain of\n  jgross@suse.com) identity=pra; client-ip=195.135.220.15;\n  receiver=esa3.hc3370-68.iphmx.com;\n  envelope-from=\"jgross@suse.com\"; x-sender=\"jgross@suse.com\";\n  x-conformance=sidf_compatible\nReceived-SPF: Pass (esa3.hc3370-68.iphmx.com: domain of\n  jgross@suse.com designates 195.135.220.15 as permitted\n  sender) identity=mailfrom; client-ip=195.135.220.15;\n  receiver=esa3.hc3370-68.iphmx.com;\n  envelope-from=\"jgross@suse.com\"; x-sender=\"jgross@suse.com\";\n  x-conformance=sidf_compatible; x-record-type=\"v=spf1\";\n  x-record-text=\"v=spf1 ip4:103.9.96.0/22 ip4:117.120.16.0/21\n  ip4:130.57.0.0/16 ip4:137.65.0.0/16 ip4:143.186.119.0/24\n  ip4:147.2.0.0/16 ip4:149.44.0.0/16 ip4:162.249.213.164\n  ip4:164.99.0.0/16 ip4:165.180.149.103 ip4:173.203.201.103\n  ip4:193.109.254.0/23 ip4:194.106.220.0/23\n  ip4:194.116.198.0/23 ip4:195.135.220.0/23\n  ip4:195.245.230.0/23 ip4:196.14.170.0/23 ip4:34.252.226.93\n  include:spf1.novell.com include:spf2.novell.com\n  include:spf3.novell.com include:spf.protection.outlook.com\n  -all\"\nReceived-SPF: None (esa3.hc3370-68.iphmx.com: no sender\n  authenticity information available from domain of\n  postmaster@mx2.suse.de) identity=helo;\n  client-ip=195.135.220.15; receiver=esa3.hc3370-68.iphmx.com;\n  envelope-from=\"jgross@suse.com\";\n  x-sender=\"postmaster@mx2.suse.de\";\n  x-conformance=sidf_compatible\nIronPort-SDR: cqDaaviZ3XT+XoPhkD5jXJcFIbmp/UsK6x+JTd1qgd7PB7HOFFs4RePSuPEaHRTRHQFXyPCb65\n vmkAB8E/xo/qW0LlZF4PvgWjUGBKkRWFAnD1gGRLl+JghzXsUwGfU40syE9aTftJAorZvo8aFx\n k82Ngqcn2E+qD/6aII6QHAAVD76BIizdIffySr9mxmfeyUByAWn+Wlw+MHRuf68Feg9msMcWdg\n WDXHpJyMzjO21v9CAjKluz4gKHCIm7skLLCkZYz9Zj9/GcQJv2a/BXyQPoYkO6/VKaA03ftf4l\n gWX4qdkTaKe3v/WGbQAgHRBQ\nX-IronPort-RemoteIP: 195.135.220.15\nX-IronPort-MID: 9853020\nX-IronPort-Reputation: 3.4\nX-IronPort-Listener: InboundMail\nX-IronPort-SenderGroup: ValidList\nX-IronPort-MailFlowPolicy: $ACCEPTED\nX-SBRS: 3.4\nX-MesageID: 9853020\nX-Ironport-Server: esa3.hc3370-68.iphmx.com\nX-Remote-IP: 195.135.220.15\nX-Policy: $ACCEPTED\nIronPort-PHdr: =?us-ascii?q?9a23=3A629iRhcQMsPnsHVCXjxYri0YlGMj4u6mDksu8p?=\n =?us-ascii?q?Mizoh2WeGdxcS4YB7h7PlgxGXEQZ/co6odzbaP6Oa6ATxLuM/a+Fk5M7V0Hy?=\n =?us-ascii?q?cfjssXmwFySOWkMmbcaMDQUiohAc5ZX0Vk9XzoeWJcGcL5ekGA6ibqtW1aFR?=\n =?us-ascii?q?rwLxd6KfroEYDOkcu3y/qy+5rOaAlUmTaxe7x/IAi4oAnLqMUanYhvJqksxh?=\n =?us-ascii?q?fUrHZDZvhby35vKV+PhRj3+92+/IRk8yReuvIh89BPXKDndKkmTrJWESorPX?=\n =?us-ascii?q?kt6MLkqRfMQw2P5mABUmoNiRpHHxLF7BDhUZjvtCbxq/dw1zObPc3ySrA0RC?=\n =?us-ascii?q?ii4qJ2QxLmlCsLKzg0+3zMh8dukKxUvg6upx1nw47Vfo6VMuZ+frjAdt8eXG?=\n =?us-ascii?q?ZNQ9pdWzBEDo66coABDfcOPfxAoof9uVUAsBWwCwqrCuztxD9FnWP60bEg3u?=\n =?us-ascii?q?g9CwzKwBAsEtQTu3rUttX1M6ISXPixwqnV0zrDdfxW1in76IPVcx4hu/aMXa?=\n =?us-ascii?q?lrccHMzkQvFQzFjk+XqYz+JDOYzf8Ns3WA7+V+T+6gl2knqwRorzWp28wiiZ?=\n =?us-ascii?q?HJi5oIxl3A9Sh12ps5KNO4RUJhf9KoDodcuzuHO4Z2Ws8uXmVltSYgxrEbt5?=\n =?us-ascii?q?O2fDIGxIo5yxLDcfCLbYiF7x3lWe2MOzl3nmhld6i6hxuq8Uiv1On8Vs6s3V?=\n =?us-ascii?q?ZPoStJjMPAtmsQ1xzI9MeLUOZy8Vm51TaO0QDc9P1ELFgpmaffK5Mt2KM8m5?=\n =?us-ascii?q?QTvEjZACP6hln6gLWLekgk4uSo7v7oYrTipp+SLY90jQT+P7wsmsywG+Q4NR?=\n =?us-ascii?q?MOX3OA9OSnyb3j5lP2TK9Wgf0xl6nVqIraKtgDpq6lHw9V1Z4u5RehADehyt?=\n =?us-ascii?q?QYkmcIIEhLdhKaiYjpP0vBIOjjAPihnlSgiitkx/HaPr37A5XMIWLPn6vmfb?=\n =?us-ascii?q?Z480Rc0hY8zchD55JIDbEMOPPzVVX3tNDCDB82KRC7w+X8CNV60IMTQnyAAr?=\n =?us-ascii?q?KDPKzOsF+I+vgvI+iDZYMPpDn9LP0ltLbSiioplFlYcaS30J8/bHGjAu8gM0?=\n =?us-ascii?q?ifeWDrgNoKDSENpAVtYvbtjQigTDNJaHu0F40m4SogQNakAp3EXZuFm6Ga0W?=\n =?us-ascii?q?GwGZgANTMOMUyFDXq9L9bMYPwLci/HZ5Y5ymZeB5G8V48s0w2vvwbmyr1ha9?=\n =?us-ascii?q?DZ4TAcqYm6hIgn6vbazlcy/mcvUJzYjTHLTnl0m3NOTDgzj+hzok14n1GE16?=\n =?us-ascii?q?Uww/lVDsda6P4BVAAmfYXdwOp3B5G6Wg/IctqTDlfzRNKgDGJ5Vco/lvkJZU?=\n =?us-ascii?q?s1ANC+llbbxSP/AbAPkKeQLIcp6a+a1H/0dI5m03iT7KA6lBE9R9dXc2ivh6?=\n =?us-ascii?q?px7Q/WUozGiUKCjI6xaL8RmiXK8TTL1nKA6WdfVgM4SqDZRTYfa0/R+Mz+/V?=\n =?us-ascii?q?/HRqSyBK4PNxsbj9WfMaYMZtCw1wd8SfzuOcrTbyeKo0nqVUfa4LSKYcKqdn?=\n =?us-ascii?q?4Uh2PdAxNfzFhWoybANBA+AzfnqGXbXnRoEhr0bkXg/PMbyjvzR1IozwyMc0?=\n =?us-ascii?q?xq1qaksh8Ti/uGTvoP37UC8C4/ojRwFVy50prYEd2F7wZmeaxdZ5s67jIlnS?=\n =?us-ascii?q?rbuBZ6JYeINL15ixgVdAE290Li2hNrC5lRxNAwpSBixw5zJKSElVJZImrJgN?=\n =?us-ascii?q?apYeCRcDOquknyOMu0khnE3d2b+7kC8qE1sFy4+gGiTRF9qzA5g59Uy3uZ9t?=\n =?us-ascii?q?PBCw9BNPC5Gksx6RV+oKnXJycn4IaBn39jK66vqRfZxskkQuAiz1zzN8caK6?=\n =?us-ascii?q?6CGALoRocYCNKpM/cCgEWyY1QPO+UYp8tWd4u2MvCB3qCsJuNpmjmr2H9G7I?=\n =?us-ascii?q?5K2UWJ7yNgS+TM0s9fkcuV1QaGSTrwyWyZnJCswNJ8bCoJViqy0iG/Qo5aPf?=\n =?us-ascii?q?YtJcNVWSGvO82y1pN1gJu/E3Jf8VeiARsB1qrLMVKQYEb6xhZ4zlkMrDqsni?=\n =?us-ascii?q?7wwzFvkj4vp7aSx2SXkrmkLUFafDQRHC870B/lOsCsgsofXVS0YgRM9lPt/k?=\n =?us-ascii?q?v8y6VB5ex+I2TVXUZUbn3zJmBmXLG3s+nKaMpO5ZU09CRPBb3tPBbDEeO7+U?=\n =?us-ascii?q?FClXq+TA48jHghejqnu4v0hUl3k2vGanZ49yGGIYQulVHe/NzZVbha2T9VIU?=\n =?us-ascii?q?swwTTRGFW4OMGkuNuOkJKW+OKxTWW6TbVIbDLmi4iHsWHorX0vGhC5k/2pz5?=\n =?us-ascii?q?flHhI9yjTTzMRxWGPDqxO2MeyJn+yqdOlgeEdvHlr17cF3T5p/noUHj5YVwX?=\n =?us-ascii?q?EGh5+R8ClPgSLpPN5cw667cGsVSGtB3YvO+Aa8kh4GTDrB18fjW36a2Mcke9?=\n =?us-ascii?q?SqfjZcxHcm984TQKaMsO4dxXAz8xzp80SJJqIn1jYFlal3sSFc2rtR/lNziH?=\n =?us-ascii?q?3aWOl3fwEQPDSwxU3Tt5bj8+MPIj7oKOb41VIiz4n6U/fc/0cEHi6+I8lqHD?=\n =?us-ascii?q?csvJwjaxSVgCO1s9i1PoGXN4521FXckg+c3bEJd9Rr0KJM3W0+Zyr8pSF3kr?=\n =?us-ascii?q?Jqy0Aym8n85M/edS1s5P7rW0ACcGepNoVJo2qr1PgC+6Tel4G3Qsc4RGlNDc?=\n =?us-ascii?q?quFbTwV2tM/fX/a1TXTmB68yfDX+ODTEnGsBwurmqTQcn0bDfNfCJfl407Ak?=\n =?us-ascii?q?DFfyk9yEgVRGlox89iUFnylYq7LRs/vndLvRb5skcek7M0cUCnDCGF/l/uMn?=\n =?us-ascii?q?BuE/39ZFJX9l0QvhaJd5XHsKQqTnEeptr790SMMjDJPlUVSzhSBwreXQilZv?=\n =?us-ascii?q?70vryiu6CZHrbsdqqTJ+/S9KoEDK/OndX1icNn52reb5TReCA+SaRkggwbGi?=\n =?us-ascii?q?oiU8XBx2dUF2pNyniLNZTF4kbnn08/5sG5+/D2VA+9/pOBUv1UNsti/xTwiq?=\n =?us-ascii?q?CGf++WjyJkJTsKzYsCnznOz6YS2FpUgCZrElvlWbUGvirQQK+CgbdZVFgdbD?=\n =?us-ascii?q?1+MM8O5KU5lghLMsrGht6nzaZ2yOYvDEtIXkDgncfvYtEWJ2a6NxXMA0PuVv?=\n =?us-ascii?q?zOYDTPx4uuO/GGRLZdjftZu1iLgRjASxCxGDOFmnGpWgumaqdMh3rAY0Qb5t?=\n =?us-ascii?q?H7cw5tDHilR9XjOFW9N5dsgDs6zKdR5DuCPHMAMTV6b0JGr6GBpSJejPJlHm?=\n =?us-ascii?q?Vd731jZeCakied5uPcJ94Yq/xuSihzkutb5jw9xd43pGlcQ+dpnSLJstN0i1?=\n =?us-ascii?q?S2yK+U1yFqFhZD635KiI+NoUR+KPDZ+51HChOmtFoG6WSdDQhPpsMwU4yy/f?=\n =?us-ascii?q?kLl56Vzvq1cWoRu8jZ9sYdGcXOfc+cOSFnMRGyQ2GMSVVVCz+zNWTPwUdala?=\n =?us-ascii?q?L3lDXdo54kp5zrgJdLRKVcUQl/FPwADV9+NMcfO5oxVTQh2+3+7oZA9T+loR?=\n =?us-ascii?q?/dSd8P9IjATe6XCO7zJSyxiKkeIQAV2r6+IYlZZeiZkwRyL1J9morNAU/ZW9?=\n =?us-ascii?q?tA9zZgYgEDq0JI6HFiT2c31hu4ODPo22caELuPpjBzigZ6Zr12pjL8uREsO0?=\n =?us-ascii?q?HH4ic9whFoyIfVxAuJeTu0F5+eGIRfCi76rU80a8upWBtuYEu5mkk2bW6YFY?=\n =?us-ascii?q?IUtKNpcCVQsCGZoYFGQKYOVrBfbVkbwvTFP/g=3D?=\nX-IronPort-Anti-Spam-Filtered: true\nX-IronPort-Anti-Spam-Result: =?us-ascii?q?A0FQAQD62Pldhg/ch8NlHAEBAQEBBwE?=\n =?us-ascii?q?BEQEEBAEBgX6BdCeBRiMECyqTL51ACQQBAQsvAQEBhD8CghocBwEENBMCAwE?=\n =?us-ascii?q?MAQEBAwEBAQIBAgMCAgEBAhABAQEKCQsIKYVKgjspAYNPAgEDEggNUhA/Elc?=\n =?us-ascii?q?ZIoI1S4J8oSU9AiMBTIEEin4ziQ+BSIE2hz+EWRqBQT+BEYNRHIobBI0wDgS?=\n =?us-ascii?q?COJ8Pgj6WBgwbgkOMDot9kBSZMIFpgXszGggbFYMnUBEUjR4OCY4kQDOPJQE?=\n =?us-ascii?q?B?=\nX-IPAS-Result: =?us-ascii?q?A0FQAQD62Pldhg/ch8NlHAEBAQEBBwEBEQEEBAEBgX6Bd?=\n =?us-ascii?q?CeBRiMECyqTL51ACQQBAQsvAQEBhD8CghocBwEENBMCAwEMAQEBAwEBAQIBA?=\n =?us-ascii?q?gMCAgEBAhABAQEKCQsIKYVKgjspAYNPAgEDEggNUhA/ElcZIoI1S4J8oSU9A?=\n =?us-ascii?q?iMBTIEEin4ziQ+BSIE2hz+EWRqBQT+BEYNRHIobBI0wDgSCOJ8Pgj6WBgwbg?=\n =?us-ascii?q?kOMDot9kBSZMIFpgXszGggbFYMnUBEUjR4OCY4kQDOPJQEB?=\nX-IronPort-AV: E=Sophos;i=\"5.69,328,1571716800\"; \n   d=\"scan'208\";a=\"9853020\"\nX-Amp-Result: SKIPPED(no attachment in message)\nX-Amp-File-Uploaded: False\nX-IronPort-Outbreak-Status: No, level 0, Unknown - Unknown\nX-MGA-submission: =?us-ascii?q?MDFS7cs8gMAjx8ER8/f7X6Sl0l/lSUPlWzV81g?=\n =?us-ascii?q?RQE0jdHBCE9HKG0RcCjmpfPyKSgwh6q6uH5L+MAvJiWhVHSwAvq+2gyj?=\n =?us-ascii?q?DVGMllpbI38KILHkB7qcNml0nNjZWESnxbYXieyogkU2Ckp45y6/9xT6?=\n =?us-ascii?q?6M2d9h6Put1XZQJ5OsL4txxA=3D=3D?=\nReceived: from mx2.suse.de ([195.135.220.15])\n  by esa3.hc3370-68.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Dec 2019 02:49:06 -0500\nX-Virus-Scanned: by amavisd-new at test-mx.suse.de\nReceived: from relay2.suse.de (unknown [195.135.220.254])\n\tby mx2.suse.de (Postfix) with ESMTP id 62ED1AC71;\n\tWed, 18 Dec 2019 07:49:03 +0000 (UTC)\nFrom: Juergen Gross <jgross@suse.com>\nTo: <xen-devel@lists.xenproject.org>\nCC: Juergen Gross <jgross@suse.com>, Jan Beulich <jbeulich@suse.com>, \"Andrew\n Cooper\" <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,\n\t=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, George Dunlap\n\t<George.Dunlap@eu.citrix.com>, Ian Jackson <ian.jackson@eu.citrix.com>,\n\tJulien Grall <julien@xen.org>, Konrad Rzeszutek Wilk\n\t<konrad.wilk@oracle.com>, Stefano Stabellini <sstabellini@kernel.org>, \"Dario\n Faggioli\" <dfaggioli@suse.com>, Josh Whitehead\n\t<josh.whitehead@dornerworks.com>, Stewart Hildebrand\n\t<stewart.hildebrand@dornerworks.com>, Meng Xu <mengxu@cis.upenn.edu>\nSubject: [PATCH 2/9] xen/sched: make sched-if.h really scheduler private\nDate: Wed, 18 Dec 2019 08:48:52 +0100\nMessage-ID: <20191218074859.21665-3-jgross@suse.com>\nX-Mailer: git-send-email 2.16.4\nIn-Reply-To: <20191218074859.21665-1-jgross@suse.com>\nReferences: <20191218074859.21665-1-jgross@suse.com>\nReturn-Path: jgross@suse.com\nContent-Type: text/plain\nX-MS-Exchange-Organization-Network-Message-Id: b7093713-9ba2-4bda-201a-08d7838ec34f\nX-MS-Exchange-Organization-AVStamp-Enterprise: 1.0\nX-MS-Exchange-Organization-AuthSource: MIAPEX02MSOL01.citrite.net\nX-MS-Exchange-Organization-AuthAs: Anonymous\nMIME-Version: 1.0\n\ninclude/xen/sched-if.h should be private to scheduler code, so move it\nto common/sched/sched-if.h and move the remaining use cases to\ncpupool.c and schedule.c.\n\nSigned-off-by: Juergen Gross <jgross@suse.com>\n---\n xen/arch/x86/dom0_build.c                    |   5 +-\n xen/common/domain.c                          |  70 ----------\n xen/common/domctl.c                          | 135 +------------------\n xen/common/sched/cpupool.c                   |  13 +-\n xen/{include/xen => common/sched}/sched-if.h |   3 -\n xen/common/sched/sched_arinc653.c            |   3 +-\n xen/common/sched/sched_credit.c              |   2 +-\n xen/common/sched/sched_credit2.c             |   3 +-\n xen/common/sched/sched_null.c                |   3 +-\n xen/common/sched/sched_rt.c                  |   3 +-\n xen/common/sched/schedule.c                  | 191 ++++++++++++++++++++++++++-\n xen/include/xen/domain.h                     |   3 +\n xen/include/xen/sched.h                      |   7 +\n 13 files changed, 228 insertions(+), 213 deletions(-)\n rename xen/{include/xen => common/sched}/sched-if.h (99%)\n\ndiff --git a/xen/arch/x86/dom0_build.c b/xen/arch/x86/dom0_build.c\nindex 28b964e018..56c2dee0fc 100644\n--- a/xen/arch/x86/dom0_build.c\n+++ b/xen/arch/x86/dom0_build.c\n@@ -9,7 +9,6 @@\n #include <xen/libelf.h>\n #include <xen/pfn.h>\n #include <xen/sched.h>\n-#include <xen/sched-if.h>\n #include <xen/softirq.h>\n \n #include <asm/amd.h>\n@@ -227,9 +226,9 @@ unsigned int __init dom0_max_vcpus(void)\n         dom0_nodes = node_online_map;\n     for_each_node_mask ( node, dom0_nodes )\n         cpumask_or(&dom0_cpus, &dom0_cpus, &node_to_cpumask(node));\n-    cpumask_and(&dom0_cpus, &dom0_cpus, cpupool0->cpu_valid);\n+    cpumask_and(&dom0_cpus, &dom0_cpus, cpupool_valid_cpus(cpupool0));\n     if ( cpumask_empty(&dom0_cpus) )\n-        cpumask_copy(&dom0_cpus, cpupool0->cpu_valid);\n+        cpumask_copy(&dom0_cpus, cpupool_valid_cpus(cpupool0));\n \n     max_vcpus = cpumask_weight(&dom0_cpus);\n     if ( opt_dom0_max_vcpus_min > max_vcpus )\ndiff --git a/xen/common/domain.c b/xen/common/domain.c\nindex 611116c7fc..f4f0a66262 100644\n--- a/xen/common/domain.c\n+++ b/xen/common/domain.c\n@@ -10,7 +10,6 @@\n #include <xen/ctype.h>\n #include <xen/err.h>\n #include <xen/sched.h>\n-#include <xen/sched-if.h>\n #include <xen/domain.h>\n #include <xen/mm.h>\n #include <xen/event.h>\n@@ -565,75 +564,6 @@ void __init setup_system_domains(void)\n #endif\n }\n \n-void domain_update_node_affinity(struct domain *d)\n-{\n-    cpumask_var_t dom_cpumask, dom_cpumask_soft;\n-    cpumask_t *dom_affinity;\n-    const cpumask_t *online;\n-    struct sched_unit *unit;\n-    unsigned int cpu;\n-\n-    /* Do we have vcpus already? If not, no need to update node-affinity. */\n-    if ( !d->vcpu || !d->vcpu[0] )\n-        return;\n-\n-    if ( !zalloc_cpumask_var(&dom_cpumask) )\n-        return;\n-    if ( !zalloc_cpumask_var(&dom_cpumask_soft) )\n-    {\n-        free_cpumask_var(dom_cpumask);\n-        return;\n-    }\n-\n-    online = cpupool_domain_master_cpumask(d);\n-\n-    spin_lock(&d->node_affinity_lock);\n-\n-    /*\n-     * If d->auto_node_affinity is true, let's compute the domain's\n-     * node-affinity and update d->node_affinity accordingly. if false,\n-     * just leave d->auto_node_affinity alone.\n-     */\n-    if ( d->auto_node_affinity )\n-    {\n-        /*\n-         * We want the narrowest possible set of pcpus (to get the narowest\n-         * possible set of nodes). What we need is the cpumask of where the\n-         * domain can run (the union of the hard affinity of all its vcpus),\n-         * and the full mask of where it would prefer to run (the union of\n-         * the soft affinity of all its various vcpus). Let's build them.\n-         */\n-        for_each_sched_unit ( d, unit )\n-        {\n-            cpumask_or(dom_cpumask, dom_cpumask, unit->cpu_hard_affinity);\n-            cpumask_or(dom_cpumask_soft, dom_cpumask_soft,\n-                       unit->cpu_soft_affinity);\n-        }\n-        /* Filter out non-online cpus */\n-        cpumask_and(dom_cpumask, dom_cpumask, online);\n-        ASSERT(!cpumask_empty(dom_cpumask));\n-        /* And compute the intersection between hard, online and soft */\n-        cpumask_and(dom_cpumask_soft, dom_cpumask_soft, dom_cpumask);\n-\n-        /*\n-         * If not empty, the intersection of hard, soft and online is the\n-         * narrowest set we want. If empty, we fall back to hard&online.\n-         */\n-        dom_affinity = cpumask_empty(dom_cpumask_soft) ?\n-                           dom_cpumask : dom_cpumask_soft;\n-\n-        nodes_clear(d->node_affinity);\n-        for_each_cpu ( cpu, dom_affinity )\n-            node_set(cpu_to_node(cpu), d->node_affinity);\n-    }\n-\n-    spin_unlock(&d->node_affinity_lock);\n-\n-    free_cpumask_var(dom_cpumask_soft);\n-    free_cpumask_var(dom_cpumask);\n-}\n-\n-\n int domain_set_node_affinity(struct domain *d, const nodemask_t *affinity)\n {\n     /* Being disjoint with the system is just wrong. */\ndiff --git a/xen/common/domctl.c b/xen/common/domctl.c\nindex 03d0226039..3407db44fd 100644\n--- a/xen/common/domctl.c\n+++ b/xen/common/domctl.c\n@@ -11,7 +11,6 @@\n #include <xen/err.h>\n #include <xen/mm.h>\n #include <xen/sched.h>\n-#include <xen/sched-if.h>\n #include <xen/domain.h>\n #include <xen/event.h>\n #include <xen/grant_table.h>\n@@ -65,9 +64,9 @@ static int bitmap_to_xenctl_bitmap(struct xenctl_bitmap *xenctl_bitmap,\n     return err;\n }\n \n-static int xenctl_bitmap_to_bitmap(unsigned long *bitmap,\n-                                   const struct xenctl_bitmap *xenctl_bitmap,\n-                                   unsigned int nbits)\n+int xenctl_bitmap_to_bitmap(unsigned long *bitmap,\n+                            const struct xenctl_bitmap *xenctl_bitmap,\n+                            unsigned int nbits)\n {\n     unsigned int guest_bytes, copy_bytes;\n     int err = 0;\n@@ -200,7 +199,7 @@ void getdomaininfo(struct domain *d, struct xen_domctl_getdomaininfo *info)\n     info->shared_info_frame = mfn_to_gmfn(d, virt_to_mfn(d->shared_info));\n     BUG_ON(SHARED_M2P(info->shared_info_frame));\n \n-    info->cpupool = d->cpupool ? d->cpupool->cpupool_id : CPUPOOLID_NONE;\n+    info->cpupool = cpupool_get_id(d);\n \n     memcpy(info->handle, d->handle, sizeof(xen_domain_handle_t));\n \n@@ -234,16 +233,6 @@ void domctl_lock_release(void)\n     spin_unlock(&current->domain->hypercall_deadlock_mutex);\n }\n \n-static inline\n-int vcpuaffinity_params_invalid(const struct xen_domctl_vcpuaffinity *vcpuaff)\n-{\n-    return vcpuaff->flags == 0 ||\n-           ((vcpuaff->flags & XEN_VCPUAFFINITY_HARD) &&\n-            guest_handle_is_null(vcpuaff->cpumap_hard.bitmap)) ||\n-           ((vcpuaff->flags & XEN_VCPUAFFINITY_SOFT) &&\n-            guest_handle_is_null(vcpuaff->cpumap_soft.bitmap));\n-}\n-\n void vnuma_destroy(struct vnuma_info *vnuma)\n {\n     if ( vnuma )\n@@ -608,122 +597,8 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)\n \n     case XEN_DOMCTL_setvcpuaffinity:\n     case XEN_DOMCTL_getvcpuaffinity:\n-    {\n-        struct vcpu *v;\n-        const struct sched_unit *unit;\n-        struct xen_domctl_vcpuaffinity *vcpuaff = &op->u.vcpuaffinity;\n-\n-        ret = -EINVAL;\n-        if ( vcpuaff->vcpu >= d->max_vcpus )\n-            break;\n-\n-        ret = -ESRCH;\n-        if ( (v = d->vcpu[vcpuaff->vcpu]) == NULL )\n-            break;\n-\n-        unit = v->sched_unit;\n-        ret = -EINVAL;\n-        if ( vcpuaffinity_params_invalid(vcpuaff) )\n-            break;\n-\n-        if ( op->cmd == XEN_DOMCTL_setvcpuaffinity )\n-        {\n-            cpumask_var_t new_affinity, old_affinity;\n-            cpumask_t *online = cpupool_domain_master_cpumask(v->domain);\n-\n-            /*\n-             * We want to be able to restore hard affinity if we are trying\n-             * setting both and changing soft affinity (which happens later,\n-             * when hard affinity has been succesfully chaged already) fails.\n-             */\n-            if ( !alloc_cpumask_var(&old_affinity) )\n-            {\n-                ret = -ENOMEM;\n-                break;\n-            }\n-            cpumask_copy(old_affinity, unit->cpu_hard_affinity);\n-\n-            if ( !alloc_cpumask_var(&new_affinity) )\n-            {\n-                free_cpumask_var(old_affinity);\n-                ret = -ENOMEM;\n-                break;\n-            }\n-\n-            /* Undo a stuck SCHED_pin_override? */\n-            if ( vcpuaff->flags & XEN_VCPUAFFINITY_FORCE )\n-                vcpu_temporary_affinity(v, NR_CPUS, VCPU_AFFINITY_OVERRIDE);\n-\n-            ret = 0;\n-\n-            /*\n-             * We both set a new affinity and report back to the caller what\n-             * the scheduler will be effectively using.\n-             */\n-            if ( vcpuaff->flags & XEN_VCPUAFFINITY_HARD )\n-            {\n-                ret = xenctl_bitmap_to_bitmap(cpumask_bits(new_affinity),\n-                                              &vcpuaff->cpumap_hard,\n-                                              nr_cpu_ids);\n-                if ( !ret )\n-                    ret = vcpu_set_hard_affinity(v, new_affinity);\n-                if ( ret )\n-                    goto setvcpuaffinity_out;\n-\n-                /*\n-                 * For hard affinity, what we return is the intersection of\n-                 * cpupool's online mask and the new hard affinity.\n-                 */\n-                cpumask_and(new_affinity, online, unit->cpu_hard_affinity);\n-                ret = cpumask_to_xenctl_bitmap(&vcpuaff->cpumap_hard,\n-                                               new_affinity);\n-            }\n-            if ( vcpuaff->flags & XEN_VCPUAFFINITY_SOFT )\n-            {\n-                ret = xenctl_bitmap_to_bitmap(cpumask_bits(new_affinity),\n-                                              &vcpuaff->cpumap_soft,\n-                                              nr_cpu_ids);\n-                if ( !ret)\n-                    ret = vcpu_set_soft_affinity(v, new_affinity);\n-                if ( ret )\n-                {\n-                    /*\n-                     * Since we're returning error, the caller expects nothing\n-                     * happened, so we rollback the changes to hard affinity\n-                     * (if any).\n-                     */\n-                    if ( vcpuaff->flags & XEN_VCPUAFFINITY_HARD )\n-                        vcpu_set_hard_affinity(v, old_affinity);\n-                    goto setvcpuaffinity_out;\n-                }\n-\n-                /*\n-                 * For soft affinity, we return the intersection between the\n-                 * new soft affinity, the cpupool's online map and the (new)\n-                 * hard affinity.\n-                 */\n-                cpumask_and(new_affinity, new_affinity, online);\n-                cpumask_and(new_affinity, new_affinity,\n-                            unit->cpu_hard_affinity);\n-                ret = cpumask_to_xenctl_bitmap(&vcpuaff->cpumap_soft,\n-                                               new_affinity);\n-            }\n-\n- setvcpuaffinity_out:\n-            free_cpumask_var(new_affinity);\n-            free_cpumask_var(old_affinity);\n-        }\n-        else\n-        {\n-            if ( vcpuaff->flags & XEN_VCPUAFFINITY_HARD )\n-                ret = cpumask_to_xenctl_bitmap(&vcpuaff->cpumap_hard,\n-                                               unit->cpu_hard_affinity);\n-            if ( vcpuaff->flags & XEN_VCPUAFFINITY_SOFT )\n-                ret = cpumask_to_xenctl_bitmap(&vcpuaff->cpumap_soft,\n-                                               unit->cpu_soft_affinity);\n-        }\n+        ret = vcpu_affinity_domctl(d, op->cmd, &op->u.vcpuaffinity);\n         break;\n-    }\n \n     case XEN_DOMCTL_scheduler_op:\n         ret = sched_adjust(d, &op->u.scheduler_op);\ndiff --git a/xen/common/sched/cpupool.c b/xen/common/sched/cpupool.c\nindex 4d3adbdd8d..d5b64d0a6a 100644\n--- a/xen/common/sched/cpupool.c\n+++ b/xen/common/sched/cpupool.c\n@@ -16,11 +16,12 @@\n #include <xen/cpumask.h>\n #include <xen/percpu.h>\n #include <xen/sched.h>\n-#include <xen/sched-if.h>\n #include <xen/warning.h>\n #include <xen/keyhandler.h>\n #include <xen/cpu.h>\n \n+#include \"sched-if.h\"\n+\n #define for_each_cpupool(ptr)    \\\n     for ((ptr) = &cpupool_list; *(ptr) != NULL; (ptr) = &((*(ptr))->next))\n \n@@ -876,6 +877,16 @@ int cpupool_do_sysctl(struct xen_sysctl_cpupool_op *op)\n     return ret;\n }\n \n+int cpupool_get_id(const struct domain *d)\n+{\n+    return d->cpupool ? d->cpupool->cpupool_id : CPUPOOLID_NONE;\n+}\n+\n+cpumask_t *cpupool_valid_cpus(struct cpupool *pool)\n+{\n+    return pool->cpu_valid;\n+}\n+\n void dump_runq(unsigned char key)\n {\n     unsigned long    flags;\ndiff --git a/xen/include/xen/sched-if.h b/xen/common/sched/sched-if.h\nsimilarity index 99%\nrename from xen/include/xen/sched-if.h\nrename to xen/common/sched/sched-if.h\nindex b0ac54e63d..a702fd23b1 100644\n--- a/xen/include/xen/sched-if.h\n+++ b/xen/common/sched/sched-if.h\n@@ -12,9 +12,6 @@\n #include <xen/err.h>\n #include <xen/rcupdate.h>\n \n-/* A global pointer to the initial cpupool (POOL0). */\n-extern struct cpupool *cpupool0;\n-\n /* cpus currently in no cpupool */\n extern cpumask_t cpupool_free_cpus;\n \ndiff --git a/xen/common/sched/sched_arinc653.c b/xen/common/sched/sched_arinc653.c\nindex 565575c326..fe15754900 100644\n--- a/xen/common/sched/sched_arinc653.c\n+++ b/xen/common/sched/sched_arinc653.c\n@@ -26,7 +26,6 @@\n \n #include <xen/lib.h>\n #include <xen/sched.h>\n-#include <xen/sched-if.h>\n #include <xen/timer.h>\n #include <xen/softirq.h>\n #include <xen/time.h>\n@@ -35,6 +34,8 @@\n #include <xen/guest_access.h>\n #include <public/sysctl.h>\n \n+#include \"sched-if.h\"\n+\n /**************************************************************************\n  * Private Macros                                                         *\n  **************************************************************************/\ndiff --git a/xen/common/sched/sched_credit.c b/xen/common/sched/sched_credit.c\nindex aa41a3301b..a098ca0f3a 100644\n--- a/xen/common/sched/sched_credit.c\n+++ b/xen/common/sched/sched_credit.c\n@@ -15,7 +15,6 @@\n #include <xen/delay.h>\n #include <xen/event.h>\n #include <xen/time.h>\n-#include <xen/sched-if.h>\n #include <xen/softirq.h>\n #include <asm/atomic.h>\n #include <asm/div64.h>\n@@ -24,6 +23,7 @@\n #include <xen/trace.h>\n #include <xen/err.h>\n \n+#include \"sched-if.h\"\n \n /*\n  * Locking:\ndiff --git a/xen/common/sched/sched_credit2.c b/xen/common/sched/sched_credit2.c\nindex f7c477053c..5bfe1441a2 100644\n--- a/xen/common/sched/sched_credit2.c\n+++ b/xen/common/sched/sched_credit2.c\n@@ -18,7 +18,6 @@\n #include <xen/event.h>\n #include <xen/time.h>\n #include <xen/perfc.h>\n-#include <xen/sched-if.h>\n #include <xen/softirq.h>\n #include <asm/div64.h>\n #include <xen/errno.h>\n@@ -26,6 +25,8 @@\n #include <xen/cpu.h>\n #include <xen/keyhandler.h>\n \n+#include \"sched-if.h\"\n+\n /* Meant only for helping developers during debugging. */\n /* #define d2printk printk */\n #define d2printk(x...)\ndiff --git a/xen/common/sched/sched_null.c b/xen/common/sched/sched_null.c\nindex 3f3418c9b1..5a23a7e7dc 100644\n--- a/xen/common/sched/sched_null.c\n+++ b/xen/common/sched/sched_null.c\n@@ -29,10 +29,11 @@\n  */\n \n #include <xen/sched.h>\n-#include <xen/sched-if.h>\n #include <xen/softirq.h>\n #include <xen/trace.h>\n \n+#include \"sched-if.h\"\n+\n /*\n  * null tracing events. Check include/public/trace.h for more details.\n  */\ndiff --git a/xen/common/sched/sched_rt.c b/xen/common/sched/sched_rt.c\nindex b2b29481f3..379b56bc2a 100644\n--- a/xen/common/sched/sched_rt.c\n+++ b/xen/common/sched/sched_rt.c\n@@ -20,7 +20,6 @@\n #include <xen/time.h>\n #include <xen/timer.h>\n #include <xen/perfc.h>\n-#include <xen/sched-if.h>\n #include <xen/softirq.h>\n #include <asm/atomic.h>\n #include <xen/errno.h>\n@@ -31,6 +30,8 @@\n #include <xen/err.h>\n #include <xen/guest_access.h>\n \n+#include \"sched-if.h\"\n+\n /*\n  * TODO:\n  *\ndiff --git a/xen/common/sched/schedule.c b/xen/common/sched/schedule.c\nindex a550dd8f93..c751faa741 100644\n--- a/xen/common/sched/schedule.c\n+++ b/xen/common/sched/schedule.c\n@@ -23,7 +23,6 @@\n #include <xen/time.h>\n #include <xen/timer.h>\n #include <xen/perfc.h>\n-#include <xen/sched-if.h>\n #include <xen/softirq.h>\n #include <xen/trace.h>\n #include <xen/mm.h>\n@@ -38,6 +37,8 @@\n #include <xsm/xsm.h>\n #include <xen/err.h>\n \n+#include \"sched-if.h\"\n+\n #ifdef CONFIG_XEN_GUEST\n #include <asm/guest.h>\n #else\n@@ -1607,6 +1608,194 @@ int vcpu_temporary_affinity(struct vcpu *v, unsigned int cpu, uint8_t reason)\n     return ret;\n }\n \n+static inline\n+int vcpuaffinity_params_invalid(const struct xen_domctl_vcpuaffinity *vcpuaff)\n+{\n+    return vcpuaff->flags == 0 ||\n+           ((vcpuaff->flags & XEN_VCPUAFFINITY_HARD) &&\n+            guest_handle_is_null(vcpuaff->cpumap_hard.bitmap)) ||\n+           ((vcpuaff->flags & XEN_VCPUAFFINITY_SOFT) &&\n+            guest_handle_is_null(vcpuaff->cpumap_soft.bitmap));\n+}\n+\n+int vcpu_affinity_domctl(struct domain *d, uint32_t cmd,\n+                         struct xen_domctl_vcpuaffinity *vcpuaff)\n+{\n+    struct vcpu *v;\n+    const struct sched_unit *unit;\n+    int ret = 0;\n+\n+    if ( vcpuaff->vcpu >= d->max_vcpus )\n+        return -EINVAL;\n+\n+    if ( (v = d->vcpu[vcpuaff->vcpu]) == NULL )\n+        return -ESRCH;\n+\n+    if ( vcpuaffinity_params_invalid(vcpuaff) )\n+        return -EINVAL;\n+\n+    unit = v->sched_unit;\n+\n+    if ( cmd == XEN_DOMCTL_setvcpuaffinity )\n+    {\n+        cpumask_var_t new_affinity, old_affinity;\n+        cpumask_t *online = cpupool_domain_master_cpumask(v->domain);\n+\n+        /*\n+         * We want to be able to restore hard affinity if we are trying\n+         * setting both and changing soft affinity (which happens later,\n+         * when hard affinity has been succesfully chaged already) fails.\n+         */\n+        if ( !alloc_cpumask_var(&old_affinity) )\n+            return -ENOMEM;\n+\n+        cpumask_copy(old_affinity, unit->cpu_hard_affinity);\n+\n+        if ( !alloc_cpumask_var(&new_affinity) )\n+        {\n+            free_cpumask_var(old_affinity);\n+            return -ENOMEM;\n+        }\n+\n+        /* Undo a stuck SCHED_pin_override? */\n+        if ( vcpuaff->flags & XEN_VCPUAFFINITY_FORCE )\n+            vcpu_temporary_affinity(v, NR_CPUS, VCPU_AFFINITY_OVERRIDE);\n+\n+        ret = 0;\n+\n+        /*\n+         * We both set a new affinity and report back to the caller what\n+         * the scheduler will be effectively using.\n+         */\n+        if ( vcpuaff->flags & XEN_VCPUAFFINITY_HARD )\n+        {\n+            ret = xenctl_bitmap_to_bitmap(cpumask_bits(new_affinity),\n+                                          &vcpuaff->cpumap_hard, nr_cpu_ids);\n+            if ( !ret )\n+                ret = vcpu_set_hard_affinity(v, new_affinity);\n+            if ( ret )\n+                goto setvcpuaffinity_out;\n+\n+            /*\n+             * For hard affinity, what we return is the intersection of\n+             * cpupool's online mask and the new hard affinity.\n+             */\n+            cpumask_and(new_affinity, online, unit->cpu_hard_affinity);\n+            ret = cpumask_to_xenctl_bitmap(&vcpuaff->cpumap_hard, new_affinity);\n+        }\n+        if ( vcpuaff->flags & XEN_VCPUAFFINITY_SOFT )\n+        {\n+            ret = xenctl_bitmap_to_bitmap(cpumask_bits(new_affinity),\n+                                          &vcpuaff->cpumap_soft, nr_cpu_ids);\n+            if ( !ret)\n+                ret = vcpu_set_soft_affinity(v, new_affinity);\n+            if ( ret )\n+            {\n+                /*\n+                 * Since we're returning error, the caller expects nothing\n+                 * happened, so we rollback the changes to hard affinity\n+                 * (if any).\n+                 */\n+                if ( vcpuaff->flags & XEN_VCPUAFFINITY_HARD )\n+                    vcpu_set_hard_affinity(v, old_affinity);\n+                goto setvcpuaffinity_out;\n+            }\n+\n+            /*\n+             * For soft affinity, we return the intersection between the\n+             * new soft affinity, the cpupool's online map and the (new)\n+             * hard affinity.\n+             */\n+            cpumask_and(new_affinity, new_affinity, online);\n+            cpumask_and(new_affinity, new_affinity, unit->cpu_hard_affinity);\n+            ret = cpumask_to_xenctl_bitmap(&vcpuaff->cpumap_soft, new_affinity);\n+        }\n+\n+ setvcpuaffinity_out:\n+        free_cpumask_var(new_affinity);\n+        free_cpumask_var(old_affinity);\n+    }\n+    else\n+    {\n+        if ( vcpuaff->flags & XEN_VCPUAFFINITY_HARD )\n+            ret = cpumask_to_xenctl_bitmap(&vcpuaff->cpumap_hard,\n+                                           unit->cpu_hard_affinity);\n+        if ( vcpuaff->flags & XEN_VCPUAFFINITY_SOFT )\n+            ret = cpumask_to_xenctl_bitmap(&vcpuaff->cpumap_soft,\n+                                           unit->cpu_soft_affinity);\n+    }\n+\n+    return ret;\n+}\n+\n+void domain_update_node_affinity(struct domain *d)\n+{\n+    cpumask_var_t dom_cpumask, dom_cpumask_soft;\n+    cpumask_t *dom_affinity;\n+    const cpumask_t *online;\n+    struct sched_unit *unit;\n+    unsigned int cpu;\n+\n+    /* Do we have vcpus already? If not, no need to update node-affinity. */\n+    if ( !d->vcpu || !d->vcpu[0] )\n+        return;\n+\n+    if ( !zalloc_cpumask_var(&dom_cpumask) )\n+        return;\n+    if ( !zalloc_cpumask_var(&dom_cpumask_soft) )\n+    {\n+        free_cpumask_var(dom_cpumask);\n+        return;\n+    }\n+\n+    online = cpupool_domain_master_cpumask(d);\n+\n+    spin_lock(&d->node_affinity_lock);\n+\n+    /*\n+     * If d->auto_node_affinity is true, let's compute the domain's\n+     * node-affinity and update d->node_affinity accordingly. if false,\n+     * just leave d->auto_node_affinity alone.\n+     */\n+    if ( d->auto_node_affinity )\n+    {\n+        /*\n+         * We want the narrowest possible set of pcpus (to get the narowest\n+         * possible set of nodes). What we need is the cpumask of where the\n+         * domain can run (the union of the hard affinity of all its vcpus),\n+         * and the full mask of where it would prefer to run (the union of\n+         * the soft affinity of all its various vcpus). Let's build them.\n+         */\n+        for_each_sched_unit ( d, unit )\n+        {\n+            cpumask_or(dom_cpumask, dom_cpumask, unit->cpu_hard_affinity);\n+            cpumask_or(dom_cpumask_soft, dom_cpumask_soft,\n+                       unit->cpu_soft_affinity);\n+        }\n+        /* Filter out non-online cpus */\n+        cpumask_and(dom_cpumask, dom_cpumask, online);\n+        ASSERT(!cpumask_empty(dom_cpumask));\n+        /* And compute the intersection between hard, online and soft */\n+        cpumask_and(dom_cpumask_soft, dom_cpumask_soft, dom_cpumask);\n+\n+        /*\n+         * If not empty, the intersection of hard, soft and online is the\n+         * narrowest set we want. If empty, we fall back to hard&online.\n+         */\n+        dom_affinity = cpumask_empty(dom_cpumask_soft) ?\n+                           dom_cpumask : dom_cpumask_soft;\n+\n+        nodes_clear(d->node_affinity);\n+        for_each_cpu ( cpu, dom_affinity )\n+            node_set(cpu_to_node(cpu), d->node_affinity);\n+    }\n+\n+    spin_unlock(&d->node_affinity_lock);\n+\n+    free_cpumask_var(dom_cpumask_soft);\n+    free_cpumask_var(dom_cpumask);\n+}\n+\n typedef long ret_t;\n \n #endif /* !COMPAT */\ndiff --git a/xen/include/xen/domain.h b/xen/include/xen/domain.h\nindex 769302057b..c931eab4a9 100644\n--- a/xen/include/xen/domain.h\n+++ b/xen/include/xen/domain.h\n@@ -27,6 +27,9 @@ struct xen_domctl_getdomaininfo;\n void getdomaininfo(struct domain *d, struct xen_domctl_getdomaininfo *info);\n void arch_get_domain_info(const struct domain *d,\n                           struct xen_domctl_getdomaininfo *info);\n+int xenctl_bitmap_to_bitmap(unsigned long *bitmap,\n+                            const struct xenctl_bitmap *xenctl_bitmap,\n+                            unsigned int nbits);\n \n /*\n  * Arch-specifics.\ndiff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h\nindex 9f7bc69293..2507a833c2 100644\n--- a/xen/include/xen/sched.h\n+++ b/xen/include/xen/sched.h\n@@ -50,6 +50,9 @@ DEFINE_XEN_GUEST_HANDLE(vcpu_runstate_info_compat_t);\n /* A global pointer to the hardware domain (usually DOM0). */\n extern struct domain *hardware_domain;\n \n+/* A global pointer to the initial cpupool (POOL0). */\n+extern struct cpupool *cpupool0;\n+\n #ifdef CONFIG_LATE_HWDOM\n extern domid_t hardware_domid;\n #else\n@@ -929,6 +932,8 @@ int vcpu_temporary_affinity(struct vcpu *v, unsigned int cpu, uint8_t reason);\n int vcpu_set_hard_affinity(struct vcpu *v, const cpumask_t *affinity);\n int vcpu_set_soft_affinity(struct vcpu *v, const cpumask_t *affinity);\n void restore_vcpu_affinity(struct domain *d);\n+int vcpu_affinity_domctl(struct domain *d, uint32_t cmd,\n+                         struct xen_domctl_vcpuaffinity *vcpuaff);\n \n void vcpu_runstate_get(struct vcpu *v, struct vcpu_runstate_info *runstate);\n uint64_t get_cpu_idle_time(unsigned int cpu);\n@@ -1054,6 +1059,8 @@ int cpupool_add_domain(struct domain *d, int poolid);\n void cpupool_rm_domain(struct domain *d);\n int cpupool_move_domain(struct domain *d, struct cpupool *c);\n int cpupool_do_sysctl(struct xen_sysctl_cpupool_op *op);\n+int cpupool_get_id(const struct domain *d);\n+cpumask_t *cpupool_valid_cpus(struct cpupool *pool);\n void schedule_dump(struct cpupool *c);\n extern void dump_runq(unsigned char key);\n \n-- \n2.16.4\n\n\nFrom - Wed Dec 18 11:05:12 2019\nReceived: from FTLPEX02AMS01.citrite.net (10.13.108.166) by\n AMSPEX02CL01.citrite.net (10.69.22.125) with Microsoft SMTP Server (TLS) id\n 15.0.1473.3 via Mailbox Transport; Wed, 18 Dec 2019 08:49:09 +0100\nReceived: from MIAPEX02MSOL02.citrite.net (10.52.109.12) by\n FTLPEX02AMS01.citrite.net (10.13.108.166) with Microsoft SMTP Server (TLS) id\n 15.0.1473.3; Wed, 18 Dec 2019 02:49:07 -0500\nReceived: from esa6.hc3370-68.iphmx.com (10.9.154.239) by\n MIAPEX02MSOL02.citrite.net (10.52.109.12) with Microsoft SMTP Server (TLS) id\n 15.0.1473.3 via Frontend Transport; Wed, 18 Dec 2019 02:49:07 -0500\nAuthentication-Results: esa6.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none; spf=None smtp.pra=jgross@suse.com; spf=Pass smtp.mailfrom=jgross@suse.com; spf=None smtp.helo=postmaster@mx2.suse.de\nReceived-SPF: None (esa6.hc3370-68.iphmx.com: no sender\n  authenticity information available from domain of\n  jgross@suse.com) identity=pra; client-ip=195.135.220.15;\n  receiver=esa6.hc3370-68.iphmx.com;\n  envelope-from=\"jgross@suse.com\"; x-sender=\"jgross@suse.com\";\n  x-conformance=sidf_compatible\nReceived-SPF: Pass (esa6.hc3370-68.iphmx.com: domain of\n  jgross@suse.com designates 195.135.220.15 as permitted\n  sender) identity=mailfrom; client-ip=195.135.220.15;\n  receiver=esa6.hc3370-68.iphmx.com;\n  envelope-from=\"jgross@suse.com\"; x-sender=\"jgross@suse.com\";\n  x-conformance=sidf_compatible; x-record-type=\"v=spf1\";\n  x-record-text=\"v=spf1 ip4:103.9.96.0/22 ip4:117.120.16.0/21\n  ip4:130.57.0.0/16 ip4:137.65.0.0/16 ip4:143.186.119.0/24\n  ip4:147.2.0.0/16 ip4:149.44.0.0/16 ip4:162.249.213.164\n  ip4:164.99.0.0/16 ip4:165.180.149.103 ip4:173.203.201.103\n  ip4:193.109.254.0/23 ip4:194.106.220.0/23\n  ip4:194.116.198.0/23 ip4:195.135.220.0/23\n  ip4:195.245.230.0/23 ip4:196.14.170.0/23 ip4:34.252.226.93\n  include:spf1.novell.com include:spf2.novell.com\n  include:spf3.novell.com include:spf.protection.outlook.com\n  -all\"\nReceived-SPF: None (esa6.hc3370-68.iphmx.com: no sender\n  authenticity information available from domain of\n  postmaster@mx2.suse.de) identity=helo;\n  client-ip=195.135.220.15; receiver=esa6.hc3370-68.iphmx.com;\n  envelope-from=\"jgross@suse.com\";\n  x-sender=\"postmaster@mx2.suse.de\";\n  x-conformance=sidf_compatible\nIronPort-SDR: 5AHlZpcuN0oQE0jWt7j2JFvOxLrEq5aX3qsccfGzRXuTwBDz5xHi+uW8InO8uDFZf42rcLjJma\n N37Z/hooXVWkhTipsh/omyxNt/93alSGTCYTWq9QeyApFh7ryMrYdvdyz9+lXK8fHU+ASlAaUt\n Np3RFPHimPHHaFExayNaM2zNweevNVUBE8rHbKa1Huue6owMB1JaS71dTARLbMoVcaAfpz4IP7\n jDOxodkWVigR99K44Uq5LkneZQhRF54KoSBsSP07z6fNoNcGK6VrCK2h203llZ2VrS5hBGL/sF\n p+rG4VvkiaGSoteiAWDmRPDZ\nX-IronPort-RemoteIP: 195.135.220.15\nX-IronPort-MID: 10279307\nX-IronPort-Reputation: 3.4\nX-IronPort-Listener: InboundMail\nX-IronPort-SenderGroup: ValidList\nX-IronPort-MailFlowPolicy: $ACCEPTED\nX-SBRS: 3.4\nX-MesageID: 10279307\nX-Ironport-Server: esa6.hc3370-68.iphmx.com\nX-Remote-IP: 195.135.220.15\nX-Policy: $ACCEPTED\nIronPort-PHdr: =?us-ascii?q?9a23=3A7yFWAxRDEMJUtR9nSoVBKkpyLdpsv+yvbD5Q0Y?=\n =?us-ascii?q?Iujvd0So/mwa6yZhCN2/xhgRfzUJnB7Loc0qyK6vumAzRQqs/Y6zgrS99lb1?=\n =?us-ascii?q?c9k8IYnggtUoauKHbQC7rUVRE8B9lIT1R//nu2YgB/Ecf6YEDO8DXptWZBUh?=\n =?us-ascii?q?rwOhBoKevrB4Xck9q41/yo+53Ufg5EmCexbal9IRmrowjdrNcajZdhJ6o+1x?=\n =?us-ascii?q?fFv3VFcPlKyG11Il6egwzy7dqq8p559CRQtfMh98peXqj/Yq81U79WAik4Pm?=\n =?us-ascii?q?4s/MHkugXNQgWJ5nsHT2UZiQFIDBTf7BH7RZj+rC33vfdg1SaAPM32Sbc0WS?=\n =?us-ascii?q?m+76puVRTlhjsLOyI//WrKkcF7kr5Vrwy9qBx+247UYZ+aNPxifqPGYNgWQX?=\n =?us-ascii?q?NNUttNWyBdB4+xaZYEAegcMuZCt4Tzp0UAowawCwevA+3gyDFIi2Tq0aEmye?=\n =?us-ascii?q?ktDRvL0BA8E98IrX/arM/1NKAXUe2tyKfI0CvMb+lZ2Tjj7ojDbxEvoeuLXb?=\n =?us-ascii?q?Jrasra1E4iFwHKjlWKrozlJCiV2/8Ws2iG9OpvS/ijhHIgqwF0uzWiwNonhI?=\n =?us-ascii?q?rRho8N11zJ8SV0zJwoKdC2SEN3e8CoHIVMuy2AKod7QtsuT3xstSs60LEKpJ?=\n =?us-ascii?q?C2cSgQxJg52RLTd+aLf5aI7x/sUuuaPC12i2h/eL2lgha/6UigxfP4VsmzyF?=\n =?us-ascii?q?tKqyVEnsfWunAWyhzT8daIRuFg8Ui/wTqP1gbT5f9YIU0siKbWL54szqQtmp?=\n =?us-ascii?q?cdsUnPBDH6lFvqgKOMa0kp+vCk6+H9bbXnop+cOZV0igb7Mqk2mMy/Dv44Mg?=\n =?us-ascii?q?8VX2iA4um8z6Dj/VbnT7lQkvI2lazZvIjAJcsHvq65HxNV0oE75hawETim18?=\n =?us-ascii?q?4YnXYZI15fZR2Hko7pO1XUL/DgFvqwnUmsnC13yPDHIr3hGJTNL3fZnLj9er?=\n =?us-ascii?q?Z97lZWyBAvwtBH+5JUFrYBLeryWkDrstzUFB05PBaozObkE9V90YUeVHmRDa?=\n =?us-ascii?q?+EKq/drV6I5v41I+mNa44ZoiryK/8g562msXhsiVIbOKWkw5YTQHS5Beh9ZV?=\n =?us-ascii?q?WUZ2L2hdUMGntMuRAxH8Lwj1jXcyNefXm/WeoT/DYgE8ryD4jZQZu2qKecxy?=\n =?us-ascii?q?r9FZpTMDMVQmuQGGvlIt3XE8wHbzifd4o4ymReD+qIVpMh2BeytQTz17tgKK?=\n =?us-ascii?q?/u9zYFsY74jYglteDInE909TcvVJvFlj/dCWBsnmYYATQx2fM3rU98zwKF1q?=\n =?us-ascii?q?51y7xdGMdI7vxEGgE9KdbHzuN8BtyzEgLMd9uEUhCnF9OhBzxiBskpzYooZE?=\n =?us-ascii?q?BwU86nkgiFxzCjVr0ajbuQH7Qv77nRmXP2IpU10G7IgZEolEJuWc5TLSujj6?=\n =?us-ascii?q?97+RLUAtvLnF+ejL2CbrkH0WjG82LQhXGWshR+Vwh9Gb7AQWhZZkbSqoHh4V?=\n =?us-ascii?q?jeSra1Fbk9Gg5Rk4iZN7BHLNHk1A8UfvroNdXAbm70oF+eX0bZlJWLaoeiO2?=\n =?us-ascii?q?gG1XubCENfyF9LuCjWcwkmBiKx5WnZCW4mE1WneE7q/eRkzRHzBkYp0wGHaV?=\n =?us-ascii?q?Fg3Lup61YUg/KbUfYawrMDvm8otTx1GF+329+eBcCHokJte6BVYNV151kity?=\n =?us-ascii?q?qRtQNnOYe7B7t/nVNYeANy/gvv2xhxFoRcgJ0ytnp5hAF2KK+ezBZAb2bBjM?=\n =?us-ascii?q?22Y+aKbDOopFb2Nv2zuBmWytud96YR5e5tpk7q4kepHRF5rC0ijYkT0mOc44?=\n =?us-ascii?q?WMBw0XAveTGg468QZ3o7bCb2wz/YTRgDduPrOzqSTqwM8yCa0uzRPqLJ9Pdb?=\n =?us-ascii?q?iJEgP/CZhQBce0L/cxs0O0dR9CN+dXvv1RXYvuZ76N36ilO/xllTStgDFc4Y?=\n =?us-ascii?q?xz5UmL8jJ1Vu/C25tcmaOi0wCKVinxgBKaiu6nwtkWXTgJBSL/xDPtWshRbf?=\n =?us-ascii?q?YpIt5OVzfoItW3w8U4jJnoCTZU81uqBlVO38HMG1LabVPn2hZL/V8KunHhki?=\n =?us-ascii?q?y9hzB5iDAmqKOD0TeGmrW/MkNcZygRHjEk1AqkKJP8l90AWUm0cwUl8XntrV?=\n =?us-ascii?q?33waRWvuU3LmXeR1tJYzmjKmhjVqWqsb/RK8VL6Z4urWBWSLHlMA3cE+Wg5U?=\n =?us-ascii?q?FAi2W6Qjg7pnhzbTyht5TnkgYvhXmUcjBzpyGCJpk1m0eZ5cTcQO4X1T0DF0?=\n =?us-ascii?q?wawXHaAEaxO96x8JCajZDG56q8WHimTYZ7ajTwwMWLsy7xtiV6RAaymfy+gI?=\n =?us-ascii?q?itEwcg1jTg/8J3TiiOpxH5KNqOtezyIadseU9mA0X54sxxF9Rlk4c+s5oX3G?=\n =?us-ascii?q?ATmpSf+XdU2Xe2K9hQ3rjyKWYcXTNeicCA+xDrgQcwSxDBj5K8THiWxdFtIs?=\n =?us-ascii?q?W3cn9DkDxo9NhEUe+V9OAWxHMu5Av+/FyXOb8nxH8c0ad8sSdFxbhT4Ex0kG?=\n =?us-ascii?q?PFRepLeCsQdS30y0bRtIj48foRPCD3NuHunEtmwYL4V+7E/FwaADChPc58VS?=\n =?us-ascii?q?5ospcmbAmKiS2trNi9KZ+IKohP03/c2xbY07oMdM13zLxSw3IgYDy1vGV5mb?=\n =?us-ascii?q?dn3Foygdfi+tDAcjsl/brlUEcGbHuvO5JVoGi2y/8AwqP0l8iuBskzQ2tXGs?=\n =?us-ascii?q?q5C6ruSHVL67zmL1rcSWNh7C7LQfyGQV7ZsR8953PXT8LyaCrRfiFCi486HV?=\n =?us-ascii?q?/EfBc64khcXS1mzMdoTUbznJ2nKholoGhWvAWwqwMQmLs5a1+mCjmZ/l3wLG?=\n =?us-ascii?q?9zEsP6TlIe7xketR6EbYrHt7w1RnAIuMXm9lfFK3THNV0ZUCdQARHCXQq7eO?=\n =?us-ascii?q?Hpv4KlkaDQB/LifaKfPPPU9bEYDazQg8roiNAu/i7QZJzeYD87U7tihRIFBT?=\n =?us-ascii?q?cjQIzYg2ldEHBRzX+XKZTB+lHtoUgV5oi+9v/vRQ7it5CXBeIUN9Jx9hSyx6?=\n =?us-ascii?q?yEMqaRgi19NDpVhIgUyyWOzr8B0VoWzSppclzPWfwBsyXJUa7dyLRPAUVdbS?=\n =?us-ascii?q?RtOc9Mqak720FMP8Xfl9/4hKVggLgtEVBZWFf9m8avI8sXP2W6M1CBD0GOUd?=\n =?us-ascii?q?bObXjCx8W9OPnuc7BbgeRKuhH1gg61SBe8bBKEkTShFx20OL8KjCrAZ0MG/d?=\n =?us-ascii?q?/tNBd1CW3zCtnhb0/zNtg/ljAwzbAu4xGCfWcBLThxdV9MpbyM/GtZhPt4AW?=\n =?us-ascii?q?lI8ntiK6GNhS+Y6+DSLptev+FsB2x4kOdT4XJyzLUwjmkMXPtuhC7btcJjuX?=\n =?us-ascii?q?mjgrPJ0Sd8XVxCp3cDhY6Gu1ljJbSM9pREXiWhnlpF5mGRBhIW4tp9X4S+5u?=\n =?us-ascii?q?YJkYWJzvirbm4foJrO8MARBtbZMpeKK3N/dxriQ2WLVE5bHXiqLWHalwpWl/?=\n =?us-ascii?q?TBkx/d5pU8tJXon4IDD7FBU1lgXPEVEEN+B/QZPYx6GDgjlPTI6axArWr7tx?=\n =?us-ascii?q?TXSMhA69rfUemOBPz0NDuDpbxUPV0T3Kj1a4gefN6euQQqehxxm4LEHFDVVN?=\n =?us-ascii?q?ZGr3h6bwM6l05K9WB3Umw530+8N1GdpUQLHPvxpSYYzwtzZeN0r2Xp8w1xPU?=\n =?us-ascii?q?fRqW08nRtpwIm3sXWqaDf0aZyIc8ROESOt7xoqL4j2BQ1yaF/qxB02BHL/X7?=\n =?us-ascii?q?tUyoBYWyVugQ7Yt4FIHKcEH7ZZexJWzvaSNawl?=\nX-IronPort-Anti-Spam-Filtered: true\nX-IronPort-Anti-Spam-Result: =?us-ascii?q?A0FNAgBM2fldhg/ch8NlHgELHIQZgUY?=\n =?us-ascii?q?jBAsqky+dQAkEAQELLwEBAYQ/AoIaHAcBBDQTAgMBDAEBAQMBAQECAQIDAgI?=\n =?us-ascii?q?BAQIQAQEBCgkLCCmFSoI7KQGDTwIBAxIVUhA/ElcZIoMAgnyhKD0CIwFMgQS?=\n =?us-ascii?q?KfjOJDoFIgTaHP4RZGoFBP4RiijcEjUKCOJ8Pgj6WBgwbjlGLfalEgWmBezM?=\n =?us-ascii?q?aCBsVgydQERSNHg4JjiRAM48lAQE?=\nX-IPAS-Result: =?us-ascii?q?A0FNAgBM2fldhg/ch8NlHgELHIQZgUYjBAsqky+dQAkEA?=\n =?us-ascii?q?QELLwEBAYQ/AoIaHAcBBDQTAgMBDAEBAQMBAQECAQIDAgIBAQIQAQEBCgkLC?=\n =?us-ascii?q?CmFSoI7KQGDTwIBAxIVUhA/ElcZIoMAgnyhKD0CIwFMgQSKfjOJDoFIgTaHP?=\n =?us-ascii?q?4RZGoFBP4RiijcEjUKCOJ8Pgj6WBgwbjlGLfalEgWmBezMaCBsVgydQERSNH?=\n =?us-ascii?q?g4JjiRAM48lAQE?=\nX-IronPort-AV: E=Sophos;i=\"5.69,328,1571716800\"; \n   d=\"scan'208\";a=\"10279307\"\nX-Amp-Result: SKIPPED(no attachment in message)\nX-Amp-File-Uploaded: False\nX-IronPort-Outbreak-Status: No, level 0, Unknown - Unknown\nX-MGA-submission: =?us-ascii?q?MDEwUyy/5Umc1R+ooIoSsUzGk1x7dMdNLSlGey?=\n =?us-ascii?q?ZPLRRTBFGBjo3NF/EwMNqjnIEWErRTRr7xwhuhDBakcvRZxSTQx2Qe8N?=\n =?us-ascii?q?enNFnyNZ91ThSX15Gg7wWu5LPp97RF08RTrSEElo5aaiik8+BTY3VbCp?=\n =?us-ascii?q?IEYaPBkIjZJBhCkMsvDkrEiA=3D=3D?=\nReceived: from mx2.suse.de ([195.135.220.15])\n  by esa6.hc3370-68.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Dec 2019 02:49:04 -0500\nX-Virus-Scanned: by amavisd-new at test-mx.suse.de\nReceived: from relay2.suse.de (unknown [195.135.220.254])\n\tby mx2.suse.de (Postfix) with ESMTP id 84EE8AD5F;\n\tWed, 18 Dec 2019 07:49:03 +0000 (UTC)\nFrom: Juergen Gross <jgross@suse.com>\nTo: <xen-devel@lists.xenproject.org>\nCC: Juergen Gross <jgross@suse.com>, George Dunlap\n\t<george.dunlap@eu.citrix.com>, Dario Faggioli <dfaggioli@suse.com>, \"Andrew\n Cooper\" <andrew.cooper3@citrix.com>, Ian Jackson <ian.jackson@eu.citrix.com>,\n\tJan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>, \"Konrad\n Rzeszutek Wilk\" <konrad.wilk@oracle.com>, Stefano Stabellini\n\t<sstabellini@kernel.org>, Wei Liu <wl@xen.org>\nSubject: [PATCH 3/9] xen/sched: cleanup sched.h\nDate: Wed, 18 Dec 2019 08:48:53 +0100\nMessage-ID: <20191218074859.21665-4-jgross@suse.com>\nX-Mailer: git-send-email 2.16.4\nIn-Reply-To: <20191218074859.21665-1-jgross@suse.com>\nReferences: <20191218074859.21665-1-jgross@suse.com>\nReturn-Path: jgross@suse.com\nContent-Type: text/plain\nX-MS-Exchange-Organization-Network-Message-Id: 9438aefa-6e2f-459e-d6f5-08d7838ec312\nX-MS-Exchange-Organization-AVStamp-Enterprise: 1.0\nX-MS-Exchange-Organization-AuthSource: MIAPEX02MSOL02.citrite.net\nX-MS-Exchange-Organization-AuthAs: Anonymous\nMIME-Version: 1.0\n\nThere are some items in include/xen/sched.h which can be moved to\nsched-if.h as they are scheduler private.\n\nSigned-off-by: Juergen Gross <jgross@suse.com>\n---\n xen/common/sched/sched-if.h | 13 +++++++++++++\n xen/common/sched/schedule.c |  2 +-\n xen/include/xen/sched.h     | 17 -----------------\n 3 files changed, 14 insertions(+), 18 deletions(-)\n\ndiff --git a/xen/common/sched/sched-if.h b/xen/common/sched/sched-if.h\nindex a702fd23b1..edce354dc7 100644\n--- a/xen/common/sched/sched-if.h\n+++ b/xen/common/sched/sched-if.h\n@@ -533,6 +533,7 @@ static inline void sched_unit_unpause(const struct sched_unit *unit)\n struct cpupool\n {\n     int              cpupool_id;\n+#define CPUPOOLID_NONE    -1\n     unsigned int     n_dom;\n     cpumask_var_t    cpu_valid;      /* all cpus assigned to pool */\n     cpumask_var_t    res_valid;      /* all scheduling resources of pool */\n@@ -618,5 +619,17 @@ affinity_balance_cpumask(const struct sched_unit *unit, int step,\n \n void sched_rm_cpu(unsigned int cpu);\n const cpumask_t *sched_get_opt_cpumask(enum sched_gran opt, unsigned int cpu);\n+void schedule_dump(struct cpupool *c);\n+struct scheduler *scheduler_get_default(void);\n+struct scheduler *scheduler_alloc(unsigned int sched_id, int *perr);\n+void scheduler_free(struct scheduler *sched);\n+int cpu_disable_scheduler(unsigned int cpu);\n+int schedule_cpu_add(unsigned int cpu, struct cpupool *c);\n+int schedule_cpu_rm(unsigned int cpu);\n+int sched_move_domain(struct domain *d, struct cpupool *c);\n+struct cpupool *cpupool_get_by_id(int poolid);\n+void cpupool_put(struct cpupool *pool);\n+int cpupool_add_domain(struct domain *d, int poolid);\n+void cpupool_rm_domain(struct domain *d);\n \n #endif /* __XEN_SCHED_IF_H__ */\ndiff --git a/xen/common/sched/schedule.c b/xen/common/sched/schedule.c\nindex c751faa741..db8ce146ca 100644\n--- a/xen/common/sched/schedule.c\n+++ b/xen/common/sched/schedule.c\n@@ -1346,7 +1346,7 @@ int vcpu_set_hard_affinity(struct vcpu *v, const cpumask_t *affinity)\n     return vcpu_set_affinity(v, affinity, v->sched_unit->cpu_hard_affinity);\n }\n \n-int vcpu_set_soft_affinity(struct vcpu *v, const cpumask_t *affinity)\n+static int vcpu_set_soft_affinity(struct vcpu *v, const cpumask_t *affinity)\n {\n     return vcpu_set_affinity(v, affinity, v->sched_unit->cpu_soft_affinity);\n }\ndiff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h\nindex 2507a833c2..55335d6ab3 100644\n--- a/xen/include/xen/sched.h\n+++ b/xen/include/xen/sched.h\n@@ -685,7 +685,6 @@ int  sched_init_vcpu(struct vcpu *v);\n void sched_destroy_vcpu(struct vcpu *v);\n int  sched_init_domain(struct domain *d, int poolid);\n void sched_destroy_domain(struct domain *d);\n-int sched_move_domain(struct domain *d, struct cpupool *c);\n long sched_adjust(struct domain *, struct xen_domctl_scheduler_op *);\n long sched_adjust_global(struct xen_sysctl_scheduler_op *);\n int  sched_id(void);\n@@ -918,19 +917,10 @@ static inline bool sched_has_urgent_vcpu(void)\n     return atomic_read(&this_cpu(sched_urgent_count));\n }\n \n-struct scheduler;\n-\n-struct scheduler *scheduler_get_default(void);\n-struct scheduler *scheduler_alloc(unsigned int sched_id, int *perr);\n-void scheduler_free(struct scheduler *sched);\n-int schedule_cpu_add(unsigned int cpu, struct cpupool *c);\n-int schedule_cpu_rm(unsigned int cpu);\n void vcpu_set_periodic_timer(struct vcpu *v, s_time_t value);\n-int cpu_disable_scheduler(unsigned int cpu);\n void sched_setup_dom0_vcpus(struct domain *d);\n int vcpu_temporary_affinity(struct vcpu *v, unsigned int cpu, uint8_t reason);\n int vcpu_set_hard_affinity(struct vcpu *v, const cpumask_t *affinity);\n-int vcpu_set_soft_affinity(struct vcpu *v, const cpumask_t *affinity);\n void restore_vcpu_affinity(struct domain *d);\n int vcpu_affinity_domctl(struct domain *d, uint32_t cmd,\n                          struct xen_domctl_vcpuaffinity *vcpuaff);\n@@ -1051,17 +1041,10 @@ extern enum cpufreq_controller {\n     FREQCTL_none, FREQCTL_dom0_kernel, FREQCTL_xen\n } cpufreq_controller;\n \n-#define CPUPOOLID_NONE    -1\n-\n-struct cpupool *cpupool_get_by_id(int poolid);\n-void cpupool_put(struct cpupool *pool);\n-int cpupool_add_domain(struct domain *d, int poolid);\n-void cpupool_rm_domain(struct domain *d);\n int cpupool_move_domain(struct domain *d, struct cpupool *c);\n int cpupool_do_sysctl(struct xen_sysctl_cpupool_op *op);\n int cpupool_get_id(const struct domain *d);\n cpumask_t *cpupool_valid_cpus(struct cpupool *pool);\n-void schedule_dump(struct cpupool *c);\n extern void dump_runq(unsigned char key);\n \n void arch_do_physinfo(struct xen_sysctl_physinfo *pi);\n-- \n2.16.4\n\n\nFrom - Wed Dec 18 11:05:12 2019\nReceived: from AMSPEX02CL02.citrite.net (10.69.22.126) by\n AMSPEX02CL01.citrite.net (10.69.22.125) with Microsoft SMTP Server (TLS) id\n 15.0.1473.3 via Mailbox Transport; Wed, 18 Dec 2019 08:49:07 +0100\nReceived: from LASPEX02MSOL02.citrite.net (10.160.21.46) by\n AMSPEX02CL02.citrite.net (10.69.22.126) with Microsoft SMTP Server (TLS) id\n 15.0.1473.3; Wed, 18 Dec 2019 08:49:06 +0100\nReceived: from esa2.hc3370-68.iphmx.com (10.160.38.12) by\n LASPEX02MSOL02.citrite.net (10.160.21.46) with Microsoft SMTP Server (TLS) id\n 15.0.1473.3 via Frontend Transport; Tue, 17 Dec 2019 23:49:06 -0800\nAuthentication-Results: esa2.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none; spf=None smtp.pra=jgross@suse.com; spf=Pass smtp.mailfrom=jgross@suse.com; spf=None smtp.helo=postmaster@mx2.suse.de\nReceived-SPF: None (esa2.hc3370-68.iphmx.com: no sender\n  authenticity information available from domain of\n  jgross@suse.com) identity=pra; client-ip=195.135.220.15;\n  receiver=esa2.hc3370-68.iphmx.com;\n  envelope-from=\"jgross@suse.com\"; x-sender=\"jgross@suse.com\";\n  x-conformance=sidf_compatible\nReceived-SPF: Pass (esa2.hc3370-68.iphmx.com: domain of\n  jgross@suse.com designates 195.135.220.15 as permitted\n  sender) identity=mailfrom; client-ip=195.135.220.15;\n  receiver=esa2.hc3370-68.iphmx.com;\n  envelope-from=\"jgross@suse.com\"; x-sender=\"jgross@suse.com\";\n  x-conformance=sidf_compatible; x-record-type=\"v=spf1\";\n  x-record-text=\"v=spf1 ip4:103.9.96.0/22 ip4:117.120.16.0/21\n  ip4:130.57.0.0/16 ip4:137.65.0.0/16 ip4:143.186.119.0/24\n  ip4:147.2.0.0/16 ip4:149.44.0.0/16 ip4:162.249.213.164\n  ip4:164.99.0.0/16 ip4:165.180.149.103 ip4:173.203.201.103\n  ip4:193.109.254.0/23 ip4:194.106.220.0/23\n  ip4:194.116.198.0/23 ip4:195.135.220.0/23\n  ip4:195.245.230.0/23 ip4:196.14.170.0/23 ip4:34.252.226.93\n  include:spf1.novell.com include:spf2.novell.com\n  include:spf3.novell.com include:spf.protection.outlook.com\n  -all\"\nReceived-SPF: None (esa2.hc3370-68.iphmx.com: no sender\n  authenticity information available from domain of\n  postmaster@mx2.suse.de) identity=helo;\n  client-ip=195.135.220.15; receiver=esa2.hc3370-68.iphmx.com;\n  envelope-from=\"jgross@suse.com\";\n  x-sender=\"postmaster@mx2.suse.de\";\n  x-conformance=sidf_compatible\nIronPort-SDR: CXMz9w7m4CikXJm9XrosHHRafvocy1IyLqVP3kQTNzdJdlNkyMGAkrZ3CziACeYq9VHPPA+JTj\n Lcjd6NXmxTQDLyJwlsJuVBpZRpYMUB69FD6azBPu6tBfikd/FD0CbN6G89iSdXk1hgCE61RGtr\n STuWfOk7FXTvl2pCpFUAHRgj+LvmEminPL6Jybue5dc71NzVJ7rvnGO9Rrz+0xZLw7ZHgehKx6\n d/vL4CUhWlp7o9Ncdfwo8HhbwRBAyruijQQaqjMOxL1aYcz5Abl4ZMHLy34d6xB76k5E9Rh1m4\n Plp1VckS/SAClg+p7/3Ab/nx\nX-IronPort-RemoteIP: 195.135.220.15\nX-IronPort-MID: 9869624\nX-IronPort-Reputation: 3.4\nX-IronPort-Listener: InboundMail\nX-IronPort-SenderGroup: ValidList\nX-IronPort-MailFlowPolicy: $ACCEPTED\nX-SBRS: 3.4\nX-MesageID: 9869624\nX-Ironport-Server: esa2.hc3370-68.iphmx.com\nX-Remote-IP: 195.135.220.15\nX-Policy: $ACCEPTED\nIronPort-PHdr: =?us-ascii?q?9a23=3ADLdQQBJSyGgh28f5ONmcpTZWNBhigK39O0sv0r?=\n =?us-ascii?q?FitYgRL/TxwZ3uMQTl6Ol3ixeRBMOHsqkC0bKG+Pm5AiQp2tWoiDg6aptCVh?=\n =?us-ascii?q?sI2409vjcLJ4q7M3D9N+PgdCcgHc5PBxdP9nC/NlVJSo6lPwWB6nK94iQPFR?=\n =?us-ascii?q?rhKAF7Ovr6GpLIj8Swyuu+54Dfbx9HiTagb75+Ngu6oRnSu8UZnIduN6g8wQ?=\n =?us-ascii?q?bVr3VVfOhb2XlmLk+JkRbm4cew8p9j8yBOtP8k6sVNT6b0cbkmQLJBFDgpPH?=\n =?us-ascii?q?w768PttRnYUAuA/WAcXXkMkhpJGAfK8hf3VYrsvyTgt+p93C6aPdDqTb0xRD?=\n =?us-ascii?q?+v4btnRAPuhSwaLDMy7n3ZhdJsg6JauBKhpgJww4jIYIGOKfFyerrRcc4GSW?=\n =?us-ascii?q?ZdW8pcUTFKDIGhYIsVF+cPPfhWoZTzqVUNqhWxBwesCfjzxjNUnHL6wbc33/?=\n =?us-ascii?q?g9HQzAwQcuH8gOsHPRrNjtMKkSTP66zLPHzTrdafNdxDbz6JLPchA6uvGHQL?=\n =?us-ascii?q?V9ccjeyUk1EAPFlU6QpJf+PzOIzeQCrXKX4PZnVeKqkmMqrRx6rDu3xso0l4?=\n =?us-ascii?q?XEgoIYxkrZ+Sh3wIs5P8O0RFBnbdK+DZddtzmWO5ZyT84iWW1kpSg3x70ctZ?=\n =?us-ascii?q?KlYiQG1I4rywDfZvGIdYWD/wjtW/yLIThigXJoYLK/iAi28Uin0uD8U8a13E?=\n =?us-ascii?q?hQoipej9nMrW4C2wbO5ceZUvd9/0Gh1iiT1w3L9+1JJUA5mbDGJ5MvwrM8jI?=\n =?us-ascii?q?QfvVrfEiPshUn7jLeadkA+9eip7+TnbK/mppiZN4JsiAH+Pb4umsukAeQjKQ?=\n =?us-ascii?q?UORHWb+f+i27H54UL5R7BKguUskqbFqJDaOdgbpqmhDg9azIkj7Ay/Dzi439?=\n =?us-ascii?q?gCgHYHMVRFeBadgIjxIFzBPu34Ae2jjFStjDdr3fHGP7L7DprRKXjDleSpQb?=\n =?us-ascii?q?Eo+0NajQY+091bz5ZVEa0aZuL+XFfrs97VBQN/NBa7kMj9D9Ao9J4TQ22CBO?=\n =?us-ascii?q?e2KqTJqhfc5O01JPKXTJQIozu7IP8gsa29xUQlkEMQKPH6laAcb2q1S7E/ex?=\n =?us-ascii?q?3DOyjFn8sBHGEWvwE3UO3tjhi4XCVOY2qpBvJstDwgAdjgDYyYHd/1xeLRmi?=\n =?us-ascii?q?ajHphGIGtBDwPEHXTpctCCXPEBIGKXL9R6mzMJHb6mV8c61B6ouQO7g7pqJ+?=\n =?us-ascii?q?bZ4GsZ4JTk0tUmr/bLm0QU8jp5R9+Yz3nLV3t9y2EHXTgtx4hkvFdwjFyE1P?=\n =?us-ascii?q?swmORWQORa/OgBSQImLdjZxu1+Bcr1X1fDcc2OU02OWci9DHc6Sddii8QWbR?=\n =?us-ascii?q?NbHNOvxgvGwzLsA7IRkOmTA4co96vHw3XrD8NtkTDdybIsyVUrG5EdD2Cti6?=\n =?us-ascii?q?9h+gSWPLbnyRXIxYCtc6lUnCPW/T3FzWHV5x4AFVAgF6TdXXUPIEDRqIax4E?=\n =?us-ascii?q?SKVLKoBbk9V2kJgcefNqtHbMHohlRaVb/iPtrZeWe4h2a3A16B2LqNaIPgf2?=\n =?us-ascii?q?hV0j/aDQAIlAUa/HDOMgZbZG/poW3ECyd1PUnyeE6q+u576Tu6QkIy0wCWfh?=\n =?us-ascii?q?h5zbPmshURhPGaV7YSxudd6Xpn8m4pWgznh5SPVonlxUIpZqhXbNIj7U0S2H?=\n =?us-ascii?q?nQ7Up9Ncf7cPgn2A5Ychx3ulOo3BJyWeAi2YAnqm0nyA1qJOeWylREInma0o?=\n =?us-ascii?q?r3Iab/MXTp8VakbKuciRnOlc2b/KsC8qFyqVr5uxqyPlE/6Hgh2N5QmSj5hN?=\n =?us-ascii?q?2CHE8ZVpT/VVwy/h5xquTBYyUz0IjT0GVlLai+tjKbgYATCeAoywitc5JkCI?=\n =?us-ascii?q?3UT1agK8QBHIDuJfcjwR6pZUlfY7gXqv5yPtumcuvA06mubq5smzevjGIP54?=\n =?us-ascii?q?4YsArE9SVmTfXT940Y2Pze1QyCHzvxl1autMnrlJsMPGBPWDPklG6+XtYXP/?=\n =?us-ascii?q?A6dJ1DEWq0Jsyr2thy4vylE2VV8lKuHRJO2cOkfwaTc02o2ARR0UoNpnn00S?=\n =?us-ascii?q?C8zjFyj3Qotv/GjXGImr+/MkBdYigSGToH7x+kO4W/gtEEUVL9YhMgzl2l7h?=\n =?us-ascii?q?2hmPAe+vQ5LnHTRFcOdC/zfAQAGuO9sKSPZ8lX5dYmqyJSBa6+bkqdUaXVuA?=\n =?us-ascii?q?YB3mXoGG4Ul3grMiqnvJn0hUkwim2HK21ohGHEYsw2zhDaro+5J7YZzn8NQy?=\n =?us-ascii?q?92jiPSD163Moyy/NmaoJzEt/i3S2OrUpAAOTmu146LszG3oHF7GRDq1e7mgc?=\n =?us-ascii?q?XpSEJptE2zn8kvTyjDqwzwJ5Xmx7jve/wyZVFmXRf985YoQ9kl1Np21c9WgT?=\n =?us-ascii?q?9A3N2U5SZVyD6sd4wBgeSnMjxVAmRSprydqAn9hB86dSrPmt2/DjPFhZI/L9?=\n =?us-ascii?q?iiPjFPgX17sZ0MUOHMq+Ua1Spt/gjh8VmXOKgj2G5EmL12ryRG5oNB8As1kn?=\n =?us-ascii?q?fEXu9URw8Ae3SrzkrA7sji/vwLNSDzLf7okhI5xI7pDane8FgCAjCjJsZkR3?=\n =?us-ascii?q?YrqJwhbDeumDXy8t22IYeMK4NC8EXSy1CZ0aBUMM5jz6RXw3M3YSSk4Sxjkr?=\n =?us-ascii?q?ZgxR12gcPj49PBcT02uvjhW1gBbmaQBYtb+ymx3/8PxYDPh9HpRMg9XG1MBs?=\n =?us-ascii?q?CgTOr0QmtD6bK+b1jISmdk7C/cQ+G6f0fX6V86/SueT9bybi/RfShJi40lHk?=\n =?us-ascii?q?LVJVQD0llFAXNjxcN/TFrygpSmKhwchHhZ50ak+EIdl6Qya0S5CDyH4l/vMG?=\n =?us-ascii?q?x8SYDDfkMHsEcbuwGMbpTYtqUpRGlZ5sHz91DLcDHBIV4SUydYASnmTxjiOL?=\n =?us-ascii?q?Kq+NXNofOACLP4KfzQbLGK7+dZUr+Jw5mrz4drrS2UOJ/JOH58Avk/nEFEWB?=\n =?us-ascii?q?UbU4zYnT4LViAaxTnVYZXdohCi9ylz6Mu49bzqXgnr+IeCWaBKP5N34ReqjK?=\n =?us-ascii?q?yfNumWwiFkNTJf0ZBKznjNrdpXlBsbjyUkLmP/K7kLuC/TQa6VoZd5VEZEOQ?=\n =?us-ascii?q?V0MsYAr68n11MLOcWA0Yytk+AoyP8tC1JVE1fmn5PhY8tCOGy7OF7dYSTDfL?=\n =?us-ascii?q?2bOT3Gxd32aqKgWPVRiutTrRi5pTecFQfqID2CkzDjUx3nP/tLiWmXOxlXuY?=\n =?us-ascii?q?f1dRgIayCrVNX9dhiyK8N6lxUz0edynW7ROCgQPHk0ck9AqKGR8TINgvh7HD?=\n =?us-ascii?q?8kjDItJu2FliCFqujAf89H7L0yWXkyzbgCpi1nmPNP4SpJReJ4gn7ftdc05V?=\n =?us-ascii?q?GtybLQkn85AFxPsjZOlMSAukAxXMeRvpRGR3vA+woAqGuKDBFf7dlqENr0oI?=\n =?us-ascii?q?hL18PC0qn0LX0RlrCctdtZHMXSJM+dZTA5NgH1HTfPEAYfZTu7byfEmldQ1v?=\n =?us-ascii?q?2fvC7wzNByut3nn5wATaVeXVo+G6YBC0hrK9cFJY9+QjIulbPC0Zw4oEGmpR?=\n =?us-ascii?q?yUf/10+5DKUvXLWqfqOGzflqRfal0EzOGgdNVBBsjAw0VnL2JCssHPEkvUU8?=\n =?us-ascii?q?pKp3Q5PBQpu0gL+397HDRqhxDVLzi16XpWLsaa2wYsg1ImM/8w7zqq6FAydA?=\n =?us-ascii?q?LH?=\nX-IronPort-Anti-Spam-Filtered: true\nX-IronPort-Anti-Spam-Result: =?us-ascii?q?A0ELAACr2fldhg/ch8NlHQEBAQkBEQU?=\n =?us-ascii?q?FAYFqCAELAYIagUYjBAsqjCeKGpgzFIFnCQQBAQsvAQEBhD8CghocBwEEMAk?=\n =?us-ascii?q?OAgMBDAEBAQMBAQECAQIDAgIBAQIQAQEBCgkLCCmFSoI7KQGDTwIBAxIVUhA?=\n =?us-ascii?q?/ElcZIoMAgnyhMD0CIwFMgQSKfjOJDoFIgTYBhz6EWRqBQT+BEYJec4QxZYU?=\n =?us-ascii?q?hBI1CoUeCPpYGDBuOUYt9jV+bZYFSghIzGggbFYMnUBEUjR4OCY4kQDOMZCm?=\n =?us-ascii?q?CGAEB?=\nX-IPAS-Result: =?us-ascii?q?A0ELAACr2fldhg/ch8NlHQEBAQkBEQUFAYFqCAELAYIag?=\n =?us-ascii?q?UYjBAsqjCeKGpgzFIFnCQQBAQsvAQEBhD8CghocBwEEMAkOAgMBDAEBAQMBA?=\n =?us-ascii?q?QECAQIDAgIBAQIQAQEBCgkLCCmFSoI7KQGDTwIBAxIVUhA/ElcZIoMAgnyhM?=\n =?us-ascii?q?D0CIwFMgQSKfjOJDoFIgTYBhz6EWRqBQT+BEYJec4QxZYUhBI1CoUeCPpYGD?=\n =?us-ascii?q?BuOUYt9jV+bZYFSghIzGggbFYMnUBEUjR4OCY4kQDOMZCmCGAEB?=\nX-IronPort-AV: E=Sophos;i=\"5.69,328,1571716800\"; \n   d=\"scan'208\";a=\"9869624\"\nX-Amp-Result: SKIPPED(no attachment in message)\nX-Amp-File-Uploaded: False\nX-IronPort-Outbreak-Status: No, level 0, Unknown - Unknown\nX-MGA-submission: =?us-ascii?q?MDFbEB4rFsWFVmpnuC0bAdNuZ8Ye25XQOyh8y9?=\n =?us-ascii?q?EjQEFAsh1UboxgqRCLgYIErf5mrugxxvHyqeY6EGkqAJ1D/YTc6pyqQP?=\n =?us-ascii?q?KgSIwC9wX5eD1o/BwdX0FBcMDHwqEM8OIKjYOGff6Eu3auEnyVFHXCTr?=\n =?us-ascii?q?bpNKuIgd+mBeBvt/b6+83POQ=3D=3D?=\nReceived: from mx2.suse.de ([195.135.220.15])\n  by esa2.hc3370-68.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Dec 2019 02:49:06 -0500\nX-Virus-Scanned: by amavisd-new at test-mx.suse.de\nReceived: from relay2.suse.de (unknown [195.135.220.254])\n\tby mx2.suse.de (Postfix) with ESMTP id A2FF1AD69;\n\tWed, 18 Dec 2019 07:49:03 +0000 (UTC)\nFrom: Juergen Gross <jgross@suse.com>\nTo: <xen-devel@lists.xenproject.org>\nCC: Juergen Gross <jgross@suse.com>, George Dunlap\n\t<george.dunlap@eu.citrix.com>, Dario Faggioli <dfaggioli@suse.com>\nSubject: [PATCH 4/9] xen/sched: remove special cases for free cpus in schedulers\nDate: Wed, 18 Dec 2019 08:48:54 +0100\nMessage-ID: <20191218074859.21665-5-jgross@suse.com>\nX-Mailer: git-send-email 2.16.4\nIn-Reply-To: <20191218074859.21665-1-jgross@suse.com>\nReferences: <20191218074859.21665-1-jgross@suse.com>\nReturn-Path: jgross@suse.com\nContent-Type: text/plain\nX-MS-Exchange-Organization-Network-Message-Id: 03f170b4-f579-40bd-085f-08d7838ec2be\nX-MS-Exchange-Organization-AVStamp-Enterprise: 1.0\nX-MS-Exchange-Organization-AuthSource: LASPEX02MSOL02.citrite.net\nX-MS-Exchange-Organization-AuthAs: Anonymous\nMIME-Version: 1.0\n\nWith the idle scheduler now taking care of all cpus not in any cpupool\nthe special cases in the other schedulers for no cpupool associated\ncan be removed.\n\nSigned-off-by: Juergen Gross <jgross@suse.com>\n---\n xen/common/sched/sched_credit.c  |  7 ++-----\n xen/common/sched/sched_credit2.c | 30 ------------------------------\n 2 files changed, 2 insertions(+), 35 deletions(-)\n\ndiff --git a/xen/common/sched/sched_credit.c b/xen/common/sched/sched_credit.c\nindex a098ca0f3a..8b1de9b033 100644\n--- a/xen/common/sched/sched_credit.c\n+++ b/xen/common/sched/sched_credit.c\n@@ -1690,11 +1690,8 @@ csched_load_balance(struct csched_private *prv, int cpu,\n \n     BUG_ON(get_sched_res(cpu) != snext->unit->res);\n \n-    /*\n-     * If this CPU is going offline, or is not (yet) part of any cpupool\n-     * (as it happens, e.g., during cpu bringup), we shouldn't steal work.\n-     */\n-    if ( unlikely(!cpumask_test_cpu(cpu, online) || c == NULL) )\n+    /* If this CPU is going offline, we shouldn't steal work.  */\n+    if ( unlikely(!cpumask_test_cpu(cpu, online)) )\n         goto out;\n \n     if ( snext->pri == CSCHED_PRI_IDLE )\ndiff --git a/xen/common/sched/sched_credit2.c b/xen/common/sched/sched_credit2.c\nindex 5bfe1441a2..f9e521a3a8 100644\n--- a/xen/common/sched/sched_credit2.c\n+++ b/xen/common/sched/sched_credit2.c\n@@ -2744,40 +2744,10 @@ static void\n csched2_unit_migrate(\n     const struct scheduler *ops, struct sched_unit *unit, unsigned int new_cpu)\n {\n-    struct domain *d = unit->domain;\n     struct csched2_unit * const svc = csched2_unit(unit);\n     struct csched2_runqueue_data *trqd;\n     s_time_t now = NOW();\n \n-    /*\n-     * Being passed a target pCPU which is outside of our cpupool is only\n-     * valid if we are shutting down (or doing ACPI suspend), and we are\n-     * moving everyone to BSP, no matter whether or not BSP is inside our\n-     * cpupool.\n-     *\n-     * And since there indeed is the chance that it is not part of it, all\n-     * we must do is remove _and_ unassign the unit from any runqueue, as\n-     * well as updating v->processor with the target, so that the suspend\n-     * process can continue.\n-     *\n-     * It will then be during resume that a new, meaningful, value for\n-     * v->processor will be chosen, and during actual domain unpause that\n-     * the unit will be assigned to and added to the proper runqueue.\n-     */\n-    if ( unlikely(!cpumask_test_cpu(new_cpu, cpupool_domain_master_cpumask(d))) )\n-    {\n-        ASSERT(system_state == SYS_STATE_suspend);\n-        if ( unit_on_runq(svc) )\n-        {\n-            runq_remove(svc);\n-            update_load(ops, svc->rqd, NULL, -1, now);\n-        }\n-        _runq_deassign(svc);\n-        sched_set_res(unit, get_sched_res(new_cpu));\n-        return;\n-    }\n-\n-    /* If here, new_cpu must be a valid Credit2 pCPU, and in our affinity. */\n     ASSERT(cpumask_test_cpu(new_cpu, &csched2_priv(ops)->initialized));\n     ASSERT(cpumask_test_cpu(new_cpu, unit->cpu_hard_affinity));\n \n-- \n2.16.4\n\n\nFrom - Wed Dec 18 11:05:12 2019\nReceived: from AMSPEX02CL03.citrite.net (10.69.22.127) by\n AMSPEX02CL01.citrite.net (10.69.22.125) with Microsoft SMTP Server (TLS) id\n 15.0.1473.3 via Mailbox Transport; Wed, 18 Dec 2019 08:49:09 +0100\nReceived: from LASPEX02MSOL02.citrite.net (10.160.21.46) by\n AMSPEX02CL03.citrite.net (10.69.22.127) with Microsoft SMTP Server (TLS) id\n 15.0.1473.3; Wed, 18 Dec 2019 08:49:08 +0100\nReceived: from esa2.hc3370-68.iphmx.com (10.160.38.12) by\n LASPEX02MSOL02.citrite.net (10.160.21.46) with Microsoft SMTP Server (TLS) id\n 15.0.1473.3 via Frontend Transport; Tue, 17 Dec 2019 23:49:08 -0800\nAuthentication-Results: esa2.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none; spf=None smtp.pra=jgross@suse.com; spf=Pass smtp.mailfrom=jgross@suse.com; spf=None smtp.helo=postmaster@mx2.suse.de\nReceived-SPF: None (esa2.hc3370-68.iphmx.com: no sender\n  authenticity information available from domain of\n  jgross@suse.com) identity=pra; client-ip=195.135.220.15;\n  receiver=esa2.hc3370-68.iphmx.com;\n  envelope-from=\"jgross@suse.com\"; x-sender=\"jgross@suse.com\";\n  x-conformance=sidf_compatible\nReceived-SPF: Pass (esa2.hc3370-68.iphmx.com: domain of\n  jgross@suse.com designates 195.135.220.15 as permitted\n  sender) identity=mailfrom; client-ip=195.135.220.15;\n  receiver=esa2.hc3370-68.iphmx.com;\n  envelope-from=\"jgross@suse.com\"; x-sender=\"jgross@suse.com\";\n  x-conformance=sidf_compatible; x-record-type=\"v=spf1\";\n  x-record-text=\"v=spf1 ip4:103.9.96.0/22 ip4:117.120.16.0/21\n  ip4:130.57.0.0/16 ip4:137.65.0.0/16 ip4:143.186.119.0/24\n  ip4:147.2.0.0/16 ip4:149.44.0.0/16 ip4:162.249.213.164\n  ip4:164.99.0.0/16 ip4:165.180.149.103 ip4:173.203.201.103\n  ip4:193.109.254.0/23 ip4:194.106.220.0/23\n  ip4:194.116.198.0/23 ip4:195.135.220.0/23\n  ip4:195.245.230.0/23 ip4:196.14.170.0/23 ip4:34.252.226.93\n  include:spf1.novell.com include:spf2.novell.com\n  include:spf3.novell.com include:spf.protection.outlook.com\n  -all\"\nReceived-SPF: None (esa2.hc3370-68.iphmx.com: no sender\n  authenticity information available from domain of\n  postmaster@mx2.suse.de) identity=helo;\n  client-ip=195.135.220.15; receiver=esa2.hc3370-68.iphmx.com;\n  envelope-from=\"jgross@suse.com\";\n  x-sender=\"postmaster@mx2.suse.de\";\n  x-conformance=sidf_compatible\nIronPort-SDR: ObGuTOtqEPqJOLLFISfyG9Dh3j17kL/gUejBzggtF02nEJS+ecedN9MaeSjlfU+HDlYwzSn/bt\n DZz6KMJPVG6KyI+Tc3yEM1rhxGFX87emxEhINJyrS2qSladZzua4JEeA5lOmgff4FSOObE6akE\n +09vG8esK0DlaL6bKgkszW5qqPExVGCa3ot4Nn5CNm8GUtql7DJ65x4NxejECeaQWezVdJIyzi\n ktDDhQ98/IL39UfncW1mxGQaKUnDHcLsE1hYFnzFswuV1g9Zh/rkvKEIzUp9jw1jaZLJsqzFZY\n /+dneIS2EnRAFlSeSdu9GPZK\nX-IronPort-RemoteIP: 195.135.220.15\nX-IronPort-MID: 9869627\nX-IronPort-Reputation: 3.4\nX-IronPort-Listener: InboundMail\nX-IronPort-SenderGroup: ValidList\nX-IronPort-MailFlowPolicy: $ACCEPTED\nX-SBRS: 3.4\nX-MesageID: 9869627\nX-Ironport-Server: esa2.hc3370-68.iphmx.com\nX-Remote-IP: 195.135.220.15\nX-Policy: $ACCEPTED\nIronPort-PHdr: =?us-ascii?q?9a23=3Av5capRc4lcVRMY6lG57wYB87lGMj4u6mDksu8p?=\n =?us-ascii?q?Mizoh2WeGdxcu/bB7h7PlgxGXEQZ/co6odzbaP6Oa6ATxLuM/a+Fk5M7V0Hy?=\n =?us-ascii?q?cfjssXmwFySOWkMmbcaMDQUiohAc5ZX0Vk9XzoeWJcGcL5ekGA6ibqtW1aFR?=\n =?us-ascii?q?rwLxd6KfroEYDOkcu3y/qy+5rOaAlUmTaxe7x/IAi4oAnLqMUanYhvJqksxh?=\n =?us-ascii?q?fUrHZDZvhby35vKV+PhRj3+92+/IRk8yReuvIh89BPXKDndKkmTrJWESorPX?=\n =?us-ascii?q?kt6MLkqRfMQw2P5mABUmoNiRpHHxLF7BDhUZjvtCbxq/dw1zObPc3ySrA0RC?=\n =?us-ascii?q?ii4qJ2QxLmlCsLKzg0+3zMh8dukKxUvg6upx1nw47Vfo6VMuZ+frjAdt8eXG?=\n =?us-ascii?q?ZNQ9pdWzBEDo66coABDfcOPfxAoof9uVUAsBWwCwqrCuztxD9FnWP60bEg3u?=\n =?us-ascii?q?g9CwzKwBAsEtQTu3rUttX1M6ISXPixwqnV0zrDdfxW1in76IPVcx4hu/aMXa?=\n =?us-ascii?q?lrccHMzkQvFQzFjk+XqYz+JDOYzf8Ns3WA7+V+T+6gl2knqwRorzWp28wiiZ?=\n =?us-ascii?q?HJi5oIxl3A9Sh12ps5KNO4RUJhf9KoDodcuzuHO4Z2Ws8uXmVltSYgxrEbt5?=\n =?us-ascii?q?O2fDIGxIo5yxLDcfCLbYiF7x3lWe2MOzl3nmhld6i6hxuq8Uiv1On8Vs6s3V?=\n =?us-ascii?q?ZPoStJjMPAtmsQ1xzI9MeLUOZy8Vm51TaO0QDc9P1ELFgpmaffK5Mt2KM8m5?=\n =?us-ascii?q?QTvEjZACP6hln6gLWLekgk4uSo7v7oYrTipp+SLY90jQT+P7wsmsywG+Q4NR?=\n =?us-ascii?q?MOX3OA9OSnyb3j5lP2TK9Wgf0xl6nVqIraKtgDpq6lHw9V1Z4u6xmhADehyt?=\n =?us-ascii?q?QYkmcIIEhYdxKaiYjpP0vBIOjjAPihnlSgiitkx/HaPr37A5XMIWLPn6vmfb?=\n =?us-ascii?q?Z4uAZgz18jwNYa659KB7UpJPPoRlS3pNHeFgU+MQG/36DgEtou+JkZXDetH6?=\n =?us-ascii?q?KDP67U+XCS4fk0a72Oa5USoy3VMOU+6rjlinpvygxVRrWgwZZCMCPwJf9hOU?=\n =?us-ascii?q?jMJCO02o1bQ04XogozSvDrg1SeUDlVIky/RL84+ipiWNL0AJzKHMati+fag3?=\n =?us-ascii?q?/+QM0QZ3hGD0DKGnDtJM2IWPYJPSSVJMIp0jkJTqOoRIJp0xay/BT7xLxqIq?=\n =?us-ascii?q?uc+iARuZ/5ktkg4erVmEJ67iR6WuKa1WzFVGRohiUQXTZj3q9lpldm4kyeyq?=\n =?us-ascii?q?U+iPtdRpRI//0cag4hLtbHyvBiTdX7WwbPZNCMHVSpWNK9GhkqU8k8hdQJZh?=\n =?us-ascii?q?U1AM2s2zbE2SfiGLoJj/qLCZgzp7rbxGT0Lt1hxmzu0bl7yUI7WcYJOWD/3P?=\n =?us-ascii?q?xF+gPeBpDEnwCir4jwJfVO+inL+S/DwHGH5gdYW1UrDv2AAyBZZ1PWqMS/7U?=\n =?us-ascii?q?THHfeoDvw8Pw1NxNTnSOMCY8D1jVhAWPboOcjPK2O3lWCqAB+Ux7SKJIP0cm?=\n =?us-ascii?q?QZ1S/ZBQAKiQcWtXqBMAE/AG+mrQe8RHRsGkjoeFjE6vRlpTWwSUp1hwCGYk?=\n =?us-ascii?q?t91qakrwYPjK/UQPcS07QY/SY5/mwlQRDkhI+QUYDY4VM8L8A+KZsn7VxK1H?=\n =?us-ascii?q?zUrVlwJZX6aaBp3QVBK0Ep7wXvzxVyGsNLls15yRFihAd0N6+c10tMMj2C2p?=\n =?us-ascii?q?WlcL/YMG7p5zi0drXbnFrZ1ZzFsrdK8/k+p1j56UurGVAl6G5PyMRO3j2X4Z?=\n =?us-ascii?q?CAX29wGdrhF00w8RZ9vbTTZCIwspjV2XNbOq6xqjbe2tgtCbJ/mCytdNpeLq?=\n =?us-ascii?q?6IUTTKPZ1BXpqWIfcx0xikdRteeuBZr/VrZ4b4J72HwK6uLKBrmzf0xWhA5Y?=\n =?us-ascii?q?l81AqL+U8eAqbK0IwC2OqwxRacWnH3i1Lpvs3smI9CbC0fBSLmmHWiXdUMIP?=\n =?us-ascii?q?coJcBSVC+nOIWvy897hoLxVnI9lhbrHF4A1MKzOFKTY1H7wQxMxBESqH2jlz?=\n =?us-ascii?q?G/ym88mDUoo6yDmS3Wlr2zKVxeYTMNHjM6yw6xcu3Wx5gAUUOlbhYkjk6o/k?=\n =?us-ascii?q?+ggahQ//8gdyyNEQFJZyjzPydpVa7j09jKK8NJ9p4stj1aFeqmZlXPALzyuR?=\n =?us-ascii?q?wByAv4AnBTgjs8cnv58oW8hBF8hG+HeTxxo2DeYtpY3grE6ZrXQvsbjV9kDG?=\n =?us-ascii?q?FozDLQAFa7Jdyg+96ZwozCvu6JXGWkTpRPcCPvwNDIpG6h6GZtGxH6g+Grl4?=\n =?us-ascii?q?itD10hySGinYoPN22AvFPmb4Lszaj/Le93YhwiGgrn88QjUoBmztlp3MpWiD?=\n =?us-ascii?q?5L2NPNuiBd2WbrbYcCgP24NSBVA2dVhYaSulGAugUrL2rVlduiDjPAnY05IY?=\n =?us-ascii?q?H9Oz1e2zphvZkRV+HKsfoc23My+wTwrBqNM6EhxXFEmaVosSdLxblO4lZIrG?=\n =?us-ascii?q?3VA6hOTxAEYmq20UzOt5fn8u1WfDr9KOThkhYi24jnVPbb/EldQCqrI8l4W3?=\n =?us-ascii?q?Usv4MlaQmKiSOvj+OsMNjIMYBK6EHSwkaG164Nb8tv3vsS2Xg+Zz+75C19jb?=\n =?us-ascii?q?dn3Fo3hcryvZDbeTwyp+TjWkUebGWsIZpLoVSPxe5fhprEhtH0WMw5S3NRAc?=\n =?us-ascii?q?euFbXyS3oTrai1blfSVmRk9DHBQ+KZRUjFsyIE5zrOC8z5biDLYiBAk5M7FU?=\n =?us-ascii?q?nbfAsF20gVRGlox89kUFnxmYq7Kh8/vndLvTua4lNN0r46bkiiFD2D+UHyMW?=\n =?us-ascii?q?9yEN/Fd1JX9l0QvhaLd5XCqLssR2cAucf65A2Vdj7AO0ISUDtPABbaQQG4W9?=\n =?us-ascii?q?vmrdjG+OyFCufsNOPAOPOIrvJTU/POzpWqmopg9DKROsjdJWFsVbs93VROWX?=\n =?us-ascii?q?Q/EMPc/ldHAy0RnCbQY8PJvw+yoWtxqd6y9PCtUwXqrYqJAL9PPdg94Ai4x7?=\n =?us-ascii?q?+ZMPKdjzp4LjAe0Y4QwXjPy/4U21t36WkmMjCpFf5Z73z3Qandm7FaA1sgUw?=\n =?us-ascii?q?0obJQayaU600ENNNXS0JX13eUj0aZwVQcDVEThn9HvbssPcSm7MxvcCUCHOa?=\n =?us-ascii?q?7jR3WDytzrYa66VbxbjflF/xy2tzGBFkb/PzOF3zD3XhGrOOtIgWmVJhtb8I?=\n =?us-ascii?q?26dx9sDyDkQreEIlWjN8RriDQt3bAurnbabygHLCNxNU9A7/WR4S5envRjCj?=\n =?us-ascii?q?lB435ifozm026S6+jVLIpTsOM+W3Up0bsBvTJgkeMTtXwXDOZ4kybTsNN09l?=\n =?us-ascii?q?y9m7PJyjE8C0UW72gbwoOTvUByf67e88olOz6M8RQT4GGXExlPqcFiD4ilua?=\n =?us-ascii?q?9KzcPUvLnuMzoE+NXRt5h5ZYCcOIecPXwtPAC8UibTFxcARCW3OHv3glwH1u?=\n =?us-ascii?q?qP7XDTopVw+f2O0NIeD7RcUlIyDPYTDE9oSccDLJlAVTQhibeHjcQM6CPv/i?=\n =?us-ascii?q?mUf91Tu9X8btzXBPzuLDiDirwdP0kT3Kj1a48UM9+ighEwWhxBhI3PXnHoc5?=\n =?us-ascii?q?VNrylmN1RmpVUXtmNjVWB110+3Mlrxsk9WLua9m1sNsiU7ef4krW+++EosKx?=\n =?us-ascii?q?zBoy5iyEQ=3D?=\nX-IronPort-Anti-Spam-Filtered: true\nX-IronPort-Anti-Spam-Result: =?us-ascii?q?A0HiAACr2fldhg/ch8NlHQEBAQkBEQU?=\n =?us-ascii?q?FAYF+gXQngUYjBAsqsG8JBAEBCy8BAQGEPwKCGhwHAQQ0EwIDAQwBAQEDAQE?=\n =?us-ascii?q?BAgECAwICAQECEAEBAQoJCwgphUqCOykBg08CAQMSFVIQPxJXGSKDAIJ8oTA?=\n =?us-ascii?q?9AiMBTIEEin4ziQ6BSIE2hz+EWRqBQT+BEYNRijcEjUKhR4I+lgYMG45Ri32?=\n =?us-ascii?q?pRIFpgXszGggbFYMnUBEUjSyBDQEHjRhAM48lAQE?=\nX-IPAS-Result: =?us-ascii?q?A0HiAACr2fldhg/ch8NlHQEBAQkBEQUFAYF+gXQngUYjB?=\n =?us-ascii?q?AsqsG8JBAEBCy8BAQGEPwKCGhwHAQQ0EwIDAQwBAQEDAQEBAgECAwICAQECE?=\n =?us-ascii?q?AEBAQoJCwgphUqCOykBg08CAQMSFVIQPxJXGSKDAIJ8oTA9AiMBTIEEin4zi?=\n =?us-ascii?q?Q6BSIE2hz+EWRqBQT+BEYNRijcEjUKhR4I+lgYMG45Ri32pRIFpgXszGggbF?=\n =?us-ascii?q?YMnUBEUjSyBDQEHjRhAM48lAQE?=\nX-IronPort-AV: E=Sophos;i=\"5.69,328,1571716800\"; \n   d=\"scan'208\";a=\"9869627\"\nX-Amp-Result: SKIPPED(no attachment in message)\nX-Amp-File-Uploaded: False\nX-IronPort-Outbreak-Status: No, level 0, Unknown - Unknown\nX-MGA-submission: =?us-ascii?q?MDFDMPs00M9jfsAOsg7bQA7bS7pQRKydr13BjX?=\n =?us-ascii?q?y3/yyX85qLCqfIXOUikAbLxaaaOrjwdbOdh0GkeNtHoM8/P0IbaYVG53?=\n =?us-ascii?q?c0SwJTpIqN6l3iPqo95v7OJ0s3TS1HoqRNlGsoAtH13Rr4IGr8BFk1Gk?=\n =?us-ascii?q?i3HyynvbHHCRh5RiXIu3XRAQ=3D=3D?=\nReceived: from mx2.suse.de ([195.135.220.15])\n  by esa2.hc3370-68.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Dec 2019 02:49:08 -0500\nX-Virus-Scanned: by amavisd-new at test-mx.suse.de\nReceived: from relay2.suse.de (unknown [195.135.220.254])\n\tby mx2.suse.de (Postfix) with ESMTP id CD2CAAD95;\n\tWed, 18 Dec 2019 07:49:03 +0000 (UTC)\nFrom: Juergen Gross <jgross@suse.com>\nTo: <xen-devel@lists.xenproject.org>\nCC: Juergen Gross <jgross@suse.com>, Dario Faggioli <dfaggioli@suse.com>, Meng\n Xu <mengxu@cis.upenn.edu>, George Dunlap <george.dunlap@eu.citrix.com>\nSubject: [PATCH 5/9] xen/sched: use scratch cpumask instead of allocating it on the stack\nDate: Wed, 18 Dec 2019 08:48:55 +0100\nMessage-ID: <20191218074859.21665-6-jgross@suse.com>\nX-Mailer: git-send-email 2.16.4\nIn-Reply-To: <20191218074859.21665-1-jgross@suse.com>\nReferences: <20191218074859.21665-1-jgross@suse.com>\nReturn-Path: jgross@suse.com\nContent-Type: text/plain\nX-MS-Exchange-Organization-Network-Message-Id: df008393-a3ee-48aa-33e2-08d7838ec3f5\nX-MS-Exchange-Organization-AVStamp-Enterprise: 1.0\nX-MS-Exchange-Organization-AuthSource: LASPEX02MSOL02.citrite.net\nX-MS-Exchange-Organization-AuthAs: Anonymous\nMIME-Version: 1.0\n\nIn sched_rt there are three instances of cpumasks allocated on the\nstack. Replace them by using cpumask_scratch.\n\nSigned-off-by: Juergen Gross <jgross@suse.com>\n---\n xen/common/sched/sched_rt.c | 56 ++++++++++++++++++++++++++++++---------------\n 1 file changed, 37 insertions(+), 19 deletions(-)\n\ndiff --git a/xen/common/sched/sched_rt.c b/xen/common/sched/sched_rt.c\nindex 379b56bc2a..264a753116 100644\n--- a/xen/common/sched/sched_rt.c\n+++ b/xen/common/sched/sched_rt.c\n@@ -637,23 +637,38 @@ replq_reinsert(const struct scheduler *ops, struct rt_unit *svc)\n  * and available resources\n  */\n static struct sched_resource *\n-rt_res_pick(const struct scheduler *ops, const struct sched_unit *unit)\n+rt_res_pick_locked(const struct sched_unit *unit, unsigned int locked_cpu)\n {\n-    cpumask_t cpus;\n+    cpumask_t *cpus = cpumask_scratch_cpu(locked_cpu);\n     cpumask_t *online;\n     int cpu;\n \n     online = cpupool_domain_master_cpumask(unit->domain);\n-    cpumask_and(&cpus, online, unit->cpu_hard_affinity);\n+    cpumask_and(cpus, online, unit->cpu_hard_affinity);\n \n-    cpu = cpumask_test_cpu(sched_unit_master(unit), &cpus)\n+    cpu = cpumask_test_cpu(sched_unit_master(unit), cpus)\n             ? sched_unit_master(unit)\n-            : cpumask_cycle(sched_unit_master(unit), &cpus);\n-    ASSERT( !cpumask_empty(&cpus) && cpumask_test_cpu(cpu, &cpus) );\n+            : cpumask_cycle(sched_unit_master(unit), cpus);\n+    ASSERT( !cpumask_empty(cpus) && cpumask_test_cpu(cpu, cpus) );\n \n     return get_sched_res(cpu);\n }\n \n+/*\n+ * Pick a valid resource for the unit vc\n+ * Valid resource of an unit is intesection of unit's affinity\n+ * and available resources\n+ */\n+static struct sched_resource *\n+rt_res_pick(const struct scheduler *ops, const struct sched_unit *unit)\n+{\n+    struct sched_resource *res;\n+\n+    res = rt_res_pick_locked(unit, unit->res->master_cpu);\n+\n+    return res;\n+}\n+\n /*\n  * Init/Free related code\n  */\n@@ -886,11 +901,14 @@ rt_unit_insert(const struct scheduler *ops, struct sched_unit *unit)\n     struct rt_unit *svc = rt_unit(unit);\n     s_time_t now;\n     spinlock_t *lock;\n+    unsigned int cpu = smp_processor_id();\n \n     BUG_ON( is_idle_unit(unit) );\n \n     /* This is safe because unit isn't yet being scheduled */\n-    sched_set_res(unit, rt_res_pick(ops, unit));\n+    lock = pcpu_schedule_lock_irq(cpu);\n+    sched_set_res(unit, rt_res_pick_locked(unit, cpu));\n+    pcpu_schedule_unlock_irq(lock, cpu);\n \n     lock = unit_schedule_lock_irq(unit);\n \n@@ -1003,13 +1021,13 @@ burn_budget(const struct scheduler *ops, struct rt_unit *svc, s_time_t now)\n  * lock is grabbed before calling this function\n  */\n static struct rt_unit *\n-runq_pick(const struct scheduler *ops, const cpumask_t *mask)\n+runq_pick(const struct scheduler *ops, const cpumask_t *mask, unsigned int cpu)\n {\n     struct list_head *runq = rt_runq(ops);\n     struct list_head *iter;\n     struct rt_unit *svc = NULL;\n     struct rt_unit *iter_svc = NULL;\n-    cpumask_t cpu_common;\n+    cpumask_t *cpu_common = cpumask_scratch_cpu(cpu);\n     cpumask_t *online;\n \n     list_for_each ( iter, runq )\n@@ -1018,9 +1036,9 @@ runq_pick(const struct scheduler *ops, const cpumask_t *mask)\n \n         /* mask cpu_hard_affinity & cpupool & mask */\n         online = cpupool_domain_master_cpumask(iter_"},{"id":"388439","messageId":"dece7350-7b58-bf19-9fdf-4ccf8df268fb@citrix.com","threadId":"52481","inReplyTo":"c44c3958-b0eb-22bd-bc35-04982706162f@citrix.com","subject":"Re: git-am doesn't strip CRLF line endings when the mbox is base64-encoded","fromName":"George Dunlap","fromEmail":"george.dunlap@citrix.com","sentAt":"2019-12-18T12:15:31Z","receivedAt":"2019-12-18T12:15:38Z","isPatch":false,"sender":{"key":"george.dunlap@citrix.com","avatar":null},"body":"On 12/18/19 11:42 AM, George Dunlap wrote:\n> Using git 2.24.0 from Debian testing.\n> \n> It seems that git-am will strip CRLF endings from mails before applying\n> patches when the mail isn't encoded in any way.  It will also decode\n> base64-encoded mails.  But it won't strip CRLF endings from\n> base64-encoded mails.\n> \n> Attached are two mbox files for two different recent series.\n> plainenc.am applies cleanly with `git am`, while base64enc.am doesn't.\n> \n> Poking around the man pages, it looks like part of the issue might be\n> that the CRLF stripping is done in `git mailsplit`, before the base64\n> encoding, rather than after.\n\nPoking around -- it looks like the CRLF stripping would be better done\nin `git mailinfo` after the decoding.\n\nAlso, this can *almost* be worked around using hooks -- there's an\n`applypatch-msg` hook which can strip the CLRFs from the commit message,\nbut no hook (AFAICT) corresponding `applypatch-patch` which is run on\nthe patch itself before being applied.\n\n -George\n\n"},{"id":"388471","messageId":"20191218194144.GL17681@pobox.com","threadId":"52481","inReplyTo":"dece7350-7b58-bf19-9fdf-4ccf8df268fb@citrix.com","subject":"Re: git-am doesn't strip CRLF line endings when the mbox is base64-encoded","fromName":"Todd Zullinger","fromEmail":"tmz@pobox.com","sentAt":"2019-12-18T19:41:44Z","receivedAt":"2019-12-18T19:41:53Z","isPatch":false,"sender":{"key":"tmz@pobox.com","avatar":"https://avatars.githubusercontent.com/u/806319?v=4"},"body":"George Dunlap wrote:\n> On 12/18/19 11:42 AM, George Dunlap wrote:\n>> Using git 2.24.0 from Debian testing.\n>> \n>> It seems that git-am will strip CRLF endings from mails before applying\n>> patches when the mail isn't encoded in any way.  It will also decode\n>> base64-encoded mails.  But it won't strip CRLF endings from\n>> base64-encoded mails.\n>> \n>> Attached are two mbox files for two different recent series.\n>> plainenc.am applies cleanly with `git am`, while base64enc.am doesn't.\n>> \n>> Poking around the man pages, it looks like part of the issue might be\n>> that the CRLF stripping is done in `git mailsplit`, before the base64\n>> encoding, rather than after.\n> \n> Poking around -- it looks like the CRLF stripping would be better done\n> in `git mailinfo` after the decoding.\n> \n> Also, this can *almost* be worked around using hooks -- there's an\n> `applypatch-msg` hook which can strip the CLRFs from the commit message,\n> but no hook (AFAICT) corresponding `applypatch-patch` which is run on\n> the patch itself before being applied.\n\nThis came up recently in <20191130180301.5c39d8a4@lwn.net>¹.\nI don't know if any of that discussion will prove useful to\nyou if you want to poke at this further or not.\n\n¹ https://lore.kernel.org/git/20191130180301.5c39d8a4@lwn.net/\n\n-- \nTodd\n"},{"id":"389260","messageId":"0c18df58-9d1d-550f-d69e-d6ffe6c01858@citrix.com","threadId":"52481","inReplyTo":"dece7350-7b58-bf19-9fdf-4ccf8df268fb@citrix.com","subject":"Re: git-am doesn't strip CRLF line endings when the mbox is base64-encoded","fromName":"George Dunlap","fromEmail":"george.dunlap@citrix.com","sentAt":"2020-01-06T11:58:48Z","receivedAt":"2020-01-06T11:58:52Z","isPatch":false,"sender":{"key":"george.dunlap@citrix.com","avatar":null},"body":"On 12/18/19 12:15 PM, George Dunlap wrote:\n> On 12/18/19 11:42 AM, George Dunlap wrote:\n>> Using git 2.24.0 from Debian testing.\n>>\n>> It seems that git-am will strip CRLF endings from mails before applying\n>> patches when the mail isn't encoded in any way.  It will also decode\n>> base64-encoded mails.  But it won't strip CRLF endings from\n>> base64-encoded mails.\n>>\n>> Attached are two mbox files for two different recent series.\n>> plainenc.am applies cleanly with `git am`, while base64enc.am doesn't.\n>>\n>> Poking around the man pages, it looks like part of the issue might be\n>> that the CRLF stripping is done in `git mailsplit`, before the base64\n>> encoding, rather than after.\n> \n> Poking around -- it looks like the CRLF stripping would be better done\n> in `git mailinfo` after the decoding.\n\nAnyone want to take this up?  I mean, I could try to send a patch, but\nsince I've never looked at the git source code before, I'm sure it would\ntake me about 10x as much effort for me to do it as for someone already\nfamiliar with the codebase.\n\n(And I've already done that work for stackgit:\nhttps://github.com/ctmarinas/stgit/pull/46)\n\n -George\n"},{"id":"389267","messageId":"xmqqpnfwa4y9.fsf@gitster-ct.c.googlers.com","threadId":"52481","inReplyTo":"0c18df58-9d1d-550f-d69e-d6ffe6c01858@citrix.com","subject":"Re: git-am doesn't strip CRLF line endings when the mbox is base64-encoded","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2020-01-06T17:07:58Z","receivedAt":"2020-01-06T17:08:07Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"George Dunlap <george.dunlap@citrix.com> writes:\n\n> On 12/18/19 12:15 PM, George Dunlap wrote:\n>> On 12/18/19 11:42 AM, George Dunlap wrote:\n>>> Using git 2.24.0 from Debian testing.\n>>>\n>>> It seems that git-am will strip CRLF endings from mails before applying\n>>> patches when the mail isn't encoded in any way.  It will also decode\n>>> base64-encoded mails.  But it won't strip CRLF endings from\n>>> base64-encoded mails.\n>>>\n>>> Attached are two mbox files for two different recent series.\n>>> plainenc.am applies cleanly with `git am`, while base64enc.am doesn't.\n>>>\n>>> Poking around the man pages, it looks like part of the issue might be\n>>> that the CRLF stripping is done in `git mailsplit`, before the base64\n>>> encoding, rather than after.\n>> \n>> Poking around -- it looks like the CRLF stripping would be better done\n>> in `git mailinfo` after the decoding.\n>\n> Anyone want to take this up?  I mean, I could try to send a patch, but\n> since I've never looked at the git source code before, I'm sure it would\n> take me about 10x as much effort for me to do it as for someone already\n> familiar with the codebase.\n\nEven before writing a patch, somebody needs to come up with a\nsensible design first.  --[no-]keep-cr is about \"because transfer of\ne-mail messages between MTAs and to the receiving MUA is defined in\nterms of CRLF delimited lines per RFC, Git cannot tell if the CRLF\nin the input was meant to be part of the patch (i.e. the diff is\ndescribing a change between preimage and postimage of a file that\nuses CRLF line endings) or they are cruft added during transit.  By\ndefault we favor LF endings so we will strip, but we leave an option\nto keep CRs at the end of lines\".  \n\nWhat you are asking for is quite different, isn't it?  \"We know the\nCRLF in the payload is from the original because they were protected\nfrom getting munged during the transfer by being MIME-encased.\nPlease tell Git to preprocess that payload to convert CRLF to LF\nbefore treating it as a patch\".\n\nSo, if you are imagining to change the meaning of --[no-]keep-cr, I\ndo not think it will fly (that is why I said that we need a sensible\ndesign before a patch).\n\nAnd by stepping back a bit like so, and once we start viewing this\nas \"after receiving a piece of e-mail from MUA (where --[no-]keep-cr\nmay affect the outermost CRLF line endings) and unwrapping possible\nMIME-encasing, we can optionally tell Git to pass the payload\nfurther through a preprocess filter\", we'd realize that this does\nnot have to be limited to just running dos2unix (you may want to run\niconv to fix encodings, for example), which would mean that the new\nflag may not just want to be --strip-cr, which is too limiting, but\nrather want to be --filter-message=<how> where <how> could be one of\nthe canned preprocess filter (among which your dos2unix may exist)\nor an external script.\n\nI am not saying that \"--filter-message=<how>\" must be the \"sensible\ndesign\" I mentioned at the beginning of this message---the above is\nto illustrate what kind of thought needs to go in before even the\nfirst line of the patch gets written.\n\nThanks.\n"},{"id":"389274","messageId":"24562917-575a-4f0a-b948-d4eabb17eb94@citrix.com","threadId":"52481","inReplyTo":"xmqqpnfwa4y9.fsf@gitster-ct.c.googlers.com","subject":"Re: git-am doesn't strip CRLF line endings when the mbox is base64-encoded","fromName":"George Dunlap","fromEmail":"george.dunlap@citrix.com","sentAt":"2020-01-06T18:10:34Z","receivedAt":"2020-01-06T18:10:58Z","isPatch":false,"sender":{"key":"george.dunlap@citrix.com","avatar":null},"body":"On 1/6/20 5:07 PM, Junio C Hamano wrote:\n> George Dunlap <george.dunlap@citrix.com> writes:\n> \n>> On 12/18/19 12:15 PM, George Dunlap wrote:\n>>> On 12/18/19 11:42 AM, George Dunlap wrote:\n>>>> Using git 2.24.0 from Debian testing.\n>>>>\n>>>> It seems that git-am will strip CRLF endings from mails before applying\n>>>> patches when the mail isn't encoded in any way.  It will also decode\n>>>> base64-encoded mails.  But it won't strip CRLF endings from\n>>>> base64-encoded mails.\n>>>>\n>>>> Attached are two mbox files for two different recent series.\n>>>> plainenc.am applies cleanly with `git am`, while base64enc.am doesn't.\n>>>>\n>>>> Poking around the man pages, it looks like part of the issue might be\n>>>> that the CRLF stripping is done in `git mailsplit`, before the base64\n>>>> encoding, rather than after.\n>>>\n>>> Poking around -- it looks like the CRLF stripping would be better done\n>>> in `git mailinfo` after the decoding.\n>>\n>> Anyone want to take this up?  I mean, I could try to send a patch, but\n>> since I've never looked at the git source code before, I'm sure it would\n>> take me about 10x as much effort for me to do it as for someone already\n>> familiar with the codebase.\n> \n> Even before writing a patch, somebody needs to come up with a\n> sensible design first.  --[no-]keep-cr is about \"because transfer of\n> e-mail messages between MTAs and to the receiving MUA is defined in\n> terms of CRLF delimited lines per RFC, Git cannot tell if the CRLF\n> in the input was meant to be part of the patch (i.e. the diff is\n> describing a change between preimage and postimage of a file that\n> uses CRLF line endings) or they are cruft added during transit.  By\n> default we favor LF endings so we will strip, but we leave an option\n> to keep CRs at the end of lines\".  \n> \n> What you are asking for is quite different, isn't it?  \"We know the\n> CRLF in the payload is from the original because they were protected\n> from getting munged during the transfer by being MIME-encased.\n> Please tell Git to preprocess that payload to convert CRLF to LF\n> before treating it as a patch\".\n\nActually that's not true. :-)   The RFC specifies CRLF for text sections\nregardless of the encoding:\n\n8<----\n   The canonical form of any MIME \"text\" subtype MUST always represent a\n   line break as a CRLF sequence.  Similarly, any occurrence of CRLF in\n   MIME \"text\" MUST represent a line break.  Use of CR and LF outside of\n   line break sequences is also forbidden.\n----->8\n\n[1] https://tools.ietf.org/html/rfc2046#section-4.1.1\n\nJust as for plaintext encoding, we do not, in fact, know that CRLF is in\nthe original; in the example I included above, I'm confident that CRLF\nis *not* in the original, but was added by an MTA afterwards.\n\nAs such, at the moment what `mailsplit` does is generate a load of\nnon-RFC-compliant email messages (since text-plain encoded messages\nwon't have CRLF, in contravention of the spec), and `mailinfo`\nincorrectly interprets base64-encoded sections.  Moving the CR-stripping\nfrom mailsplit to mailinfo would make them both more RFC-compliant.\n\n(Sorry this wasn't in the original report -- I've been doing a lot more\ndigging since then.)\n\n> So, if you are imagining to change the meaning of --[no-]keep-cr, I\n> do not think it will fly (that is why I said that we need a sensible\n> design before a patch).\n> \n> And by stepping back a bit like so, and once we start viewing this\n> as \"after receiving a piece of e-mail from MUA (where --[no-]keep-cr\n> may affect the outermost CRLF line endings) and unwrapping possible\n> MIME-encasing, we can optionally tell Git to pass the payload\n> further through a preprocess filter\", we'd realize that this does\n> not have to be limited to just running dos2unix (you may want to run\n> iconv to fix encodings, for example), which would mean that the new\n> flag may not just want to be --strip-cr, which is too limiting, but\n> rather want to be --filter-message=<how> where <how> could be one of\n> the canned preprocess filter (among which your dos2unix may exist)\n> or an external script.\n> \n> I am not saying that \"--filter-message=<how>\" must be the \"sensible\n> design\" I mentioned at the beginning of this message---the above is\n> to illustrate what kind of thought needs to go in before even the\n> first line of the patch gets written.\nAs I mentioned in another thread, there's already an `applypatch-msg`\nhook which can be used to do arbitrary modifications on commit messages\nbefore applying.  Another way to fix this would be to add an\n`applypatch-patch` hook, which allowed you to do arbitrary modifications\non the patch before applying.\n\nI certainly think that `applypatch-patch` would be a useful thing to\nadd.  But since making `mailsplit` and `mailinfo` more RFC-compliant is\nboth good in itself, and probably easier, I still think that's the best\nthing to do first.\n\n -George\n"}]}