From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH for-4.7] x86/cpuid: Calculate a guests xfeature_mask from its featureset Date: Thu, 2 Jun 2016 17:48:01 +0100 Message-ID: <1464886081-2011-1-git-send-email-andrew.cooper3@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Xen-devel Cc: Andrew Cooper , Wei Liu , Luwei Kang , Jan Beulich , Huaitong Han List-Id: xen-devel@lists.xenproject.org bGlieGMgY3VycmVudCBwZXJmb3JtcyB0aGUgeHN0YXRlIGNhbGN1bGF0aW9uIGZvciBndWVzdHMs IGFuZCBwcm92aWRlcyB0aGUKaW5mb3JtYXRpb24gdG8gWGVuIHRvIGJlIHVzZWQgd2hlbiBzYXRp c2Z5aW5nIENQVUlEIHRyYXBzLiAgKFRoZXJlIGlzIGZ1cnRoZXIKd29yayBwbGFubmVkIHRvIGlt cHJvdmUgdGhpcyBhcnJhbmdlbWVudCwgYnV0IHRoZSB3b3JzdCBhIGJ1Z2d5IHRvb2xzdGFjayBj YW4KZG8gaXMgbWFrZSBqdW5rIGFwcGVhciBpbiB0aGUgY3B1aWQgbGVhdmVzIGZvciB0aGUgZ3Vl c3QuKQoKZG9tMCBob3dldmVyIGhhcyBubyBwb2xpY3kgY29uc3RydWN0ZWQgZm9yIGl0LCBhbmQg Y2VydGFpbiBmaWVsZHMgZmlsdGVyCnN0cmFpZ2h0IHRocm91Z2ggZnJvbSBoYXJkd2FyZS4KCkxp bnV4IHF1ZXJpZXMgQ1BVSUQuN1swXS57RUFYL0VEWH0gYWxvbmUgdG8gY2hvb3NlIGEgc2V0dGlu ZyBmb3IgJXhjcjAsIHdoaWNoCmlzIGFjdGlvbiB0byB0YWtlLiAgSG93ZXZlciwgZmVhdHVyZXMg c3VjaCBhcyBNUFggYW5kIFBLUlUgYXJlIG5vdCBzdXBwb3J0ZWQKZm9yIFBWIGd1ZXN0cy4gIEFz IGEgcmVzdWx0LCBMaW51eCwgdXNpbmcgbGVha2VkIGhhcmR3YXJlIGluZm9ybWF0aW9uLCBmYWls cwp0byBzZXQgJXhjcjAgb24gbmV3ZXIgU2t5bGFrZSBoYXJkd2FyZSB3aXRoIFBLUlUgc3VwcG9y dCwgYW5kIGNyYXNoZXMuCgpBcyBhbiBpbnRlcmltIHNvbHV0aW9uLCBkeW5hbWljYWxseSBjYWxj dWxhdGUgdGhlIGNvcnJlY3QgeGZlYXR1cmVfbWFzayBhbmQKeHN0YXRlX3NpemUgdG8gcmVwb3J0 IHRvIHRoZSBndWVzdCBmb3IgQ1BVSUQuN1swXSBxdWVyaWVzLiAgVGhpcyBlbnN1cmVzIHRoYXQK ZG9tYWlucyBkb24ndCBzZWUgbGVha2VkIGhhcmR3YXJlIHZhbHVlcywgZXZlbiB3aGVuIG5vIGNw dWlkIHBvbGljeSBpcwpwcm92aWRlZC4KClNpbWlsYXJseSwgQ1BVSUQuN1sxXXtFQ1gvRURYfSBy ZXByZXNlbnRzIHRoZSBhcHBsaWNhYmxlIHNldHRpbmdzIGZvcgpNU1JfWFNTLiAgWGVuIGRvZXNu J3Qgc3VwcG9ydCBhbnkgWFNTIHN0YXRlcyBpbiBndWVzdHMsIHVuY29uZGl0aW9uYWxseSBjbGVh cgp0aGVtIGZvciBIVk0gZ3Vlc3RzLgoKUmVwb3J0ZWQtYnk6IEx1d2VpIEthbmcgPGx1d2VpLmth bmdAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVy M0BjaXRyaXguY29tPgotLS0KQ0M6IEphbiBCZXVsaWNoIDxKQmV1bGljaEBzdXNlLmNvbT4KQ0M6 IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+CkNDOiBMdXdlaSBLYW5nIDxsdXdlaS5rYW5n QGludGVsLmNvbT4KQ0M6IEh1YWl0b25nIEhhbiA8aHVhaXRvbmcuaGFuQGludGVsLmNvbT4KLS0t CiB4ZW4vYXJjaC94ODYvaHZtL2h2bS5jICAgICAgIHwgNTMgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrLS0KIHhlbi9hcmNoL3g4Ni90cmFwcy5jICAgICAgICAgfCA1 MCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLQogeGVuL2FyY2gveDg2 L3hzdGF0ZS5jICAgICAgICB8ICAyICstCiB4ZW4vaW5jbHVkZS9hc20teDg2L3hzdGF0ZS5oIHwg MzIgKysrKysrKysrKysrKysrKystLS0tLS0tLS0KIDQgZmlsZXMgY2hhbmdlZCwgMTE0IGluc2Vy dGlvbnMoKyksIDIzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0v aHZtLmMgYi94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCmluZGV4IGJiOTgwNTEuLjcyYmJlZDUgMTAw NjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9o dm0uYwpAQCAtMzM2Miw3ICszMzYyLDcgQEAgdm9pZCBodm1fY3B1aWQodW5zaWduZWQgaW50IGlu cHV0LCB1bnNpZ25lZCBpbnQgKmVheCwgdW5zaWduZWQgaW50ICplYngsCiAKICAgICBzd2l0Y2gg KCBpbnB1dCApCiAgICAgewotICAgICAgICB1bnNpZ25lZCBpbnQgX2VjeCwgX2VkeDsKKyAgICAg ICAgdW5zaWduZWQgaW50IF9lYngsIF9lY3gsIF9lZHg7CiAKICAgICBjYXNlIDB4MToKICAgICAg ICAgLyogRml4IHVwIFZMQVBJQyBkZXRhaWxzLiAqLwpAQCAtMzQ0Myw2ICszNDQzLDUxIEBAIHZv aWQgaHZtX2NwdWlkKHVuc2lnbmVkIGludCBpbnB1dCwgdW5zaWduZWQgaW50ICplYXgsIHVuc2ln bmVkIGludCAqZWJ4LAogICAgICAgICBzd2l0Y2ggKCBjb3VudCApCiAgICAgICAgIHsKICAgICAg ICAgY2FzZSAwOgorICAgICAgICB7CisgICAgICAgICAgICB1aW50NjRfdCB4ZmVhdHVyZV9tYXNr ID0gWFNUQVRFX0ZQX1NTRTsKKyAgICAgICAgICAgIHVpbnQzMl90IHhzdGF0ZV9zaXplID0gWFNU QVRFX0FSRUFfTUlOX1NJWkU7CisKKyAgICAgICAgICAgIGlmICggX2VjeCAmIGNwdWZlYXRfbWFz ayhYODZfRkVBVFVSRV9BVlgpICkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB4ZmVh dHVyZV9tYXNrIHw9IFhTVEFURV9ZTU07CisgICAgICAgICAgICAgICAgeHN0YXRlX3NpemUgPSBN QVgoeHN0YXRlX3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeHN0YXRl X29mZnNldHNbX1hTVEFURV9ZTU1dICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB4c3RhdGVfc2l6ZXNbX1hTVEFURV9ZTU1dKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAg ICAgX2VjeCA9IDA7CisgICAgICAgICAgICBodm1fY3B1aWQoNywgTlVMTCwgJl9lYngsICZfZWN4 LCBOVUxMKTsKKworICAgICAgICAgICAgaWYgKCBfZWJ4ICYgY3B1ZmVhdF9tYXNrKFg4Nl9GRUFU VVJFX01QWCkgKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHhmZWF0dXJlX21hc2sg fD0gWFNUQVRFX0JORFJFR1MgfCBYU1RBVEVfQk5EQ1NSOworICAgICAgICAgICAgICAgIHhzdGF0 ZV9zaXplID0gTUFYKHhzdGF0ZV9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHhzdGF0ZV9vZmZzZXRzW19YU1RBVEVfQk5EQ1NSXSArCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgeHN0YXRlX3NpemVzW19YU1RBVEVfQk5EQ1NSXSk7CisgICAgICAgICAg ICB9CisKKyAgICAgICAgICAgIGlmICggX2VieCAmIGNwdWZlYXRfbWFzayhYODZfRkVBVFVSRV9Q S1UpICkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB4ZmVhdHVyZV9tYXNrIHw9IFhT VEFURV9QS1JVOworICAgICAgICAgICAgICAgIHhzdGF0ZV9zaXplID0gTUFYKHhzdGF0ZV9zaXpl LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhzdGF0ZV9vZmZzZXRzW19YU1RB VEVfUEtSVV0gKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhzdGF0ZV9zaXpl c1tfWFNUQVRFX1BLUlVdKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaHZtX2NwdWlk KDB4ODAwMDAwMDEsIE5VTEwsIE5VTEwsICZfZWN4LCBOVUxMKTsKKworICAgICAgICAgICAgaWYg KCBfZWN4ICYgY3B1ZmVhdF9tYXNrKFg4Nl9GRUFUVVJFX0xXUCkgKQorICAgICAgICAgICAgewor ICAgICAgICAgICAgICAgIHhmZWF0dXJlX21hc2sgfD0gWFNUQVRFX0xXUDsKKyAgICAgICAgICAg ICAgICB4c3RhdGVfc2l6ZSA9IE1BWCh4c3RhdGVfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB4c3RhdGVfb2Zmc2V0c1tfWFNUQVRFX0xXUF0gKworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHhzdGF0ZV9zaXplc1tfWFNUQVRFX0xXUF0pOworICAgICAg ICAgICAgfQorCisgICAgICAgICAgICAqZWF4ID0gKHVpbnQzMl90KXhmZWF0dXJlX21hc2s7Cisg ICAgICAgICAgICAqZWR4ID0gKHVpbnQzMl90KSh4ZmVhdHVyZV9tYXNrID4+IDMyKTsKKyAgICAg ICAgICAgICplY3ggPSB4c3RhdGVfc2l6ZTsKKwogICAgICAgICAgICAgLyoKICAgICAgICAgICAg ICAqIEFsd2F5cyByZWFkIENQVUlEWzB4RCwwXS5FQlggZnJvbSBoYXJkd2FyZSwgcmF0aGVyIHRo YW4gZG9tYWluCiAgICAgICAgICAgICAgKiBwb2xpY3kuICBJdCB2YXJpZXMgd2l0aCBlbmFibGVk IHhzdGF0ZSwgYW5kIHRoZSBjb3JyZWN0IHhjcjAgaXMKQEAgLTM0NTAsNiArMzQ5NSw4IEBAIHZv aWQgaHZtX2NwdWlkKHVuc2lnbmVkIGludCBpbnB1dCwgdW5zaWduZWQgaW50ICplYXgsIHVuc2ln bmVkIGludCAqZWJ4LAogICAgICAgICAgICAgICovCiAgICAgICAgICAgICBjcHVpZF9jb3VudChp bnB1dCwgY291bnQsICZkdW1teSwgZWJ4LCAmZHVtbXksICZkdW1teSk7CiAgICAgICAgICAgICBi cmVhazsKKyAgICAgICAgfQorCiAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICplYXggJj0g aHZtX2ZlYXR1cmVzZXRbRkVBVFVSRVNFVF9EYTFdOwogCkBAIC0zNDYzLDcgKzM1MTAsOSBAQCB2 b2lkIGh2bV9jcHVpZCh1bnNpZ25lZCBpbnQgaW5wdXQsIHVuc2lnbmVkIGludCAqZWF4LCB1bnNp Z25lZCBpbnQgKmVieCwKICAgICAgICAgICAgICAgICBjcHVpZF9jb3VudChpbnB1dCwgY291bnQs ICZkdW1teSwgZWJ4LCAmZHVtbXksICZkdW1teSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAg ICBlbHNlCi0gICAgICAgICAgICAgICAgKmVieCA9ICplY3ggPSAqZWR4ID0gMDsKKyAgICAgICAg ICAgICAgICAqZWJ4ID0gMDsKKworICAgICAgICAgICAgKmVjeCA9ICplZHggPSAwOwogICAgICAg ICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS94ZW4v YXJjaC94ODYvdHJhcHMuYyBiL3hlbi9hcmNoL3g4Ni90cmFwcy5jCmluZGV4IDVkNzIzMmQuLmEy Njg4YzMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni90cmFwcy5jCisrKyBiL3hlbi9hcmNoL3g4 Ni90cmFwcy5jCkBAIC05MjgsNyArOTI4LDcgQEAgdm9pZCBwdl9jcHVpZChzdHJ1Y3QgY3B1X3Vz ZXJfcmVncyAqcmVncykKIAogICAgIHN3aXRjaCAoIGxlYWYgKQogICAgIHsKLSAgICAgICAgdWlu dDMyX3QgdG1wOworICAgICAgICB1aW50MzJfdCB0bXAsIF9lY3g7CiAKICAgICBjYXNlIDB4MDAw MDAwMDE6CiAgICAgICAgIGMgJj0gcHZfZmVhdHVyZXNldFtGRUFUVVJFU0VUXzFjXTsKQEAgLTEw ODcsMTkgKzEwODcsNDggQEAgdm9pZCBwdl9jcHVpZChzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVn cykKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIFhTVEFURV9DUFVJRDoKLSAgICAgICAgaWYg KCAhKCghaXNfY29udHJvbF9kb21haW4oY3VycmQpICYmICFpc19oYXJkd2FyZV9kb21haW4oY3Vy cmQpCi0gICAgICAgICAgICAgICAgPyAoewotICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBl Y3g7Ci0KLSAgICAgICAgICAgICAgICAgICAgZG9tYWluX2NwdWlkKGN1cnJkLCAxLCAwLCAmdG1w LCAmdG1wLCAmZWN4LCAmdG1wKTsKLSAgICAgICAgICAgICAgICAgICAgZWN4ICYgcHZfZmVhdHVy ZXNldFtGRUFUVVJFU0VUXzFjXTsKLSAgICAgICAgICAgICAgICAgIH0pCi0gICAgICAgICAgICAg ICAgOiBjcHVpZF9lY3goMSkpICYgY3B1ZmVhdF9tYXNrKFg4Nl9GRUFUVVJFX1hTQVZFKSkgfHwK LSAgICAgICAgICAgICBzdWJsZWFmID49IDYzICkKKworICAgICAgICBpZiAoICFpc19jb250cm9s X2RvbWFpbihjdXJyZCkgJiYgIWlzX2hhcmR3YXJlX2RvbWFpbihjdXJyZCkgKQorICAgICAgICAg ICAgZG9tYWluX2NwdWlkKGN1cnJkLCAxLCAwLCAmdG1wLCAmdG1wLCAmX2VjeCwgJnRtcCk7Cisg ICAgICAgIGVsc2UKKyAgICAgICAgICAgIF9lY3ggPSBjcHVpZF9lY3goMSk7CisgICAgICAgIF9l Y3ggJj0gcHZfZmVhdHVyZXNldFtGRUFUVVJFU0VUXzFjXTsKKworICAgICAgICBpZiAoICEoX2Vj eCAmIGNwdWZlYXRfbWFzayhYODZfRkVBVFVSRV9YU0FWRSkpIHx8IHN1YmxlYWYgPj0gNjMgKQog ICAgICAgICAgICAgZ290byB1bnN1cHBvcnRlZDsKICAgICAgICAgc3dpdGNoICggc3VibGVhZiAp CiAgICAgICAgIHsKICAgICAgICAgY2FzZSAwOgorICAgICAgICB7CisgICAgICAgICAgICB1aW50 NjRfdCB4ZmVhdHVyZV9tYXNrID0gWFNUQVRFX0ZQX1NTRTsKKyAgICAgICAgICAgIHVpbnQzMl90 IHhzdGF0ZV9zaXplID0gWFNUQVRFX0FSRUFfTUlOX1NJWkU7CisKKyAgICAgICAgICAgIGlmICgg X2VjeCAmIGNwdWZlYXRfbWFzayhYODZfRkVBVFVSRV9BVlgpICkKKyAgICAgICAgICAgIHsKKyAg ICAgICAgICAgICAgICB4ZmVhdHVyZV9tYXNrIHw9IFhTVEFURV9ZTU07CisgICAgICAgICAgICAg ICAgeHN0YXRlX3NpemUgPSBNQVgoeHN0YXRlX3NpemUsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgeHN0YXRlX29mZnNldHNbX1hTVEFURV9ZTU1dICsKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB4c3RhdGVfc2l6ZXNbX1hTVEFURV9ZTU1dKTsKKyAgICAgICAg ICAgIH0KKworICAgICAgICAgICAgaWYgKCAhaXNfY29udHJvbF9kb21haW4oY3VycmQpICYmICFp c19oYXJkd2FyZV9kb21haW4oY3VycmQpICkKKyAgICAgICAgICAgICAgICBkb21haW5fY3B1aWQo Y3VycmQsIDB4ODAwMDAwMDEsIDAsICZ0bXAsICZ0bXAsICZfZWN4LCAmdG1wKTsKKyAgICAgICAg ICAgIGVsc2UKKyAgICAgICAgICAgICAgICBfZWN4ID0gY3B1aWRfZWN4KDB4ODAwMDAwMDEpOwor ICAgICAgICAgICAgX2VjeCAmPSBwdl9mZWF0dXJlc2V0W0ZFQVRVUkVTRVRfZTFjXTsKKworICAg ICAgICAgICAgaWYgKCBfZWN4ICYgY3B1ZmVhdF9tYXNrKFg4Nl9GRUFUVVJFX0xXUCkgKQorICAg ICAgICAgICAgeworICAgICAgICAgICAgICAgIHhmZWF0dXJlX21hc2sgfD0gWFNUQVRFX0xXUDsK KyAgICAgICAgICAgICAgICB4c3RhdGVfc2l6ZSA9IE1BWCh4c3RhdGVfc2l6ZSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB4c3RhdGVfb2Zmc2V0c1tfWFNUQVRFX0xXUF0gKwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhzdGF0ZV9zaXplc1tfWFNUQVRFX0xX UF0pOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBhID0gKHVpbnQzMl90KXhmZWF0dXJl X21hc2s7CisgICAgICAgICAgICBkID0gKHVpbnQzMl90KSh4ZmVhdHVyZV9tYXNrID4+IDMyKTsK KyAgICAgICAgICAgIGMgPSB4c3RhdGVfc2l6ZTsKKwogICAgICAgICAgICAgLyoKICAgICAgICAg ICAgICAqIEFsd2F5cyByZWFkIENQVUlELjB4RFtFQ1g9MF0uRUJYIGZyb20gaGFyZHdhcmUsIHJh dGhlciB0aGFuCiAgICAgICAgICAgICAgKiBkb21haW4gcG9saWN5LiAgSXQgdmFyaWVzIHdpdGgg ZW5hYmxlZCB4c3RhdGUsIGFuZCB0aGUgY29ycmVjdApAQCAtMTEwOCw2ICsxMTM3LDcgQEAgdm9p ZCBwdl9jcHVpZChzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKICAgICAgICAgICAgIGlmICgg IWlzX2NvbnRyb2xfZG9tYWluKGN1cnJkKSAmJiAhaXNfaGFyZHdhcmVfZG9tYWluKGN1cnJkKSAp CiAgICAgICAgICAgICAgICAgY3B1aWRfY291bnQobGVhZiwgc3VibGVhZiwgJnRtcCwgJmIsICZ0 bXAsICZ0bXApOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KIAogICAgICAgICBjYXNl IDE6CiAgICAgICAgICAgICBhICY9IHB2X2ZlYXR1cmVzZXRbRkVBVFVSRVNFVF9EYTFdOwpkaWZm IC0tZ2l0IGEveGVuL2FyY2gveDg2L3hzdGF0ZS5jIGIveGVuL2FyY2gveDg2L3hzdGF0ZS5jCmlu ZGV4IGEwY2ZjYzIuLjFmZDFjZTggMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni94c3RhdGUuYwor KysgYi94ZW4vYXJjaC94ODYveHN0YXRlLmMKQEAgLTI0LDcgKzI0LDcgQEAgc3RhdGljIHUzMiBf X3JlYWRfbW9zdGx5IHhzYXZlX2NudHh0X3NpemU7CiAvKiBBIDY0LWJpdCBiaXRtYXNrIG9mIHRo ZSBYU0FWRS9YUlNUT1IgZmVhdHVyZXMgc3VwcG9ydGVkIGJ5IHByb2Nlc3Nvci4gKi8KIHU2NCBf X3JlYWRfbW9zdGx5IHhmZWF0dXJlX21hc2s7CiAKLXN0YXRpYyB1bnNpZ25lZCBpbnQgKl9fcmVh ZF9tb3N0bHkgeHN0YXRlX29mZnNldHM7Cit1bnNpZ25lZCBpbnQgKl9fcmVhZF9tb3N0bHkgeHN0 YXRlX29mZnNldHM7CiB1bnNpZ25lZCBpbnQgKl9fcmVhZF9tb3N0bHkgeHN0YXRlX3NpemVzOwog dTY0IF9fcmVhZF9tb3N0bHkgeHN0YXRlX2FsaWduOwogc3RhdGljIHVuc2lnbmVkIGludCBfX3Jl YWRfbW9zdGx5IHhzdGF0ZV9mZWF0dXJlczsKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14 ODYveHN0YXRlLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L3hzdGF0ZS5oCmluZGV4IDQ1MzUzNTQu LjUxYTllZDQgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYveHN0YXRlLmgKKysrIGIv eGVuL2luY2x1ZGUvYXNtLXg4Ni94c3RhdGUuaApAQCAtMjYsMTYgKzI2LDI3IEBACiAjZGVmaW5l IFhTQVZFX0hEUl9PRkZTRVQgICAgICAgICAgRlhTQVZFX1NJWkUKICNkZWZpbmUgWFNUQVRFX0FS RUFfTUlOX1NJWkUgICAgICAoRlhTQVZFX1NJWkUgKyBYU0FWRV9IRFJfU0laRSkKIAotI2RlZmlu ZSBYU1RBVEVfRlAgICAgICAoMVVMTCA8PCAwKQotI2RlZmluZSBYU1RBVEVfU1NFICAgICAoMVVM TCA8PCAxKQotI2RlZmluZSBYU1RBVEVfWU1NICAgICAoMVVMTCA8PCAyKQotI2RlZmluZSBYU1RB VEVfQk5EUkVHUyAoMVVMTCA8PCAzKQotI2RlZmluZSBYU1RBVEVfQk5EQ1NSICAoMVVMTCA8PCA0 KQotI2RlZmluZSBYU1RBVEVfT1BNQVNLICAoMVVMTCA8PCA1KQotI2RlZmluZSBYU1RBVEVfWk1N ICAgICAoMVVMTCA8PCA2KQotI2RlZmluZSBYU1RBVEVfSElfWk1NICAoMVVMTCA8PCA3KQotI2Rl ZmluZSBYU1RBVEVfUEtSVSAgICAoMVVMTCA8PCA5KQotI2RlZmluZSBYU1RBVEVfTFdQICAgICAo MVVMTCA8PCA2MikgLyogQU1EIGxpZ2h0d2VpZ2h0IHByb2ZpbGluZyAqLworI2RlZmluZSBfWFNU QVRFX0ZQICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgWFNUQVRFX0ZQICAgICAgICAgICAgICAg ICAoMVVMTCA8PCBfWFNUQVRFX0ZQKQorI2RlZmluZSBfWFNUQVRFX1NTRSAgICAgICAgICAgICAg IDEKKyNkZWZpbmUgWFNUQVRFX1NTRSAgICAgICAgICAgICAgICAoMVVMTCA8PCBfWFNUQVRFX1NT RSkKKyNkZWZpbmUgX1hTVEFURV9ZTU0gICAgICAgICAgICAgICAyCisjZGVmaW5lIFhTVEFURV9Z TU0gICAgICAgICAgICAgICAgKDFVTEwgPDwgX1hTVEFURV9ZTU0pCisjZGVmaW5lIF9YU1RBVEVf Qk5EUkVHUyAgICAgICAgICAgMworI2RlZmluZSBYU1RBVEVfQk5EUkVHUyAgICAgICAgICAgICgx VUxMIDw8IF9YU1RBVEVfQk5EUkVHUykKKyNkZWZpbmUgX1hTVEFURV9CTkRDU1IgICAgICAgICAg ICA0CisjZGVmaW5lIFhTVEFURV9CTkRDU1IgICAgICAgICAgICAgKDFVTEwgPDwgX1hTVEFURV9C TkRDU1IpCisjZGVmaW5lIF9YU1RBVEVfT1BNQVNLICAgICAgICAgICAgNQorI2RlZmluZSBYU1RB VEVfT1BNQVNLICAgICAgICAgICAgICgxVUxMIDw8IF9YU1RBVEVfT1BNQVNLKQorI2RlZmluZSBf WFNUQVRFX1pNTSAgICAgICAgICAgICAgIDYKKyNkZWZpbmUgWFNUQVRFX1pNTSAgICAgICAgICAg ICAgICAoMVVMTCA8PCBfWFNUQVRFX1pNTSkKKyNkZWZpbmUgX1hTVEFURV9ISV9aTU0gICAgICAg ICAgICA3CisjZGVmaW5lIFhTVEFURV9ISV9aTU0gICAgICAgICAgICAgKDFVTEwgPDwgX1hTVEFU RV9ISV9aTU0pCisjZGVmaW5lIF9YU1RBVEVfUEtSVSAgICAgICAgICAgICAgOQorI2RlZmluZSBY U1RBVEVfUEtSVSAgICAgICAgICAgICAgICgxVUxMIDw8IF9YU1RBVEVfUEtSVSkKKyNkZWZpbmUg X1hTVEFURV9MV1AgICAgICAgICAgICAgICA2MgorI2RlZmluZSBYU1RBVEVfTFdQICAgICAgICAg ICAgICAgICgxVUxMIDw8IF9YU1RBVEVfTFdQKQorCiAjZGVmaW5lIFhTVEFURV9GUF9TU0UgIChY U1RBVEVfRlAgfCBYU1RBVEVfU1NFKQogI2RlZmluZSBYQ05UWFRfTUFTSyAgICAoWFNUQVRFX0ZQ IHwgWFNUQVRFX1NTRSB8IFhTVEFURV9ZTU0gfCBYU1RBVEVfT1BNQVNLIHwgXAogICAgICAgICAg ICAgICAgICAgICAgICAgWFNUQVRFX1pNTSB8IFhTVEFURV9ISV9aTU0gfCBYU1RBVEVfTk9OTEFa WSkKQEAgLTUxLDYgKzYyLDcgQEAKIAogZXh0ZXJuIHU2NCB4ZmVhdHVyZV9tYXNrOwogZXh0ZXJu IHU2NCB4c3RhdGVfYWxpZ247CitleHRlcm4gdW5zaWduZWQgaW50ICp4c3RhdGVfb2Zmc2V0czsK IGV4dGVybiB1bnNpZ25lZCBpbnQgKnhzdGF0ZV9zaXplczsKIAogLyogZXh0ZW5kZWQgc3RhdGUg c2F2ZSBhcmVhICovCi0tIAoyLjEuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhl bi5vcmcKaHR0cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==