From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH] x86/apic: Drop workarounds for Pentium/82489DX erratum Date: Thu, 1 Jun 2017 15:51:49 +0100 Message-ID: <1496328709-27048-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 , Jan Beulich List-Id: xen-devel@lists.xenproject.org Q09ORklHX1g4Nl9HT09EX0FQSUMgaXMgdW5jb25kaXRpb25hbGx5IHNlbGVjdGVkIGZvciA2NGJp dCBidWlsZHMuICBEcm9wIHRoZQpyZWxhdGVkIGluZnJhc3RydWN0dXJlIGluY2x1ZGluZyBhcGlj X3tyZWFkLHdyaXRlfV9hcm91bmQoKSwgdGhlIGZvcm1lciBvZgp3aGljaCBoYWQgbm8gZWZmZWN0 LCBhbmQgdGhlIGxhdHRlciB3aGljaCB3YXMgYW4gYWxpYXMgb2YgYXBpY193cml0ZSgpLgoKTm8g ZnVuY3Rpb25hbCBjaGFuZ2UsIGFzIGNvbmZpcm1lZCBieSBkaWZmaW5nIHRoZSBiZWZvcmUvYWZ0 ZXIgZGlzYXNzZW1ibHkuCihUaHJlZSBfX0xJTkVfXyBudW1iZXJzIGFyZSBkaWZmZXJlbnQsIGJ1 dCB0aGV5IGFyZSBgbW92ICRpbW0sICVyZWdgIGFzIHBhcnQKb2YgYSBkcHJpbnRrKCkgY2FsbC4p CgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29t PgotLS0KQ0M6IEphbiBCZXVsaWNoIDxKQmV1bGljaEBzdXNlLmNvbT4KLS0tCiB4ZW4vYXJjaC94 ODYvYXBpYy5jICAgICAgICAgICAgICAgICB8IDcyICsrKysrKysrKysrKysrKysrKy0tLS0tLS0t LS0tLS0tLS0tLS0KIHhlbi9hcmNoL3g4Ni9jcHUvbWNoZWNrL21jZV9pbnRlbC5jIHwgIDggKyst LS0KIHhlbi9hcmNoL3g4Ni9jcHUvdnBtdS5jICAgICAgICAgICAgIHwgIDUgKystCiB4ZW4vYXJj aC94ODYvZ2VuYXBpYy9kZWxpdmVyeS5jICAgICB8ICA4ICsrLS0tCiB4ZW4vYXJjaC94ODYvaW9f YXBpYy5jICAgICAgICAgICAgICB8IDE0ICsrKystLS0tCiB4ZW4vYXJjaC94ODYvc21wLmMgICAg ICAgICAgICAgICAgICB8IDEwICsrKy0tLQogeGVuL2FyY2gveDg2L3NtcGJvb3QuYyAgICAgICAg ICAgICAgfCAgMyAtLQogeGVuL2luY2x1ZGUvYXNtLXg4Ni9hcGljLmggICAgICAgICAgfCAxOSAr LS0tLS0tLS0tCiB4ZW4vaW5jbHVkZS9hc20teDg2L2NvbmZpZy5oICAgICAgICB8ICAxIC0KIDkg ZmlsZXMgY2hhbmdlZCwgNTggaW5zZXJ0aW9ucygrKSwgODIgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEveGVuL2FyY2gveDg2L2FwaWMuYyBiL3hlbi9hcmNoL3g4Ni9hcGljLmMKaW5kZXggMWRk MTg4YS4uYTVhZTRiNiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2FwaWMuYworKysgYi94ZW4v YXJjaC94ODYvYXBpYy5jCkBAIC0xNTcsNyArMTU3LDcgQEAgdm9pZCBjbGVhcl9sb2NhbF9BUElD KHZvaWQpCiAgICAgbWF4bHZ0ID0gZ2V0X21heGx2dCgpOwogCiAgICAgLyogV29yayBhcm91bmQg QU1EIEVycmF0dW0gNDExLiBUaGlzIGlzIGEgbmljZSB0aGluZyB0byBkbyBhbnl3YXkuICovCi0g ICAgYXBpY193cml0ZV9hcm91bmQoQVBJQ19UTUlDVCwgMCk7CisgICAgYXBpY193cml0ZShBUElD X1RNSUNULCAwKTsKIAogICAgIC8qCiAgICAgICogTWFza2luZyBhbiBMVlQgZW50cnkgb24gYSBQ NiBjYW4gdHJpZ2dlciBhIGxvY2FsIEFQSUMgZXJyb3IKQEAgLTE2NSw1MiArMTY1LDUyIEBAIHZv aWQgY2xlYXJfbG9jYWxfQVBJQyh2b2lkKQogICAgICAqLwogICAgIGlmIChtYXhsdnQgPj0gMykg ewogICAgICAgICB2ID0gRVJST1JfQVBJQ19WRUNUT1I7IC8qIGFueSBub24temVybyB2ZWN0b3Ig d2lsbCBkbyAqLwotICAgICAgICBhcGljX3dyaXRlX2Fyb3VuZChBUElDX0xWVEVSUiwgdiB8IEFQ SUNfTFZUX01BU0tFRCk7CisgICAgICAgIGFwaWNfd3JpdGUoQVBJQ19MVlRFUlIsIHYgfCBBUElD X0xWVF9NQVNLRUQpOwogICAgIH0KICAgICAvKgogICAgICAqIENhcmVmdWw6IHdlIGhhdmUgdG8g c2V0IG1hc2tzIG9ubHkgZmlyc3QgdG8gZGVhc3NlcnQKICAgICAgKiBhbnkgbGV2ZWwtdHJpZ2dl cmVkIHNvdXJjZXMuCiAgICAgICovCiAgICAgdiA9IGFwaWNfcmVhZChBUElDX0xWVFQpOwotICAg IGFwaWNfd3JpdGVfYXJvdW5kKEFQSUNfTFZUVCwgdiB8IEFQSUNfTFZUX01BU0tFRCk7CisgICAg YXBpY193cml0ZShBUElDX0xWVFQsIHYgfCBBUElDX0xWVF9NQVNLRUQpOwogICAgIHYgPSBhcGlj X3JlYWQoQVBJQ19MVlQwKTsKLSAgICBhcGljX3dyaXRlX2Fyb3VuZChBUElDX0xWVDAsIHYgfCBB UElDX0xWVF9NQVNLRUQpOworICAgIGFwaWNfd3JpdGUoQVBJQ19MVlQwLCB2IHwgQVBJQ19MVlRf TUFTS0VEKTsKICAgICB2ID0gYXBpY19yZWFkKEFQSUNfTFZUMSk7Ci0gICAgYXBpY193cml0ZV9h cm91bmQoQVBJQ19MVlQxLCB2IHwgQVBJQ19MVlRfTUFTS0VEKTsKKyAgICBhcGljX3dyaXRlKEFQ SUNfTFZUMSwgdiB8IEFQSUNfTFZUX01BU0tFRCk7CiAgICAgaWYgKG1heGx2dCA+PSA0KSB7CiAg ICAgICAgIHYgPSBhcGljX3JlYWQoQVBJQ19MVlRQQyk7Ci0gICAgICAgIGFwaWNfd3JpdGVfYXJv dW5kKEFQSUNfTFZUUEMsIHYgfCBBUElDX0xWVF9NQVNLRUQpOworICAgICAgICBhcGljX3dyaXRl KEFQSUNfTFZUUEMsIHYgfCBBUElDX0xWVF9NQVNLRUQpOwogICAgIH0KIAogLyogbGV0cyBub3Qg dG91Y2ggdGhpcyBpZiB3ZSBkaWRuJ3QgZnJvYiBpdCAqLwogI2lmZGVmIENPTkZJR19YODZfTUNF X1RIRVJNQUwKICAgICBpZiAobWF4bHZ0ID49IDUpIHsKICAgICAgICAgdiA9IGFwaWNfcmVhZChB UElDX0xWVFRITVIpOwotICAgICAgICBhcGljX3dyaXRlX2Fyb3VuZChBUElDX0xWVFRITVIsIHYg fCBBUElDX0xWVF9NQVNLRUQpOworICAgICAgICBhcGljX3dyaXRlKEFQSUNfTFZUVEhNUiwgdiB8 IEFQSUNfTFZUX01BU0tFRCk7CiAgICAgfQogI2VuZGlmCiAKICAgICBpZiAobWF4bHZ0ID49IDYp IHsKICAgICAgICAgdiA9IGFwaWNfcmVhZChBUElDX0NNQ0kpOwotICAgICAgICBhcGljX3dyaXRl X2Fyb3VuZChBUElDX0NNQ0ksIHYgfCBBUElDX0xWVF9NQVNLRUQpOworICAgICAgICBhcGljX3dy aXRlKEFQSUNfQ01DSSwgdiB8IEFQSUNfTFZUX01BU0tFRCk7CiAgICAgfQogICAgIC8qCiAgICAg ICogQ2xlYW4gQVBJQyBzdGF0ZSBmb3Igb3RoZXIgT1NzOgogICAgICAqLwotICAgIGFwaWNfd3Jp dGVfYXJvdW5kKEFQSUNfTFZUVCwgQVBJQ19MVlRfTUFTS0VEKTsKLSAgICBhcGljX3dyaXRlX2Fy b3VuZChBUElDX0xWVDAsIEFQSUNfTFZUX01BU0tFRCk7Ci0gICAgYXBpY193cml0ZV9hcm91bmQo QVBJQ19MVlQxLCBBUElDX0xWVF9NQVNLRUQpOworICAgIGFwaWNfd3JpdGUoQVBJQ19MVlRULCBB UElDX0xWVF9NQVNLRUQpOworICAgIGFwaWNfd3JpdGUoQVBJQ19MVlQwLCBBUElDX0xWVF9NQVNL RUQpOworICAgIGFwaWNfd3JpdGUoQVBJQ19MVlQxLCBBUElDX0xWVF9NQVNLRUQpOwogICAgIGlm IChtYXhsdnQgPj0gMykKLSAgICAgICAgYXBpY193cml0ZV9hcm91bmQoQVBJQ19MVlRFUlIsIEFQ SUNfTFZUX01BU0tFRCk7CisgICAgICAgIGFwaWNfd3JpdGUoQVBJQ19MVlRFUlIsIEFQSUNfTFZU X01BU0tFRCk7CiAgICAgaWYgKG1heGx2dCA+PSA0KQotICAgICAgICBhcGljX3dyaXRlX2Fyb3Vu ZChBUElDX0xWVFBDLCBBUElDX0xWVF9NQVNLRUQpOworICAgICAgICBhcGljX3dyaXRlKEFQSUNf TFZUUEMsIEFQSUNfTFZUX01BU0tFRCk7CiAKICNpZmRlZiBDT05GSUdfWDg2X01DRV9USEVSTUFM CiAgICAgaWYgKG1heGx2dCA+PSA1KQotICAgICAgICBhcGljX3dyaXRlX2Fyb3VuZChBUElDX0xW VFRITVIsIEFQSUNfTFZUX01BU0tFRCk7CisgICAgICAgIGFwaWNfd3JpdGUoQVBJQ19MVlRUSE1S LCBBUElDX0xWVF9NQVNLRUQpOwogI2VuZGlmCiAgICAgaWYgKG1heGx2dCA+PSA2KQotICAgICAg ICBhcGljX3dyaXRlX2Fyb3VuZChBUElDX0NNQ0ksIEFQSUNfTFZUX01BU0tFRCk7CisgICAgICAg IGFwaWNfd3JpdGUoQVBJQ19DTUNJLCBBUElDX0xWVF9NQVNLRUQpOwogCiAgICAgaWYgKG1heGx2 dCA+IDMpICAgICAgICAvKiBEdWUgdG8gUGVudGl1bSBlcnJhdGEgM0FQIGFuZCAxMUFQLiAqLwog ICAgICAgICBhcGljX3dyaXRlKEFQSUNfRVNSLCAwKTsKQEAgLTI1OSw3ICsyNTksNyBAQCB2b2lk IGRpc2Nvbm5lY3RfYnNwX0FQSUMoaW50IHZpcnRfd2lyZV9zZXR1cCkKICAgICAgICAgdmFsdWUg Jj0gfkFQSUNfVkVDVE9SX01BU0s7CiAgICAgICAgIHZhbHVlIHw9IEFQSUNfU1BJVl9BUElDX0VO QUJMRUQ7CiAgICAgICAgIHZhbHVlIHw9IDB4ZjsKLSAgICAgICAgYXBpY193cml0ZV9hcm91bmQo QVBJQ19TUElWLCB2YWx1ZSk7CisgICAgICAgIGFwaWNfd3JpdGUoQVBJQ19TUElWLCB2YWx1ZSk7 CiAKICAgICAgICAgaWYgKCF2aXJ0X3dpcmVfc2V0dXApIHsKICAgICAgICAgICAgIC8qIEZvciBM VlQwIG1ha2UgaXQgZWRnZSB0cmlnZ2VyZWQsIGFjdGl2ZSBoaWdoLCBleHRlcm5hbCBhbmQgZW5h YmxlZCAqLwpAQCAtMjY5LDExICsyNjksMTEgQEAgdm9pZCBkaXNjb25uZWN0X2JzcF9BUElDKGlu dCB2aXJ0X3dpcmVfc2V0dXApCiAgICAgICAgICAgICAgICAgICAgICAgIEFQSUNfTFZUX0xFVkVM X1RSSUdHRVIgfCBBUElDX0xWVF9NQVNLRUQgKTsKICAgICAgICAgICAgIHZhbHVlIHw9IEFQSUNf TFZUX1JFTU9URV9JUlIgfCBBUElDX1NFTkRfUEVORElORzsKICAgICAgICAgICAgIHZhbHVlID0g U0VUX0FQSUNfREVMSVZFUllfTU9ERSh2YWx1ZSwgQVBJQ19NT0RFX0VYVElOVCk7Ci0gICAgICAg ICAgICBhcGljX3dyaXRlX2Fyb3VuZChBUElDX0xWVDAsIHZhbHVlKTsKKyAgICAgICAgICAgIGFw aWNfd3JpdGUoQVBJQ19MVlQwLCB2YWx1ZSk7CiAgICAgICAgIH0KICAgICAgICAgZWxzZSB7CiAg ICAgICAgICAgICAvKiBEaXNhYmxlIExWVDAgKi8KLSAgICAgICAgICAgIGFwaWNfd3JpdGVfYXJv dW5kKEFQSUNfTFZUMCwgQVBJQ19MVlRfTUFTS0VEKTsKKyAgICAgICAgICAgIGFwaWNfd3JpdGUo QVBJQ19MVlQwLCBBUElDX0xWVF9NQVNLRUQpOwogICAgICAgICB9CiAKICAgICAgICAgLyogRm9y IExWVDEgbWFrZSBpdCBlZGdlIHRyaWdnZXJlZCwgYWN0aXZlIGhpZ2gsIG5taSBhbmQgZW5hYmxl ZCAqLwpAQCAtMjg0LDcgKzI4NCw3IEBAIHZvaWQgZGlzY29ubmVjdF9ic3BfQVBJQyhpbnQgdmly dF93aXJlX3NldHVwKQogICAgICAgICAgICAgQVBJQ19MVlRfTEVWRUxfVFJJR0dFUiB8IEFQSUNf TFZUX01BU0tFRCk7CiAgICAgICAgIHZhbHVlIHw9IEFQSUNfTFZUX1JFTU9URV9JUlIgfCBBUElD X1NFTkRfUEVORElORzsKICAgICAgICAgdmFsdWUgPSBTRVRfQVBJQ19ERUxJVkVSWV9NT0RFKHZh bHVlLCBBUElDX01PREVfTk1JKTsKLSAgICAgICAgYXBpY193cml0ZV9hcm91bmQoQVBJQ19MVlQx LCB2YWx1ZSk7CisgICAgICAgIGFwaWNfd3JpdGUoQVBJQ19MVlQxLCB2YWx1ZSk7CiAgICAgfQog fQogCkBAIC0yOTYsOCArMjk2LDcgQEAgdm9pZCBkaXNhYmxlX2xvY2FsX0FQSUModm9pZCkKICAg ICAgKiBEaXNhYmxlIEFQSUMgKGltcGxpZXMgY2xlYXJpbmcgb2YgcmVnaXN0ZXJzCiAgICAgICog Zm9yIDgyNDg5RFghKS4KICAgICAgKi8KLSAgICBhcGljX3dyaXRlX2Fyb3VuZChBUElDX1NQSVYs Ci0gICAgICAgIGFwaWNfcmVhZChBUElDX1NQSVYpICYgfkFQSUNfU1BJVl9BUElDX0VOQUJMRUQp OworICAgIGFwaWNfd3JpdGUoQVBJQ19TUElWLCBhcGljX3JlYWQoQVBJQ19TUElWKSAmIH5BUElD X1NQSVZfQVBJQ19FTkFCTEVEKTsKIAogICAgIGlmIChlbmFibGVkX3ZpYV9hcGljYmFzZSkgewog ICAgICAgICB1aW50NjRfdCBtc3JfY29udGVudDsKQEAgLTQyNCw4ICs0MjMsNyBAQCB2b2lkIF9f aW5pdCBzeW5jX0FyYl9JRHModm9pZCkKICAgICBhcGljX3dhaXRfaWNyX2lkbGUoKTsKIAogICAg IGFwaWNfcHJpbnRrKEFQSUNfREVCVUcsICJTeW5jaHJvbml6aW5nIEFyYiBJRHMuXG4iKTsKLSAg ICBhcGljX3dyaXRlX2Fyb3VuZChBUElDX0lDUiwgQVBJQ19ERVNUX0FMTElOQyB8IEFQSUNfSU5U X0xFVkVMVFJJRwotICAgICAgICAgICAgICAgICAgICAgIHwgQVBJQ19ETV9JTklUKTsKKyAgICBh cGljX3dyaXRlKEFQSUNfSUNSLCBBUElDX0RFU1RfQUxMSU5DIHwgQVBJQ19JTlRfTEVWRUxUUklH IHwgQVBJQ19ETV9JTklUKTsKIH0KIAogLyoKQEAgLTQ2MCwxMyArNDU4LDEzIEBAIHZvaWQgX19p bml0IGluaXRfYnNwX0FQSUModm9pZCkKICAgICBlbHNlCiAgICAgICAgIHZhbHVlIHw9IEFQSUNf U1BJVl9GT0NVU19ESVNBQkxFRDsKICAgICB2YWx1ZSB8PSBTUFVSSU9VU19BUElDX1ZFQ1RPUjsK LSAgICBhcGljX3dyaXRlX2Fyb3VuZChBUElDX1NQSVYsIHZhbHVlKTsKKyAgICBhcGljX3dyaXRl KEFQSUNfU1BJViwgdmFsdWUpOwogCiAgICAgLyoKICAgICAgKiBTZXQgdXAgdGhlIHZpcnR1YWwg d2lyZSBtb2RlLgogICAgICAqLwotICAgIGFwaWNfd3JpdGVfYXJvdW5kKEFQSUNfTFZUMCwgQVBJ Q19ETV9FWFRJTlQpOwotICAgIGFwaWNfd3JpdGVfYXJvdW5kKEFQSUNfTFZUMSwgQVBJQ19ETV9O TUkpOworICAgIGFwaWNfd3JpdGUoQVBJQ19MVlQwLCBBUElDX0RNX0VYVElOVCk7CisgICAgYXBp Y193cml0ZShBUElDX0xWVDEsIEFQSUNfRE1fTk1JKTsKIH0KIAogc3RhdGljIHZvaWQgYXBpY19w bV9hY3RpdmF0ZSh2b2lkKQpAQCAtNTUxLDcgKzU0OSw3IEBAIHZvaWQgc2V0dXBfbG9jYWxfQVBJ Qyh2b2lkKQogICAgIC8qCiAgICAgICogU2V0IFRhc2sgUHJpb3JpdHkgdG8gcmVqZWN0IGFueSBp bnRlcnJ1cHRzIGJlbG93IEZJUlNUX0RZTkFNSUNfVkVDVE9SLgogICAgICAqLwotICAgIGFwaWNf d3JpdGVfYXJvdW5kKEFQSUNfVEFTS1BSSSwgKEZJUlNUX0RZTkFNSUNfVkVDVE9SICYgMHhGMCkg LSAweDEwKTsKKyAgICBhcGljX3dyaXRlKEFQSUNfVEFTS1BSSSwgKEZJUlNUX0RZTkFNSUNfVkVD VE9SICYgMHhGMCkgLSAweDEwKTsKIAogICAgIC8qCiAgICAgICogQWZ0ZXIgYSBjcmFzaCwgd2Ug bm8gbG9uZ2VyIHNlcnZpY2UgdGhlIGludGVycnVwdHMgYW5kIGEgcGVuZGluZwpAQCAtNjIzLDcg KzYyMSw3IEBAIHZvaWQgc2V0dXBfbG9jYWxfQVBJQyh2b2lkKQogICAgICAgICAgICAgICAgICAg ICBzbXBfcHJvY2Vzc29yX2lkKCkpOwogICAgIH0KIAotICAgIGFwaWNfd3JpdGVfYXJvdW5kKEFQ SUNfU1BJViwgdmFsdWUpOworICAgIGFwaWNfd3JpdGUoQVBJQ19TUElWLCB2YWx1ZSk7CiAKICAg ICAvKgogICAgICAqIFNldCB1cCBMVlQwLCBMVlQxOgpAQCAtNjQ1LDcgKzY0Myw3IEBAIHZvaWQg c2V0dXBfbG9jYWxfQVBJQyh2b2lkKQogICAgICAgICBhcGljX3ByaW50ayhBUElDX1ZFUkJPU0Us ICJtYXNrZWQgRXh0SU5UIG9uIENQVSMlZFxuIiwKICAgICAgICAgICAgICAgICAgICAgc21wX3By b2Nlc3Nvcl9pZCgpKTsKICAgICB9Ci0gICAgYXBpY193cml0ZV9hcm91bmQoQVBJQ19MVlQwLCB2 YWx1ZSk7CisgICAgYXBpY193cml0ZShBUElDX0xWVDAsIHZhbHVlKTsKIAogICAgIC8qCiAgICAg ICogb25seSB0aGUgQlAgc2hvdWxkIHNlZSB0aGUgTElOVDEgTk1JIHNpZ25hbCwgb2J2aW91c2x5 LgpAQCAtNjU0LDcgKzY1Miw3IEBAIHZvaWQgc2V0dXBfbG9jYWxfQVBJQyh2b2lkKQogICAgICAg ICB2YWx1ZSA9IEFQSUNfRE1fTk1JOwogICAgIGVsc2UKICAgICAgICAgdmFsdWUgPSBBUElDX0RN X05NSSB8IEFQSUNfTFZUX01BU0tFRDsKLSAgICBhcGljX3dyaXRlX2Fyb3VuZChBUElDX0xWVDEs IHZhbHVlKTsKKyAgICBhcGljX3dyaXRlKEFQSUNfTFZUMSwgdmFsdWUpOwogCiAgICAgaWYgKCFl c3JfZGlzYWJsZSkgewogICAgICAgICBtYXhsdnQgPSBnZXRfbWF4bHZ0KCk7CkBAIC02NjMsNyAr NjYxLDcgQEAgdm9pZCBzZXR1cF9sb2NhbF9BUElDKHZvaWQpCiAgICAgICAgIG9sZHZhbHVlID0g YXBpY19yZWFkKEFQSUNfRVNSKTsKIAogICAgICAgICB2YWx1ZSA9IEVSUk9SX0FQSUNfVkVDVE9S OyAgICAgIC8vIGVuYWJsZXMgc2VuZGluZyBlcnJvcnMKLSAgICAgICAgYXBpY193cml0ZV9hcm91 bmQoQVBJQ19MVlRFUlIsIHZhbHVlKTsKKyAgICAgICAgYXBpY193cml0ZShBUElDX0xWVEVSUiwg dmFsdWUpOwogICAgICAgICAvKgogICAgICAgICAgKiBzcGVjIHNheXMgY2xlYXIgZXJyb3JzIGFm dGVyIGVuYWJsaW5nIHZlY3Rvci4KICAgICAgICAgICovCkBAIC0xMDc1LDEyICsxMDczLDEyIEBA IHN0YXRpYyB2b2lkIF9fc2V0dXBfQVBJQ19MVlRUKHVuc2lnbmVkIGludCBjbG9ja3MpCiAgICAg ICAgIGx2dHRfdmFsdWUgfD0gQVBJQ19USU1FUl9NT0RFX1RTQ19ERUFETElORTsKICAgICB9CiAK LSAgICBhcGljX3dyaXRlX2Fyb3VuZChBUElDX0xWVFQsIGx2dHRfdmFsdWUpOworICAgIGFwaWNf d3JpdGUoQVBJQ19MVlRULCBsdnR0X3ZhbHVlKTsKIAogICAgIHRtcF92YWx1ZSA9IGFwaWNfcmVh ZChBUElDX1REQ1IpOwotICAgIGFwaWNfd3JpdGVfYXJvdW5kKEFQSUNfVERDUiwgKHRtcF92YWx1 ZSB8IEFQSUNfVERSX0RJVl8xKSk7CisgICAgYXBpY193cml0ZShBUElDX1REQ1IsIHRtcF92YWx1 ZSB8IEFQSUNfVERSX0RJVl8xKTsKIAotICAgIGFwaWNfd3JpdGVfYXJvdW5kKEFQSUNfVE1JQ1Qs IGNsb2Nrcy9BUElDX0RJVklTT1IpOworICAgIGFwaWNfd3JpdGUoQVBJQ19UTUlDVCwgY2xvY2tz IC8gQVBJQ19ESVZJU09SKTsKIH0KIAogc3RhdGljIHZvaWQgc2V0dXBfQVBJQ190aW1lcih2b2lk KQpAQCAtMTIwNiwxMCArMTIwNCwxMCBAQCB2b2lkIGRpc2FibGVfQVBJQ190aW1lcih2b2lkKQog ICAgICAgICB1bnNpZ25lZCBsb25nIHY7CiAKICAgICAgICAgLyogV29yayBhcm91bmQgQU1EIEVy cmF0dW0gNDExLiBUaGlzIGlzIGEgbmljZSB0aGluZyB0byBkbyBhbnl3YXkuICovCi0gICAgICAg IGFwaWNfd3JpdGVfYXJvdW5kKEFQSUNfVE1JQ1QsIDApOworICAgICAgICBhcGljX3dyaXRlKEFQ SUNfVE1JQ1QsIDApOwogCiAgICAgICAgIHYgPSBhcGljX3JlYWQoQVBJQ19MVlRUKTsKLSAgICAg ICAgYXBpY193cml0ZV9hcm91bmQoQVBJQ19MVlRULCB2IHwgQVBJQ19MVlRfTUFTS0VEKTsKKyAg ICAgICAgYXBpY193cml0ZShBUElDX0xWVFQsIHYgfCBBUElDX0xWVF9NQVNLRUQpOwogICAgIH0K IH0KIApAQCAtMTIxOSw3ICsxMjE3LDcgQEAgdm9pZCBlbmFibGVfQVBJQ190aW1lcih2b2lkKQog ICAgICAgICB1bnNpZ25lZCBsb25nIHY7CiAgICAgICAgIAogICAgICAgICB2ID0gYXBpY19yZWFk KEFQSUNfTFZUVCk7Ci0gICAgICAgIGFwaWNfd3JpdGVfYXJvdW5kKEFQSUNfTFZUVCwgdiAmIH5B UElDX0xWVF9NQVNLRUQpOworICAgICAgICBhcGljX3dyaXRlKEFQSUNfTFZUVCwgdiAmIH5BUElD X0xWVF9NQVNLRUQpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2NwdS9t Y2hlY2svbWNlX2ludGVsLmMgYi94ZW4vYXJjaC94ODYvY3B1L21jaGVjay9tY2VfaW50ZWwuYwpp bmRleCBmZGY1N2NlLi40ZTk3NmM0IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvY3B1L21jaGVj ay9tY2VfaW50ZWwuYworKysgYi94ZW4vYXJjaC94ODYvY3B1L21jaGVjay9tY2VfaW50ZWwuYwpA QCAtMTU4LDcgKzE1OCw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2luaXRfdGhlcm1hbChzdHJ1Y3Qg Y3B1aW5mb194ODYgKmMpCiAgICAgLyogVGhlIHRlbXBlcmF0dXJlIHRyYW5zaXRpb24gaW50ZXJy dXB0IGhhbmRsZXIgc2V0dXAgKi8KICAgICB2YWwgPSB0aGVybWFsX2FwaWNfdmVjdG9yOyAgICAv KiBvdXIgZGVsaXZlcnkgdmVjdG9yICovCiAgICAgdmFsIHw9IChBUElDX0RNX0ZJWEVEIHwgQVBJ Q19MVlRfTUFTS0VEKTsgIC8qIHdlJ2xsIG1hc2sgdGlsbCB3ZSdyZSByZWFkeSAqLwotICAgIGFw aWNfd3JpdGVfYXJvdW5kKEFQSUNfTFZUVEhNUiwgdmFsKTsKKyAgICBhcGljX3dyaXRlKEFQSUNf TFZUVEhNUiwgdmFsKTsKIAogICAgIHJkbXNybChNU1JfSUEzMl9USEVSTV9JTlRFUlJVUFQsIG1z cl9jb250ZW50KTsKICAgICB3cm1zcmwoTVNSX0lBMzJfVEhFUk1fSU5URVJSVVBULCBtc3JfY29u dGVudCB8IDB4MDMpOwpAQCAtMTY2LDcgKzE2Niw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2luaXRf dGhlcm1hbChzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCiAgICAgcmRtc3JsKE1TUl9JQTMyX01JU0Nf RU5BQkxFLCBtc3JfY29udGVudCk7CiAgICAgd3Jtc3JsKE1TUl9JQTMyX01JU0NfRU5BQkxFLCBt c3JfY29udGVudCB8ICgxVUxMPDwzKSk7CiAKLSAgICBhcGljX3dyaXRlX2Fyb3VuZChBUElDX0xW VFRITVIsIHZhbCAmIH5BUElDX0xWVF9NQVNLRUQpOworICAgIGFwaWNfd3JpdGUoQVBJQ19MVlRU SE1SLCB2YWwgJiB+QVBJQ19MVlRfTUFTS0VEKTsKICAgICBpZiAob3B0X2NwdV9pbmZvKQogICAg ICAgICBwcmludGsoS0VSTl9JTkZPICJDUFUldTogVGhlcm1hbCBtb25pdG9yaW5nIGVuYWJsZWQg KCVzKVxuIiwKICAgICAgICAgICAgICAgICBjcHUsIHRtMiA/ICJUTTIiIDogIlRNMSIpOwpAQCAt NjczLDEwICs2NzMsMTAgQEAgc3RhdGljIHZvaWQgaW50ZWxfaW5pdF9jbWNpKHN0cnVjdCBjcHVp bmZvX3g4NiAqYykKIAogICAgIGFwaWMgPSBjbWNpX2FwaWNfdmVjdG9yOwogICAgIGFwaWMgfD0g KEFQSUNfRE1fRklYRUQgfCBBUElDX0xWVF9NQVNLRUQpOwotICAgIGFwaWNfd3JpdGVfYXJvdW5k KEFQSUNfQ01DSSwgYXBpYyk7CisgICAgYXBpY193cml0ZShBUElDX0NNQ0ksIGFwaWMpOwogCiAg ICAgbCA9IGFwaWNfcmVhZChBUElDX0NNQ0kpOwotICAgIGFwaWNfd3JpdGVfYXJvdW5kKEFQSUNf Q01DSSwgbCAmIH5BUElDX0xWVF9NQVNLRUQpOworICAgIGFwaWNfd3JpdGUoQVBJQ19DTUNJLCBs ICYgfkFQSUNfTFZUX01BU0tFRCk7CiAKICAgICBtY2Vfc2V0X293bmVyKCk7CiB9CmRpZmYgLS1n aXQgYS94ZW4vYXJjaC94ODYvY3B1L3ZwbXUuYyBiL3hlbi9hcmNoL3g4Ni9jcHUvdnBtdS5jCmlu ZGV4IDFmNzgzMGIuLjIxMzgzZDMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9jcHUvdnBtdS5j CisrKyBiL3hlbi9hcmNoL3g4Ni9jcHUvdnBtdS5jCkBAIC00NDEsMTMgKzQ0MSwxMiBAQCBpbnQg dnBtdV9sb2FkKHN0cnVjdCB2Y3B1ICp2LCBib29sX3QgZnJvbV9ndWVzdCkKICAgICB7CiAgICAg ICAgIGludCByZXQ7CiAKLSAgICAgICAgYXBpY193cml0ZV9hcm91bmQoQVBJQ19MVlRQQywgdnBt dS0+aHdfbGFwaWNfbHZ0cGMpOworICAgICAgICBhcGljX3dyaXRlKEFQSUNfTFZUUEMsIHZwbXUt Pmh3X2xhcGljX2x2dHBjKTsKICAgICAgICAgLyogQXJjaCBjb2RlIG5lZWRzIHRvIHNldCBWUE1V X0NPTlRFWFRfTE9BREVEICovCiAgICAgICAgIHJldCA9IHZwbXUtPmFyY2hfdnBtdV9vcHMtPmFy Y2hfdnBtdV9sb2FkKHYsIGZyb21fZ3Vlc3QpOwogICAgICAgICBpZiAoIHJldCApCiAgICAgICAg IHsKLSAgICAgICAgICAgIGFwaWNfd3JpdGVfYXJvdW5kKEFQSUNfTFZUUEMsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB2cG11LT5od19sYXBpY19sdnRwYyB8IEFQSUNfTFZUX01BU0tF RCk7CisgICAgICAgICAgICBhcGljX3dyaXRlKEFQSUNfTFZUUEMsIHZwbXUtPmh3X2xhcGljX2x2 dHBjIHwgQVBJQ19MVlRfTUFTS0VEKTsKICAgICAgICAgICAgIHJldHVybiByZXQ7CiAgICAgICAg IH0KICAgICB9CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvZ2VuYXBpYy9kZWxpdmVyeS5jIGIv eGVuL2FyY2gveDg2L2dlbmFwaWMvZGVsaXZlcnkuYwppbmRleCAyM2FjMzYxLi5jZWQ5MmExIDEw MDY0NAotLS0gYS94ZW4vYXJjaC94ODYvZ2VuYXBpYy9kZWxpdmVyeS5jCisrKyBiL3hlbi9hcmNo L3g4Ni9nZW5hcGljL2RlbGl2ZXJ5LmMKQEAgLTE5LDEwICsxOSwxMCBAQCB2b2lkIGluaXRfYXBp Y19sZHJfZmxhdCh2b2lkKQogewogCXVuc2lnbmVkIGxvbmcgdmFsOwogCi0JYXBpY193cml0ZV9h cm91bmQoQVBJQ19ERlIsIEFQSUNfREZSX0ZMQVQpOworCWFwaWNfd3JpdGUoQVBJQ19ERlIsIEFQ SUNfREZSX0ZMQVQpOwogCXZhbCA9IGFwaWNfcmVhZChBUElDX0xEUikgJiB+QVBJQ19MRFJfTUFT SzsKIAl2YWwgfD0gU0VUX3hBUElDX0xPR0lDQUxfSUQoMVVMIDw8IHNtcF9wcm9jZXNzb3JfaWQo KSk7Ci0JYXBpY193cml0ZV9hcm91bmQoQVBJQ19MRFIsIHZhbCk7CisJYXBpY193cml0ZShBUElD X0xEUiwgdmFsKTsKIH0KIAogdm9pZCBfX2luaXQgY2x1c3RlcmVkX2FwaWNfY2hlY2tfZmxhdCh2 b2lkKQpAQCAtNDcsMTAgKzQ3LDEwIEBAIHVuc2lnbmVkIGludCBjcHVfbWFza190b19hcGljaWRf ZmxhdChjb25zdCBjcHVtYXNrX3QgKmNwdW1hc2spCiB2b2lkIGluaXRfYXBpY19sZHJfcGh5cyh2 b2lkKQogewogCXVuc2lnbmVkIGxvbmcgdmFsOwotCWFwaWNfd3JpdGVfYXJvdW5kKEFQSUNfREZS LCBBUElDX0RGUl9GTEFUKTsKKwlhcGljX3dyaXRlKEFQSUNfREZSLCBBUElDX0RGUl9GTEFUKTsK IAkvKiBBIGR1bW15IGxvZ2ljYWwgSUQgc2hvdWxkIGJlIGZpbmUuIFdlIG9ubHkgZGVsaXZlciBp biBwaHlzIG1vZGUuICovCiAJdmFsID0gYXBpY19yZWFkKEFQSUNfTERSKSAmIH5BUElDX0xEUl9N QVNLOwotCWFwaWNfd3JpdGVfYXJvdW5kKEFQSUNfTERSLCB2YWwpOworCWFwaWNfd3JpdGUoQVBJ Q19MRFIsIHZhbCk7CiB9CiAKIHZvaWQgX19pbml0IGNsdXN0ZXJlZF9hcGljX2NoZWNrX3BoeXMo dm9pZCkKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9pb19hcGljLmMgYi94ZW4vYXJjaC94ODYv aW9fYXBpYy5jCmluZGV4IGQxODA0NjAuLmJkNTllMTMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4 Ni9pb19hcGljLmMKKysrIGIveGVuL2FyY2gveDg2L2lvX2FwaWMuYwpAQCAtMTA2Miw3ICsxMDYy LDcgQEAgc3RhdGljIHZvaWQgX19pbml0IHNldHVwX0V4dElOVF9JUlEwX3Bpbih1bnNpZ25lZCBp bnQgYXBpYywgdW5zaWduZWQgaW50IHBpbiwgaW4KICAgICBkaXNhYmxlXzgyNTlBX2lycShpcnFf dG9fZGVzYygwKSk7CiAKICAgICAvKiBtYXNrIExWVDAgKi8KLSAgICBhcGljX3dyaXRlX2Fyb3Vu ZChBUElDX0xWVDAsIEFQSUNfTFZUX01BU0tFRCB8IEFQSUNfRE1fRVhUSU5UKTsKKyAgICBhcGlj X3dyaXRlKEFQSUNfTFZUMCwgQVBJQ19MVlRfTUFTS0VEIHwgQVBJQ19ETV9FWFRJTlQpOwogCiAg ICAgLyoKICAgICAgKiBXZSB1c2UgbG9naWNhbCBkZWxpdmVyeSB0byBnZXQgdGhlIHRpbWVyIElS UQpAQCAtMTc5MCw3ICsxNzkwLDcgQEAgc3RhdGljIHZvaWQgZW5hYmxlX2xhcGljX2lycShzdHJ1 Y3QgaXJxX2Rlc2MgKmRlc2MpCiAgICAgdW5zaWduZWQgbG9uZyB2OwogCiAgICAgdiA9IGFwaWNf cmVhZChBUElDX0xWVDApOwotICAgIGFwaWNfd3JpdGVfYXJvdW5kKEFQSUNfTFZUMCwgdiAmIH5B UElDX0xWVF9NQVNLRUQpOworICAgIGFwaWNfd3JpdGUoQVBJQ19MVlQwLCB2ICYgfkFQSUNfTFZU X01BU0tFRCk7CiB9CiAKIHN0YXRpYyB2b2lkIGRpc2FibGVfbGFwaWNfaXJxKHN0cnVjdCBpcnFf ZGVzYyAqZGVzYykKQEAgLTE3OTgsNyArMTc5OCw3IEBAIHN0YXRpYyB2b2lkIGRpc2FibGVfbGFw aWNfaXJxKHN0cnVjdCBpcnFfZGVzYyAqZGVzYykKICAgICB1bnNpZ25lZCBsb25nIHY7CiAKICAg ICB2ID0gYXBpY19yZWFkKEFQSUNfTFZUMCk7Ci0gICAgYXBpY193cml0ZV9hcm91bmQoQVBJQ19M VlQwLCB2IHwgQVBJQ19MVlRfTUFTS0VEKTsKKyAgICBhcGljX3dyaXRlKEFQSUNfTFZUMCwgdiB8 IEFQSUNfTFZUX01BU0tFRCk7CiB9CiAKIHN0YXRpYyB2b2lkIGFja19sYXBpY19pcnEoc3RydWN0 IGlycV9kZXNjICpkZXNjKQpAQCAtMTkwMyw3ICsxOTAzLDcgQEAgc3RhdGljIHZvaWQgX19pbml0 IGNoZWNrX3RpbWVyKHZvaWQpCiAgICAgICogdGhlIDgyNTlBIHdoaWNoIGltcGxpZXMgdGhlIHZp cnR1YWwgd2lyZSBoYXMgdG8gYmUKICAgICAgKiBkaXNhYmxlZCBpbiB0aGUgbG9jYWwgQVBJQy4K ICAgICAgKi8KLSAgICBhcGljX3dyaXRlX2Fyb3VuZChBUElDX0xWVDAsIEFQSUNfTFZUX01BU0tF RCB8IEFQSUNfRE1fRVhUSU5UKTsKKyAgICBhcGljX3dyaXRlKEFQSUNfTFZUMCwgQVBJQ19MVlRf TUFTS0VEIHwgQVBJQ19ETV9FWFRJTlQpOwogICAgIGluaXRfODI1OUEoMSk7CiAgICAgLyogWEVO OiBSaXBwZWQgb3V0IHRoZSBsZWdhY3kgbWlzc2VkLXRpY2sgbG9naWMsIHNvIGJlbG93IGlzIG5v dCBuZWVkZWQuICovCiAgICAgLyp0aW1lcl9hY2sgPSAxOyovCkBAIC0xOTYzLDcgKzE5NjMsNyBA QCBzdGF0aWMgdm9pZCBfX2luaXQgY2hlY2tfdGltZXIodm9pZCkKIAogICAgIGRpc2FibGVfODI1 OUFfaXJxKGlycV90b19kZXNjKDApKTsKICAgICBpcnFfZGVzY1swXS5oYW5kbGVyID0gJmxhcGlj X2lycV90eXBlOwotICAgIGFwaWNfd3JpdGVfYXJvdW5kKEFQSUNfTFZUMCwgQVBJQ19ETV9GSVhF RCB8IHZlY3Rvcik7CS8qIEZpeGVkIG1vZGUgKi8KKyAgICBhcGljX3dyaXRlKEFQSUNfTFZUMCwg QVBJQ19ETV9GSVhFRCB8IHZlY3Rvcik7CS8qIEZpeGVkIG1vZGUgKi8KICAgICBlbmFibGVfODI1 OUFfaXJxKGlycV90b19kZXNjKDApKTsKIAogICAgIGlmICh0aW1lcl9pcnFfd29ya3MoKSkgewpA QCAtMTk3MSw3ICsxOTcxLDcgQEAgc3RhdGljIHZvaWQgX19pbml0IGNoZWNrX3RpbWVyKHZvaWQp CiAgICAgICAgIHByaW50aygiIHdvcmtzLlxuIik7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0g ICAgYXBpY193cml0ZV9hcm91bmQoQVBJQ19MVlQwLCBBUElDX0xWVF9NQVNLRUQgfCBBUElDX0RN X0ZJWEVEIHwgdmVjdG9yKTsKKyAgICBhcGljX3dyaXRlKEFQSUNfTFZUMCwgQVBJQ19MVlRfTUFT S0VEIHwgQVBJQ19ETV9GSVhFRCB8IHZlY3Rvcik7CiAgICAgcHJpbnRrKCIgZmFpbGVkLlxuIik7 CiAKICAgICBwcmludGsoS0VSTl9JTkZPICIuLi50cnlpbmcgdG8gc2V0IHVwIHRpbWVyIGFzIEV4 dElOVCBJUlEuLi4iKTsKQEAgLTE5NzksNyArMTk3OSw3IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBj aGVja190aW1lcih2b2lkKQogICAgIC8qdGltZXJfYWNrID0gMDsqLwogICAgIGluaXRfODI1OUEo MCk7CiAgICAgbWFrZV84MjU5QV9pcnEoMCk7Ci0gICAgYXBpY193cml0ZV9hcm91bmQoQVBJQ19M VlQwLCBBUElDX0RNX0VYVElOVCk7CisgICAgYXBpY193cml0ZShBUElDX0xWVDAsIEFQSUNfRE1f RVhUSU5UKTsKIAogICAgIHVubG9ja19FeHRJTlRfbG9naWMoKTsKIApkaWZmIC0tZ2l0IGEveGVu L2FyY2gveDg2L3NtcC5jIGIveGVuL2FyY2gveDg2L3NtcC5jCmluZGV4IDcwZGU1M2QuLmZkNmQy NTQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9zbXAuYworKysgYi94ZW4vYXJjaC94ODYvc21w LmMKQEAgLTExNSw3ICsxMTUsNyBAQCBzdGF0aWMgdm9pZCBfX2RlZmF1bHRfc2VuZF9JUElfc2hv cnRjdXQodW5zaWduZWQgaW50IHNob3J0Y3V0LCBpbnQgdmVjdG9yLAogICAgIC8qCiAgICAgICog U2VuZCB0aGUgSVBJLiBUaGUgd3JpdGUgdG8gQVBJQ19JQ1IgZmlyZXMgdGhpcyBvZmYuCiAgICAg ICovCi0gICAgYXBpY193cml0ZV9hcm91bmQoQVBJQ19JQ1IsIGNmZyk7CisgICAgYXBpY193cml0 ZShBUElDX0lDUiwgY2ZnKTsKIH0KIAogdm9pZCBzZW5kX0lQSV9zZWxmX2xlZ2FjeSh1aW50OF90 IHZlY3RvcikKQEAgLTE0NSw3ICsxNDUsNyBAQCB2b2lkIHNlbmRfSVBJX21hc2tfZmxhdChjb25z dCBjcHVtYXNrX3QgKmNwdW1hc2ssIGludCB2ZWN0b3IpCiAgICAgICogcHJlcGFyZSB0YXJnZXQg Y2hpcCBmaWVsZAogICAgICAqLwogICAgIGNmZyA9IF9fcHJlcGFyZV9JQ1IyKG1hc2spOwotICAg IGFwaWNfd3JpdGVfYXJvdW5kKEFQSUNfSUNSMiwgY2ZnKTsKKyAgICBhcGljX3dyaXRlKEFQSUNf SUNSMiwgY2ZnKTsKIAogICAgIC8qCiAgICAgICogcHJvZ3JhbSB0aGUgSUNSCkBAIC0xNTUsNyAr MTU1LDcgQEAgdm9pZCBzZW5kX0lQSV9tYXNrX2ZsYXQoY29uc3QgY3B1bWFza190ICpjcHVtYXNr LCBpbnQgdmVjdG9yKQogICAgIC8qCiAgICAgICogU2VuZCB0aGUgSVBJLiBUaGUgd3JpdGUgdG8g QVBJQ19JQ1IgZmlyZXMgdGhpcyBvZmYuCiAgICAgICovCi0gICAgYXBpY193cml0ZV9hcm91bmQo QVBJQ19JQ1IsIGNmZyk7CisgICAgYXBpY193cml0ZShBUElDX0lDUiwgY2ZnKTsKICAgICAKICAg ICBsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7CiB9CkBAIC0xODEsNyArMTgxLDcgQEAgdm9pZCBz ZW5kX0lQSV9tYXNrX3BoeXMoY29uc3QgY3B1bWFza190ICptYXNrLCBpbnQgdmVjdG9yKQogICAg ICAgICAgKiBwcmVwYXJlIHRhcmdldCBjaGlwIGZpZWxkCiAgICAgICAgICAqLwogICAgICAgICBj ZmcgPSBfX3ByZXBhcmVfSUNSMihjcHVfcGh5c2ljYWxfaWQocXVlcnlfY3B1KSk7Ci0gICAgICAg IGFwaWNfd3JpdGVfYXJvdW5kKEFQSUNfSUNSMiwgY2ZnKTsKKyAgICAgICAgYXBpY193cml0ZShB UElDX0lDUjIsIGNmZyk7CiAKICAgICAgICAgLyoKICAgICAgICAgICogcHJvZ3JhbSB0aGUgSUNS CkBAIC0xOTEsNyArMTkxLDcgQEAgdm9pZCBzZW5kX0lQSV9tYXNrX3BoeXMoY29uc3QgY3B1bWFz a190ICptYXNrLCBpbnQgdmVjdG9yKQogICAgICAgICAvKgogICAgICAgICAgKiBTZW5kIHRoZSBJ UEkuIFRoZSB3cml0ZSB0byBBUElDX0lDUiBmaXJlcyB0aGlzIG9mZi4KICAgICAgICAgICovCi0g ICAgICAgIGFwaWNfd3JpdGVfYXJvdW5kKEFQSUNfSUNSLCBjZmcpOworICAgICAgICBhcGljX3dy aXRlKEFQSUNfSUNSLCBjZmcpOwogICAgIH0KIAogICAgIGxvY2FsX2lycV9yZXN0b3JlKGZsYWdz KTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9zbXBib290LmMgYi94ZW4vYXJjaC94ODYvc21w Ym9vdC5jCmluZGV4IDkyZmU0ZjIuLmYzNzVlYjYgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9z bXBib290LmMKKysrIGIveGVuL2FyY2gveDg2L3NtcGJvb3QuYwpAQCAtMzg1LDcgKzM4NSw2IEBA IHN0YXRpYyBpbnQgd2FrZXVwX3NlY29uZGFyeV9jcHUoaW50IHBoeXNfYXBpY2lkLCB1bnNpZ25l ZCBsb25nIHN0YXJ0X2VpcCkKICAgICAvKgogICAgICAqIEJlIHBhcmFub2lkIGFib3V0IGNsZWFy aW5nIEFQSUMgZXJyb3JzLgogICAgICAqLwotICAgIGFwaWNfcmVhZF9hcm91bmQoQVBJQ19TUElW KTsKICAgICBhcGljX3dyaXRlKEFQSUNfRVNSLCAwKTsKICAgICBhcGljX3JlYWQoQVBJQ19FU1Ip OwogCkBAIC00MzksNyArNDM4LDYgQEAgc3RhdGljIGludCB3YWtldXBfc2Vjb25kYXJ5X2NwdShp bnQgcGh5c19hcGljaWQsIHVuc2lnbmVkIGxvbmcgc3RhcnRfZWlwKQogICAgIGZvciAoIGkgPSAw OyBpIDwgMjsgaSsrICkKICAgICB7CiAgICAgICAgIERwcmludGsoIlNlbmRpbmcgU1RBUlRVUCAj JWQuXG4iLCBpKzEpOwotICAgICAgICBhcGljX3JlYWRfYXJvdW5kKEFQSUNfU1BJVik7CiAgICAg ICAgIGFwaWNfd3JpdGUoQVBJQ19FU1IsIDApOwogICAgICAgICBhcGljX3JlYWQoQVBJQ19FU1Ip OwogICAgICAgICBEcHJpbnRrKCJBZnRlciBhcGljX3dyaXRlLlxuIik7CkBAIC00NzIsNyArNDcw LDYgQEAgc3RhdGljIGludCB3YWtldXBfc2Vjb25kYXJ5X2NwdShpbnQgcGh5c19hcGljaWQsIHVu c2lnbmVkIGxvbmcgc3RhcnRfZWlwKQogICAgICAgICAvKiBEdWUgdG8gdGhlIFBlbnRpdW0gZXJy YXR1bSAzQVAuICovCiAgICAgICAgIGlmICggbWF4bHZ0ID4gMyApCiAgICAgICAgIHsKLSAgICAg ICAgICAgIGFwaWNfcmVhZF9hcm91bmQoQVBJQ19TUElWKTsKICAgICAgICAgICAgIGFwaWNfd3Jp dGUoQVBJQ19FU1IsIDApOwogICAgICAgICB9CiAgICAgICAgIGFjY2VwdF9zdGF0dXMgPSAoYXBp Y19yZWFkKEFQSUNfRVNSKSAmIDB4RUYpOwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4 Ni9hcGljLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L2FwaWMuaAppbmRleCA5OTUyMDM5Li5kODQw ZWU1IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2FwaWMuaAorKysgYi94ZW4vaW5j bHVkZS9hc20teDg2L2FwaWMuaApAQCAtMTYxLDI3ICsxNjEsMTAgQEAgdm9pZCBhcGljX3dhaXRf aWNyX2lkbGUodm9pZCk7CiAKIGludCBnZXRfcGh5c2ljYWxfYnJvYWRjYXN0KHZvaWQpOwogCi0j aWZkZWYgQ09ORklHX1g4Nl9HT09EX0FQSUMKLSMgZGVmaW5lIEZPUkNFX1JFQURfQVJPVU5EX1dS SVRFIDAKLSMgZGVmaW5lIGFwaWNfcmVhZF9hcm91bmQoeCkKLSMgZGVmaW5lIGFwaWNfd3JpdGVf YXJvdW5kKHgseSkgYXBpY193cml0ZSgoeCksKHkpKQotI2Vsc2UKLSMgZGVmaW5lIEZPUkNFX1JF QURfQVJPVU5EX1dSSVRFIDEKLSMgZGVmaW5lIGFwaWNfcmVhZF9hcm91bmQoeCkgYXBpY19yZWFk KHgpCi0jIGRlZmluZSBhcGljX3dyaXRlX2Fyb3VuZCh4LHkpIGFwaWNfd3JpdGVfYXRvbWljKCh4 KSwoeSkpCi0jZW5kaWYKLQogc3RhdGljIGlubGluZSB2b2lkIGFja19BUElDX2lycSh2b2lkKQog ewotCS8qCi0JICogYWNrX0FQSUNfaXJxKCkgYWN0dWFsbHkgZ2V0cyBjb21waWxlZCBhcyBhIHNp bmdsZSBpbnN0cnVjdGlvbjoKLQkgKiAtIGEgc2luZ2xlIHJtdyBvbiBQZW50aXVtLzgyNDg5RFgK LQkgKiAtIGEgc2luZ2xlIHdyaXRlIG9uIFA2KyBjb3JlcyAoQ09ORklHX1g4Nl9HT09EX0FQSUMp Ci0JICogLi4uIHl1bW1pZS4KLQkgKi8KLQogCS8qIERvY3Mgc2F5IHVzZSAwIGZvciBmdXR1cmUg Y29tcGF0aWJpbGl0eSAqLwotCWFwaWNfd3JpdGVfYXJvdW5kKEFQSUNfRU9JLCAwKTsKKwlhcGlj X3dyaXRlKEFQSUNfRU9JLCAwKTsKIH0KIAogZXh0ZXJuIGludCBnZXRfbWF4bHZ0KHZvaWQpOwpk aWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9jb25maWcuaCBiL3hlbi9pbmNsdWRlL2Fz bS14ODYvY29uZmlnLmgKaW5kZXggYTE5OWMzYS4uYmE0ODZkNSAxMDA2NDQKLS0tIGEveGVuL2lu Y2x1ZGUvYXNtLXg4Ni9jb25maWcuaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2NvbmZpZy5o CkBAIC0xOSw3ICsxOSw2IEBACiAKICNkZWZpbmUgQ09ORklHX1BBR0lOR19BU1NJU1RBTkNFIDEK ICNkZWZpbmUgQ09ORklHX1g4Nl9MT0NBTF9BUElDIDEKLSNkZWZpbmUgQ09ORklHX1g4Nl9HT09E X0FQSUMgMQogI2RlZmluZSBDT05GSUdfWDg2X0lPX0FQSUMgMQogI2RlZmluZSBDT05GSUdfWDg2 X1BNX1RJTUVSIDEKICNkZWZpbmUgQ09ORklHX0hQRVRfVElNRVIgMQotLSAKMi4xLjQKCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFp bGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94 ZW4tZGV2ZWwK