From: Olaf Hering Subject: [PATCH v2] new config option vtsc_khz_tolerance to avoid TSC emulation Date: Mon, 5 Mar 2018 12:35:54 +0100 Message-ID: <20180305113555.8467-1-olaf@aepfle.de> 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.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: Olaf Hering , Stefano Stabellini , Wei Liu , George Dunlap , Andrew Cooper , Ian Jackson , =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= , Tim Deegan , Jan Beulich , Daniel De Graaf List-Id: xen-devel@lists.xenproject.org QWRkIGFuIG9wdGlvbiB0byBjb250cm9sIHdoZW4gdlRTQyBlbXVsYXRpb24gd2lsbCBiZSBhY3Rp dmF0ZWQgZm9yIGEKZG9tVSB3aXRoIHRzY19tb2RlPWRlZmF1bHQuIFdpdGhvdXQgc3VjaCBvcHRp b24gZWFjaCBUU0MgYWNjZXNzIGZyb20KZG9tVSB3aWxsIGJlIGVtdWxhdGVkLCB3aGljaCBjYXVz ZXMgYSBzaWduaWZpY2FudCBwZXJmb21hbmNlIGRyb3AgZm9yCndvcmtsb2FkcyB0aGF0IG1ha2Ug dXNlIG9mIHJkdHNjLgoKQWRkIGEgbmV3IGRvbWN0bCBYRU5fRE9NQ1RMX3NldF92dHNjX2toel90 b2xlcmFuY2UgdG8gYWRqdXN0IHRoZQp0b2xlcmFuY2UgdmFsdWUgb2YgYSBydW5uaW5nIGRvbVUg dGhhdCBpcyBzdXBwb3NlZCB0byBiZSBtaWdyYXRlZC4KCk9uZSBvcHRpb24gdG8gYXZvaWQgdGhl IFRTQyBvcHRpb24gaXMgdG8gcnVuIGRvbVVzIHdpdGggdHNjX21vZGU9bmF0aXZlLgpUaGlzIGhh cyB0aGUgZHJhd2JhY2sgdGhhdCBtaWdyYXRpbmcgYSBkb21VIGZyb20gYSAiMi4zR0h6IiBjbGFz cyBob3N0CnRvIGEgIjIuNEdIeiIgY2xhc3MgaG9zdCBtYXkgY2hhbmdlIHRoZSByYXRlIGF0IHdp Y2ggdGhlIFRTQyBjb3VudGVyCmluY3JlYXNlcywgdGhlIGRvbVUgbWF5IG5vdCBiZSBwcmVwYXJl ZCBmb3IgdGhhdC4KCldpdGggdGhpcyBvcHRpb24gdGhlIGhvc3QgYWRtaW4gY2FuIGRlY2lkZSBo b3cgYSBkb21VIHNob3VsZCBiZWhhdmUgd2hlbgppdCBpcyBtaWdyYXRlZCBhY3Jvc3Mgc3lzdGVt cyBvZiB0aGUgc2FtZSBjbGFzcy4gU2luY2UgdGhlcmUgaXMgYWx3YXlzCnNvbWUgaml0dGVyIHdo ZW4gWGVuIGNhbGlicmF0ZXMgdGhlIGNwdV9raHogdmFsdWUsIGFsbCBob3N0cyBvZiB0aGUgc2Ft ZQpjbGFzcyB3aWxsIG1vc3QgbGlrZWx5IGhhdmUgc2xpZ2h0bHkgZGlmZmVyZW50IHZhbHVlcy4g QXMgYSByZXN1bHQgdlRTQwplbXVsYXRpb24gaXMgdW5hdm9pZGFibGUuCgpUaGUgbmV3IG9wdGlv biBhbGxvd3Mgaml0dGVyIHVwIHRvIDY1NTM1IEtIeiwgd2hpY2ggaXMgbW9yZSB0aGFuIGVub3Vn aApmb3IgdGhlIGludGVuZGVkIHVzZS4gRGF0YSBjb2xsZWN0ZWQgZHVyaW5nIHRoZSBpbmNpZGVu dCB3aGljaCB0cmlnZ2VyZWQKdGhpcyBjaGFuZ2Ugc2hvd2VkIGEgaml0dGVyIG9mIHVwIHRvIDIw MCBLSHogYWNyb3NzIHN5c3RlbXMgb2YgdGhlIHNhbWUKY2xhc3MuCgpBIG5ldyB1dGlsaXR5IGlz IGFkZGVkIHdoaWNoIGFsbG93cyB0byBhZGp1c3QgdGhlIHZ0c2Nfa2h6X3RvbGVyYW5jZQp2YWx1 ZSBmb3IgcnVubmluZyBkb21Vcy4gVGhpcyBpcyB1c2VmdWwgdG8gYXZvaWQgZW11bGF0aW9uIGZv ciBkb21Vcwp0aGF0IGFyZSBhbHJlYWR5IHJ1bm5pbmcgYW5kIHdoaWNoIGNhbiBub3QgYmUgcmVz dGFydGVkLgoKRXhpc3RpbmcgcGFkZGluZyBmaWVsZHMgYXJlIHJldXNlZCB0byBzdG9yZSB2dHNj X2toel90b2xlcmFuY2UgYXMgdTE2LgoKSW4gY2FzZSB0aGUgbWlncmF0aW9uIHN0cmVhbSBzaG91 bGQgZ2V0IGEgbmV3IHJlY29yZCB0eXBlLCB0aGUgb3JkZXJpbmcKb2YgcmVjb3JkcyBzZW50IGR1 cmluZyBtaWdyYXRpb24gYmVjb21lcyBpbXBvcnRhbnQuIFRoZSB2YWx1ZSBvZgp2dHNjX2toel90 b2xlcmFuY2UgbXVzdCBiZSBrbm93biBieSB0aGUgcmVjZWl2aW5nIGhvc3QgYmVmb3JlCmNvbmZp Z3VyaW5nIFRTQywgYmVjYXVzZSB0aGlzIGlzIHRoZSBwbGFjZSB3aGVyZSB0aGUgZGVjaXNpb24g b2YgdlRTQwplbXVsYXRpb24gaXMgbWFkZS4KClNpZ25lZC1vZmYtYnk6IE9sYWYgSGVyaW5nIDxv bGFmQGFlcGZsZS5kZT4KLS0tCgpGb2xsb3d1cCB0byBlYXJsaWVyIGF0dGVtcHQgd2l0aCBnbG9i YWwga25vYjoKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9hcmNoaXZlcy9odG1sL3hlbi1k ZXZlbC8yMDE3LTA0L21zZzAxNTg5Lmh0bWwKCiAuZ2l0aWdub3JlICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgIDEgKwogZG9jcy9tYW4veGwuY2ZnLnBvZC41LmluICAgICAgICAgICAg ICAgICB8IDEwICsrKysKIGRvY3Mvc3BlY3MvbGlieGMtbWlncmF0aW9uLXN0cmVhbS5wYW5kb2Mg fCAgNiArKy0KIHRvb2xzL2xpYnhjL2luY2x1ZGUveGVuY3RybC5oICAgICAgICAgICAgfCAgNiAr KysKIHRvb2xzL2xpYnhjL3hjX2RvbWFpbi5jICAgICAgICAgICAgICAgICAgfCAxNSArKysrKysK IHRvb2xzL2xpYnhjL3hjX3NyX2NvbW1vbl94ODYuYyAgICAgICAgICAgfCAgNiArKy0KIHRvb2xz L2xpYnhjL3hjX3NyX3N0cmVhbV9mb3JtYXQuaCAgICAgICAgfCAgMyArLQogdG9vbHMvbGlieGwv bGlieGxfdHlwZXMuaWRsICAgICAgICAgICAgICB8ICAxICsKIHRvb2xzL2xpYnhsL2xpYnhsX3g4 Ni5jICAgICAgICAgICAgICAgICAgfCAgMyArLQogdG9vbHMvbWlzYy9NYWtlZmlsZSAgICAgICAg ICAgICAgICAgICAgICB8ICA0ICsrCiB0b29scy9taXNjL3hlbi12dHNjLmMgICAgICAgICAgICAg ICAgICAgIHwgOTIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHRvb2xzL3B5dGhv bi94ZW4vbG93bGV2ZWwveGMveGMuYyAgICAgICAgfCAgMiArLQogdG9vbHMveGwveGxfcGFyc2Uu YyAgICAgICAgICAgICAgICAgICAgICB8ICAzICsrCiB4ZW4vYXJjaC94ODYvZG9tYWluLmMgICAg ICAgICAgICAgICAgICAgIHwgIDIgKy0KIHhlbi9hcmNoL3g4Ni9kb21jdGwuYyAgICAgICAgICAg ICAgICAgICAgfCAxMSArKysrCiB4ZW4vYXJjaC94ODYvdGltZS5jICAgICAgICAgICAgICAgICAg ICAgIHwgMjkgKysrKysrKystLQogeGVuL2luY2x1ZGUvYXNtLXg4Ni9kb21haW4uaCAgICAgICAg ICAgICB8ICAxICsKIHhlbi9pbmNsdWRlL2FzbS14ODYvdGltZS5oICAgICAgICAgICAgICAgfCAg NCArLQogeGVuL2luY2x1ZGUvcHVibGljL2RvbWN0bC5oICAgICAgICAgICAgICB8ICA1ICstCiB4 ZW4veHNtL2ZsYXNrL2hvb2tzLmMgICAgICAgICAgICAgICAgICAgIHwgIDEgKwogMjAgZmlsZXMg Y2hhbmdlZCwgMTkxIGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUg MTAwNjQ0IHRvb2xzL21pc2MveGVuLXZ0c2MuYwoKZGlmZiAtLWdpdCBhLy5naXRpZ25vcmUgYi8u Z2l0aWdub3JlCmluZGV4IGM1NjZlM2NiNjQuLmRhMmE1NGViOTAgMTAwNjQ0Ci0tLSBhLy5naXRp Z25vcmUKKysrIGIvLmdpdGlnbm9yZQpAQCAtMjIxLDYgKzIyMSw3IEBAIHRvb2xzL21pc2MveGVu LWRldGVjdAogdG9vbHMvbWlzYy94ZW4tZGlhZwogdG9vbHMvbWlzYy94ZW4tdG1lbS1saXN0LXBh cnNlCiB0b29scy9taXNjL3hlbi1saXZlcGF0Y2gKK3Rvb2xzL21pc2MveGVuLXZ0c2MKIHRvb2xz L21pc2MveGVucGVyZgogdG9vbHMvbWlzYy94ZW5wbQogdG9vbHMvbWlzYy94ZW4taHZtY3R4CmRp ZmYgLS1naXQgYS9kb2NzL21hbi94bC5jZmcucG9kLjUuaW4gYi9kb2NzL21hbi94bC5jZmcucG9k LjUuaW4KaW5kZXggYTY5OTM2Nzc3OS4uMGQ2NzUyNTE5MiAxMDA2NDQKLS0tIGEvZG9jcy9tYW4v eGwuY2ZnLnBvZC41LmluCisrKyBiL2RvY3MvbWFuL3hsLmNmZy5wb2QuNS5pbgpAQCAtMTg5MSw2 ICsxODkxLDE2IEBAIGRldGVybWluZWQgaW4gYSBzaW1pbGFyIHdheSB0byB0aGF0IG9mIEI8ZGVm YXVsdD4gVFNDIG1vZGUuCiAKIFBsZWFzZSBzZWUgQjx4ZW4tdHNjbW9kZSg3KT4gZm9yIG1vcmUg aW5mb3JtYXRpb24gb24gdGhpcyBvcHRpb24uCiAKKz1pdGVtIEI8dnRzY19raHpfdG9sZXJhbmNl PSJLSFoiPgorCitCPCh4ODYgb25seSwgcmVsZXZhbnQgb25seSBmb3IgdHNjX21vZGU9ZGVmYXVs dCk+CitXaGVuIGEgZG9tVSBpcyBzdGFydGVkLCB0aGUgQ1BVIGZyZXF1ZW5jeSBvZiB0aGUgaG9z dCBpcyB1c2VkIGJ5IHRoZSBkb21VIGZvcgorVFNDIHJlbGF0ZWQgdGltZSBtZWFzdXJlbWVudC4g T25jZSB0aGUgZG9tVSBpcyBlaXRoZXIgbWlncmF0ZWQgb3IKK3NhdmVkL3Jlc3RvcmVkIG9uIGFu b3RoZXIgaG9zdCB0aGF0IENQVSBmcmVxdWVuY3kgaGFzIHRvIGJlIGVtdWxhdGVkIHRvIGF2b2lk Cit0aW1lZHJpZnQuIFRvIGF2b2lkIHRoZSBwZXJmb3JtYW5jZSBwZW5hbHR5IG9mIHRoZSBUU0Mg ZW11bGF0aW9uLCBhbGxvdyBhCitjZXJ0YWluIGFtb3VudCBvZiBqaXR0ZXIgb2YgdGhlIG1lYXN1 cmVkIENQVSBmcmVxdWVuY3kgb24gdGhlIGhvc3RzIHRoZSBkb21VCitpcyBzdXBwb3NlZCB0byBy dW4gb24uCisKID1pdGVtIEI8bG9jYWx0aW1lPUJPT0xFQU4+CiAKIFNldCB0aGUgcmVhbCB0aW1l IGNsb2NrIHRvIGxvY2FsIHRpbWUgb3IgdG8gVVRDLiBGYWxzZSAoMCkgYnkgZGVmYXVsdCwKZGlm ZiAtLWdpdCBhL2RvY3Mvc3BlY3MvbGlieGMtbWlncmF0aW9uLXN0cmVhbS5wYW5kb2MgYi9kb2Nz L3NwZWNzL2xpYnhjLW1pZ3JhdGlvbi1zdHJlYW0ucGFuZG9jCmluZGV4IDczNDIxZmYzOTMuLmU2 OWI4OGU1MjYgMTAwNjQ0Ci0tLSBhL2RvY3Mvc3BlY3MvbGlieGMtbWlncmF0aW9uLXN0cmVhbS5w YW5kb2MKKysrIGIvZG9jcy9zcGVjcy9saWJ4Yy1taWdyYXRpb24tc3RyZWFtLnBhbmRvYwpAQCAt Myw3ICszLDcgQEAKICAgQW5kcmV3IENvb3BlciA8PGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+ PgogICBXZW4gQ29uZ3lhbmcgPDx3ZW5jeUBjbi5mdWppdHN1LmNvbT4+CiAgIFlhbmcgSG9uZ3lh bmcgPDxob25neWFuZy55YW5nQGVhc3lzdGFjay5jbj4+Ci0lIFJldmlzaW9uIDIKKyUgUmV2aXNp b24gMwogCiBJbnRyb2R1Y3Rpb24KID09PT09PT09PT09PQpAQCAtNDcyLDcgKzQ3Miw3IEBAIFhF TlxfRE9NQ1RMXF97Z2V0LHNldH10c2NpbmZvIGh5cGVyY2FsbCBzdWItb3BzLgogICAgICstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwogICAgIHwgbnNl YyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAogICAgICstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotICAgIHwgaW5j YXJuYXRpb24gICAgICAgICAgICB8IChyZXNlcnZlZCkgICAgICAgICAgICAgfAorICAgIHwgaW5j YXJuYXRpb24gICAgICAgICAgICB8IHRvbGVyYW5jZSB8IChyZXNlcnZlZCkgfAogICAgICstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwogCiAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpAQCAtNDg1LDYgKzQ4NSw4IEBAIGtoeiAgICAgICAgICAgICAgVFNDIGZyZXF1ZW5jeSwg aW4ga0h6LgogbnNlYyAgICAgICAgICAgICBFbGFwc2VkIHRpbWUsIGluIG5hbm9zZWNvbmRzLgog CiBpbmNhcm5hdGlvbiAgICAgIEluY2FybmF0aW9uLgorCit2dHNjX3RvbGVyYW5jZSAgIEFtb3Vu dCBvZiBKaXR0ZXIgdGhlIGRvbVUgY2FuIGhhbmRsZSBhZnRlciBtaWdyYXRpb24uCiAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQogCiBcY2xlYXJwYWdlCmRpZmYgLS1naXQgYS90b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0 cmwuaCBiL3Rvb2xzL2xpYnhjL2luY2x1ZGUveGVuY3RybC5oCmluZGV4IDU0M2FiZmNiMzQuLjcx NTlhODM2ZWQgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhjL2luY2x1ZGUveGVuY3RybC5oCisrKyBi L3Rvb2xzL2xpYnhjL2luY2x1ZGUveGVuY3RybC5oCkBAIC0xMzU1LDExICsxMzU1LDE2IEBAIGlu dCB4Y19kb21haW5fc2V0X3RpbWVfb2Zmc2V0KHhjX2ludGVyZmFjZSAqeGNoLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgZG9taWQsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpbnQzMl90IHRpbWVfb2Zmc2V0X3NlY29uZHMpOwogCitpbnQgeGNfZG9tYWlu X3NldF92dHNjX2toel90b2xlcmFuY2UoeGNfaW50ZXJmYWNlICp4Y2gsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgZG9taWQsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdWludDE2X3QgdnRzY19raHpfdG9sZXJhbmNlKTsKKwogaW50 IHhjX2RvbWFpbl9zZXRfdHNjX2luZm8oeGNfaW50ZXJmYWNlICp4Y2gsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB1aW50MzJfdCBkb21pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg IHVpbnQzMl90IHRzY19tb2RlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3Qg ZWxhcHNlZF9uc2VjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgZ3RzY19r aHosCisgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MTZfdCB2dHNjX2toel90b2xlcmFu Y2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBpbmNhcm5hdGlvbik7CiAK IGludCB4Y19kb21haW5fZ2V0X3RzY19pbmZvKHhjX2ludGVyZmFjZSAqeGNoLApAQCAtMTM2Nyw2 ICsxMzcyLDcgQEAgaW50IHhjX2RvbWFpbl9nZXRfdHNjX2luZm8oeGNfaW50ZXJmYWNlICp4Y2gs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAqdHNjX21vZGUsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCAqZWxhcHNlZF9uc2VjLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgdWludDMyX3QgKmd0c2Nfa2h6LAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgdWludDE2X3QgKnZ0c2Nfa2h6X3RvbGVyYW5jZSwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHVpbnQzMl90ICppbmNhcm5hdGlvbik7CiAKIGludCB4Y19kb21haW5fZGlzYWJsZV9t aWdyYXRlKHhjX2ludGVyZmFjZSAqeGNoLCB1aW50MzJfdCBkb21pZCk7CmRpZmYgLS1naXQgYS90 b29scy9saWJ4Yy94Y19kb21haW4uYyBiL3Rvb2xzL2xpYnhjL3hjX2RvbWFpbi5jCmluZGV4IGVh M2RmMWVmMzEuLjVjZTc4YzRmZTAgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhjL3hjX2RvbWFpbi5j CisrKyBiL3Rvb2xzL2xpYnhjL3hjX2RvbWFpbi5jCkBAIC04NDcsMTEgKzg0NywyMyBAQCBpbnQg eGNfZG9tYWluX2Rpc2FibGVfbWlncmF0ZSh4Y19pbnRlcmZhY2UgKnhjaCwgdWludDMyX3QgZG9t aWQpCiAgICAgcmV0dXJuIGRvX2RvbWN0bCh4Y2gsICZkb21jdGwpOwogfQogCitpbnQgeGNfZG9t YWluX3NldF92dHNjX2toel90b2xlcmFuY2UoeGNfaW50ZXJmYWNlICp4Y2gsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgZG9taWQsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdWludDE2X3QgdnRzY19raHpfdG9sZXJhbmNlKQorewor ICAgIERFQ0xBUkVfRE9NQ1RMOworICAgIGRvbWN0bC5jbWQgPSBYRU5fRE9NQ1RMX3NldF92dHNj X2toel90b2xlcmFuY2U7CisgICAgZG9tY3RsLmRvbWFpbiA9IGRvbWlkOworICAgIGRvbWN0bC51 LnRzY19pbmZvLnZ0c2Nfa2h6X3RvbGVyYW5jZSA9IHZ0c2Nfa2h6X3RvbGVyYW5jZTsKKyAgICBy ZXR1cm4gZG9fZG9tY3RsKHhjaCwgJmRvbWN0bCk7Cit9CisKIGludCB4Y19kb21haW5fc2V0X3Rz Y19pbmZvKHhjX2ludGVyZmFjZSAqeGNoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdWlu dDMyX3QgZG9taWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCB0c2NfbW9k ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IGVsYXBzZWRfbnNlYywKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGd0c2Nfa2h6LAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgdWludDE2X3QgdnRzY19raHpfdG9sZXJhbmNlLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgdWludDMyX3QgaW5jYXJuYXRpb24pCiB7CiAgICAgREVDTEFSRV9ET01D VEw7CkBAIC04NjAsNiArODcyLDcgQEAgaW50IHhjX2RvbWFpbl9zZXRfdHNjX2luZm8oeGNfaW50 ZXJmYWNlICp4Y2gsCiAgICAgZG9tY3RsLnUudHNjX2luZm8udHNjX21vZGUgPSB0c2NfbW9kZTsK ICAgICBkb21jdGwudS50c2NfaW5mby5lbGFwc2VkX25zZWMgPSBlbGFwc2VkX25zZWM7CiAgICAg ZG9tY3RsLnUudHNjX2luZm8uZ3RzY19raHogPSBndHNjX2toejsKKyAgICBkb21jdGwudS50c2Nf aW5mby52dHNjX2toel90b2xlcmFuY2UgPSB2dHNjX2toel90b2xlcmFuY2U7CiAgICAgZG9tY3Rs LnUudHNjX2luZm8uaW5jYXJuYXRpb24gPSBpbmNhcm5hdGlvbjsKICAgICByZXR1cm4gZG9fZG9t Y3RsKHhjaCwgJmRvbWN0bCk7CiB9CkBAIC04NjksNiArODgyLDcgQEAgaW50IHhjX2RvbWFpbl9n ZXRfdHNjX2luZm8oeGNfaW50ZXJmYWNlICp4Y2gsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB1aW50MzJfdCAqdHNjX21vZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRf dCAqZWxhcHNlZF9uc2VjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgKmd0 c2Nfa2h6LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDE2X3QgKnZ0c2Nfa2h6X3Rv bGVyYW5jZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90ICppbmNhcm5hdGlv bikKIHsKICAgICBpbnQgcmM7CkBAIC04ODIsNiArODk2LDcgQEAgaW50IHhjX2RvbWFpbl9nZXRf dHNjX2luZm8oeGNfaW50ZXJmYWNlICp4Y2gsCiAgICAgICAgICp0c2NfbW9kZSA9IGRvbWN0bC51 LnRzY19pbmZvLnRzY19tb2RlOwogICAgICAgICAqZWxhcHNlZF9uc2VjID0gZG9tY3RsLnUudHNj X2luZm8uZWxhcHNlZF9uc2VjOwogICAgICAgICAqZ3RzY19raHogPSBkb21jdGwudS50c2NfaW5m by5ndHNjX2toejsKKyAgICAgICAgKnZ0c2Nfa2h6X3RvbGVyYW5jZSA9IGRvbWN0bC51LnRzY19p bmZvLnZ0c2Nfa2h6X3RvbGVyYW5jZTsKICAgICAgICAgKmluY2FybmF0aW9uID0gZG9tY3RsLnUu dHNjX2luZm8uaW5jYXJuYXRpb247CiAgICAgfQogICAgIHJldHVybiByYzsKZGlmZiAtLWdpdCBh L3Rvb2xzL2xpYnhjL3hjX3NyX2NvbW1vbl94ODYuYyBiL3Rvb2xzL2xpYnhjL3hjX3NyX2NvbW1v bl94ODYuYwppbmRleCA5OGYxY2VmMzBmLi5lYTNlNTUxYTgzIDEwMDY0NAotLS0gYS90b29scy9s aWJ4Yy94Y19zcl9jb21tb25feDg2LmMKKysrIGIvdG9vbHMvbGlieGMveGNfc3JfY29tbW9uX3g4 Ni5jCkBAIC0xMiw3ICsxMiw4IEBAIGludCB3cml0ZV90c2NfaW5mbyhzdHJ1Y3QgeGNfc3JfY29u dGV4dCAqY3R4KQogICAgIH07CiAKICAgICBpZiAoIHhjX2RvbWFpbl9nZXRfdHNjX2luZm8oeGNo LCBjdHgtPmRvbWlkLCAmdHNjLm1vZGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICZ0c2MubnNlYywgJnRzYy5raHosICZ0c2MuaW5jYXJuYXRpb24pIDwgMCApCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICZ0c2MubnNlYywgJnRzYy5raHosICZ0c2MudnRzY190b2xl cmFuY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ0c2MuaW5jYXJuYXRpb24p IDwgMCApCiAgICAgewogICAgICAgICBQRVJST1IoIlVuYWJsZSB0byBvYnRhaW4gVFNDIGluZm9y bWF0aW9uIik7CiAgICAgICAgIHJldHVybiAtMTsKQEAgLTM0LDcgKzM1LDggQEAgaW50IGhhbmRs ZV90c2NfaW5mbyhzdHJ1Y3QgeGNfc3JfY29udGV4dCAqY3R4LCBzdHJ1Y3QgeGNfc3JfcmVjb3Jk ICpyZWMpCiAgICAgfQogCiAgICAgaWYgKCB4Y19kb21haW5fc2V0X3RzY19pbmZvKHhjaCwgY3R4 LT5kb21pZCwgdHNjLT5tb2RlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0c2Mt Pm5zZWMsIHRzYy0+a2h6LCB0c2MtPmluY2FybmF0aW9uKSApCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHRzYy0+bnNlYywgdHNjLT5raHosIHRzYy0+dnRzY190b2xlcmFuY2UsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRzYy0+aW5jYXJuYXRpb24pICkKICAgICB7 CiAgICAgICAgIFBFUlJPUigiVW5hYmxlIHRvIHNldCBUU0MgaW5mb3JtYXRpb24iKTsKICAgICAg ICAgcmV0dXJuIC0xOwpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGMveGNfc3Jfc3RyZWFtX2Zvcm1h dC5oIGIvdG9vbHMvbGlieGMveGNfc3Jfc3RyZWFtX2Zvcm1hdC5oCmluZGV4IDE1ZmYxYzdlZmIu LjliNTJmNmFjZTYgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhjL3hjX3NyX3N0cmVhbV9mb3JtYXQu aAorKysgYi90b29scy9saWJ4Yy94Y19zcl9zdHJlYW1fZm9ybWF0LmgKQEAgLTEyMSw3ICsxMjEs OCBAQCBzdHJ1Y3QgeGNfc3JfcmVjX3RzY19pbmZvCiAgICAgdWludDMyX3Qga2h6OwogICAgIHVp bnQ2NF90IG5zZWM7CiAgICAgdWludDMyX3QgaW5jYXJuYXRpb247Ci0gICAgdWludDMyX3QgX3Jl czE7CisgICAgdWludDE2X3QgdnRzY190b2xlcmFuY2U7CisgICAgdWludDE2X3QgX3JlczE7CiB9 OwogCiAvKiBIVk1fUEFSQU1TICovCmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF90eXBl cy5pZGwgYi90b29scy9saWJ4bC9saWJ4bF90eXBlcy5pZGwKaW5kZXggMzUwMzgxMjBjYS4uY2Nl NGYzZWZmMSAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfdHlwZXMuaWRsCisrKyBiL3Rv b2xzL2xpYnhsL2xpYnhsX3R5cGVzLmlkbApAQCAtNDY2LDYgKzQ2Niw3IEBAIGxpYnhsX2RvbWFp bl9idWlsZF9pbmZvID0gU3RydWN0KCJkb21haW5fYnVpbGRfaW5mbyIsWwogICAgICgidmNwdV9z b2Z0X2FmZmluaXR5IiwgQXJyYXkobGlieGxfYml0bWFwLCAibnVtX3ZjcHVfc29mdF9hZmZpbml0 eSIpKSwKICAgICAoIm51bWFfcGxhY2VtZW50IiwgIGxpYnhsX2RlZmJvb2wpLAogICAgICgidHNj X21vZGUiLCAgICAgICAgbGlieGxfdHNjX21vZGUpLAorICAgICgidnRzY19raHpfdG9sZXJhbmNl IiwgdWludDMyKSwKICAgICAoIm1heF9tZW1rYiIsICAgICAgIE1lbUtCKSwKICAgICAoInRhcmdl dF9tZW1rYiIsICAgIE1lbUtCKSwKICAgICAoInZpZGVvX21lbWtiIiwgICAgIE1lbUtCKSwKZGlm ZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX3g4Ni5jIGIvdG9vbHMvbGlieGwvbGlieGxfeDg2 LmMKaW5kZXggZDgyMDEzZjZlZC4uMTExNGFjMDg2NSAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwv bGlieGxfeDg2LmMKKysrIGIvdG9vbHMvbGlieGwvbGlieGxfeDg2LmMKQEAgLTMxNyw3ICszMTcs OCBAQCBpbnQgbGlieGxfX2FyY2hfZG9tYWluX2NyZWF0ZShsaWJ4bF9fZ2MgKmdjLCBsaWJ4bF9k b21haW5fY29uZmlnICpkX2NvbmZpZywKICAgICBkZWZhdWx0OgogICAgICAgICBhYm9ydCgpOwog ICAgIH0KLSAgICB4Y19kb21haW5fc2V0X3RzY19pbmZvKGN0eC0+eGNoLCBkb21pZCwgdHNjX21v ZGUsIDAsIDAsIDApOworICAgIHhjX2RvbWFpbl9zZXRfdHNjX2luZm8oY3R4LT54Y2gsIGRvbWlk LCB0c2NfbW9kZSwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGRfY29uZmlnLT5i X2luZm8udnRzY19raHpfdG9sZXJhbmNlLCAwKTsKICAgICBpZiAobGlieGxfZGVmYm9vbF92YWwo ZF9jb25maWctPmJfaW5mby5kaXNhYmxlX21pZ3JhdGUpKQogICAgICAgICB4Y19kb21haW5fZGlz YWJsZV9taWdyYXRlKGN0eC0+eGNoLCBkb21pZCk7CiAgICAgcnRjX3RpbWVvZmZzZXQgPSBkX2Nv bmZpZy0+Yl9pbmZvLnJ0Y190aW1lb2Zmc2V0OwpkaWZmIC0tZ2l0IGEvdG9vbHMvbWlzYy9NYWtl ZmlsZSBiL3Rvb2xzL21pc2MvTWFrZWZpbGUKaW5kZXggZWFhMjg3OTNlZi4uMmIwODZlNTc1OCAx MDA2NDQKLS0tIGEvdG9vbHMvbWlzYy9NYWtlZmlsZQorKysgYi90b29scy9taXNjL01ha2VmaWxl CkBAIC0zNiw2ICszNiw3IEBAIElOU1RBTExfU0JJTiArPSAkKElOU1RBTExfU0JJTi15KQogCiAj IEV2ZXJ5dGhpbmcgdG8gYmUgaW5zdGFsbGVkIGluIGEgcHJpdmF0ZSBiaW4vCiBJTlNUQUxMX1BS SVZCSU4gICAgICAgICAgICAgICAgKz0geGVucHZuZXRib290CitJTlNUQUxMX1BSSVZCSU4gICAg ICAgICAgICAgICAgKz0geGVuLXZ0c2MKIAogIyBFdmVyeXRoaW5nIHRvIGJlIGluc3RhbGxlZAog VEFSR0VUU19BTEwgOj0gJChJTlNUQUxMX0JJTikgJChJTlNUQUxMX1NCSU4pICQoSU5TVEFMTF9Q UklWQklOKQpAQCAtMTEyLDYgKzExMyw5IEBAIHhlbi1saXZlcGF0Y2g6IHhlbi1saXZlcGF0Y2gu bwogeGVuLWRpYWc6IHhlbi1kaWFnLm8KIAkkKENDKSAkKExERkxBR1MpIC1vICRAICQ8ICQoTERM SUJTX2xpYnhlbmN0cmwpICQoQVBQRU5EX0xERkxBR1MpCiAKK3hlbi12dHNjOiB4ZW4tdnRzYy5v CisJJChDQykgJChMREZMQUdTKSAtbyAkQCAkPCAkKExETElCU19saWJ4ZW5jdHJsKSAkKEFQUEVO RF9MREZMQUdTKQorCiB4ZW4tbG93bWVtZDogeGVuLWxvd21lbWQubwogCSQoQ0MpICQoTERGTEFH UykgLW8gJEAgJDwgJChMRExJQlNfbGlieGVuZXZ0Y2huKSAkKExETElCU19saWJ4ZW5jdHJsKSAk KExETElCU19saWJ4ZW5zdG9yZSkgJChBUFBFTkRfTERGTEFHUykKIApkaWZmIC0tZ2l0IGEvdG9v bHMvbWlzYy94ZW4tdnRzYy5jIGIvdG9vbHMvbWlzYy94ZW4tdnRzYy5jCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjA3NjQ5YzYzOTcKLS0tIC9kZXYvbnVsbAorKysgYi90 b29scy9taXNjL3hlbi12dHNjLmMKQEAgLTAsMCArMSw5MiBAQAorLyogQ291bGQgYmUgbWVyZ2Vk IGludG8geGVuLWRpYWcuYz8gKi8KKworI2luY2x1ZGUgPGludHR5cGVzLmg+CisjaW5jbHVkZSA8 bGltaXRzLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNs dWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDx4ZW5jdHJsLmg+CisKK3N0YXRpYyB1aW50MzJfdCBk b21pZDsKK3N0YXRpYyB1aW50MzJfdCB0c2NfbW9kZTsKK3N0YXRpYyB1aW50NjRfdCBlbGFwc2Vk X25zZWM7CitzdGF0aWMgdWludDMyX3QgZ3RzY19raHo7CitzdGF0aWMgdWludDE2X3QgdnRzY19r aHpfdG9sZXJhbmNlOworc3RhdGljIHVpbnQzMl90IGluY2FybmF0aW9uOworc3RhdGljIHVpbnQx Nl90IG5ld192dHNjX2toel90b2xlcmFuY2U7CisKK3N0YXRpYyB2b2lkIHNob3dfaGVscCh2b2lk KQoreworICAgIGZwcmludGYoc3RkZXJyLCAiVXNhZ2U6IHhlbi12dHNjIDxkb21pZD4gW3Z0c2Nf dG9sZXJhbmNlXVxuIik7Cit9CisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCit7 CisgICAgc3RydWN0IHhjX2ludGVyZmFjZV9jb3JlICp4Y2g7CisgICAgaW50IG1vZGVfc2V0ID0g MDsKKyAgICBpbnQgcmM7CisKKyAgICBpZiAoYXJnYyA8IDIgfHwgYXJnYyA+IDMgfHwgc3RyY21w KCItaCIsIGFyZ3ZbMV0pID09IDApCisgICAgeworICAgICAgICBzaG93X2hlbHAoKTsKKyAgICAg ICAgcmV0dXJuIDA7CisgICAgfQorICAgIGRvbWlkID0gYXRvbChhcmd2WzFdKTsKKyAgICBpZiAo YXJnYyA9PSAzKQorICAgIHsKKyAgICAgICAgdW5zaWduZWQgbG9uZyB2YWw7CisKKyAgICAgICAg dmFsID0gYXRvbChhcmd2WzJdKTsKKyAgICAgICAgaWYgKCB2YWwgPiBVSU5UMTZfTUFYICkKKyAg ICAgICAgeworICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsCisgICAgICAgICAgICAgICAgICAg ICJFcnJvcjogdmFsdWUgZm9yIHZ0c2NfdG9sZXJhbmNlIG11c3QgYmV0d2VlbiAwIGFuZCAldVxu IiwgVVNIUlRfTUFYKTsKKyAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICB9CisgICAgICAg IG5ld192dHNjX2toel90b2xlcmFuY2UgPSB2YWw7CisgICAgICAgIGlmICggZG9taWQgKQorICAg ICAgICAgICAgbW9kZV9zZXQgPSAxOworICAgIH0KKworICAgIHhjaCA9IHhjX2ludGVyZmFjZV9v cGVuKDAsMCwwKTsKKyAgICBpZiAoICF4Y2ggKQorICAgIHsKKyAgICAgICAgZnByaW50ZihzdGRl cnIsICJmYWlsZWQgdG8gZ2V0IHhjaCBoYW5kbGVyXG4iKTsKKyAgICAgICAgcmV0dXJuIDE7Cisg ICAgfQorCisKKworICAgIGlmIChtb2RlX3NldCkKKyAgICB7CisgICAgICAgIHJjID0geGNfZG9t YWluX3NldF92dHNjX2toel90b2xlcmFuY2UoeGNoLCBkb21pZCwgbmV3X3Z0c2Nfa2h6X3RvbGVy YW5jZSk7CisgICAgICAgIGlmICggcmMgKQorICAgICAgICB7CisgICAgICAgICAgICBwZXJyb3Io InhjX2RvbWFpbl9zZXRfdnRzY19raHpfdG9sZXJhbmNlIik7CisgICAgICAgICAgICBnb3RvIGVy cjsKKyAgICAgICAgfQorICAgIH0KKyAgICBlbHNlCisgICAgeworICAgICAgICByYyA9IHhjX2Rv bWFpbl9nZXRfdHNjX2luZm8oeGNoLCBkb21pZCwgJnRzY19tb2RlLCAmZWxhcHNlZF9uc2VjLCAm Z3RzY19raHosCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmdnRzY19raHpf dG9sZXJhbmNlLCAmaW5jYXJuYXRpb24pOworICAgICAgICBpZiAoIHJjICkKKyAgICAgICAgewor ICAgICAgICAgICAgcGVycm9yKCJ4Y19kb21haW5fZ2V0X3RzY19pbmZvIik7CisgICAgICAgICAg ICBnb3RvIGVycjsKKyAgICAgICAgfQorCisgICAgICAgIHByaW50ZigiZG9taWQ6ICUiIFBSSXUz MiAiXG4iCisgICAgICAgICAgICAgICAidHNjX21vZGU6ICUiIFBSSXUzMiAiXG4iCisgICAgICAg ICAgICAgICAiZWxhcHNlZF9uc2VjOiAlIiBQUkl1NjQgIlxuIgorICAgICAgICAgICAgICAgImd0 c2Nfa2h6OiAlIiBQUkl1MzIgIlxuIgorICAgICAgICAgICAgICAgInZ0c2Nfa2h6X3RvbGVyYW5j ZTogJSIgUFJJdTE2ICJcbiIKKyAgICAgICAgICAgICAgICJpbmNhcm5hdGlvbjogJSIgUFJJdTMy ICJcbiIsCisgICAgICAgICAgICAgICBkb21pZCwgdHNjX21vZGUsIGVsYXBzZWRfbnNlYywgZ3Rz Y19raHosIHZ0c2Nfa2h6X3RvbGVyYW5jZSwgaW5jYXJuYXRpb24pOworICAgIH0KKworZXJyOgor ICAgIHhjX2ludGVyZmFjZV9jbG9zZSh4Y2gpOworCisgICAgcmV0dXJuICEhcmM7Cit9CmRpZmYg LS1naXQgYS90b29scy9weXRob24veGVuL2xvd2xldmVsL3hjL3hjLmMgYi90b29scy9weXRob24v eGVuL2xvd2xldmVsL3hjL3hjLmMKaW5kZXggZjUwMTc2NDEwMC4uZTczZTJjYWZjNyAxMDA2NDQK LS0tIGEvdG9vbHMvcHl0aG9uL3hlbi9sb3dsZXZlbC94Yy94Yy5jCisrKyBiL3Rvb2xzL3B5dGhv bi94ZW4vbG93bGV2ZWwveGMveGMuYwpAQCAtMTUyMiw3ICsxNTIyLDcgQEAgc3RhdGljIFB5T2Jq ZWN0ICpweXhjX2RvbWFpbl9zZXRfdHNjX2luZm8oWGNPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICph cmdzKQogICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiaWkiLCAmZG9tLCAmdHNjX21v ZGUpKQogICAgICAgICByZXR1cm4gTlVMTDsKIAotICAgIGlmICh4Y19kb21haW5fc2V0X3RzY19p bmZvKHNlbGYtPnhjX2hhbmRsZSwgZG9tLCB0c2NfbW9kZSwgMCwgMCwgMCkgIT0gMCkKKyAgICBp ZiAoeGNfZG9tYWluX3NldF90c2NfaW5mbyhzZWxmLT54Y19oYW5kbGUsIGRvbSwgdHNjX21vZGUs IDAsIDAsIDAsIDApICE9IDApCiAgICAgICAgIHJldHVybiBweXhjX2Vycm9yX3RvX2V4Y2VwdGlv bihzZWxmLT54Y19oYW5kbGUpOwogCiAgICAgUHlfSU5DUkVGKHplcm8pOwpkaWZmIC0tZ2l0IGEv dG9vbHMveGwveGxfcGFyc2UuYyBiL3Rvb2xzL3hsL3hsX3BhcnNlLmMKaW5kZXggZjY4NDI1NDBj YS4uMDM4ODQxNjAxMSAxMDA2NDQKLS0tIGEvdG9vbHMveGwveGxfcGFyc2UuYworKysgYi90b29s cy94bC94bF9wYXJzZS5jCkBAIC0xMTI2LDYgKzExMjYsOSBAQCB2b2lkIHBhcnNlX2NvbmZpZ19k YXRhKGNvbnN0IGNoYXIgKmNvbmZpZ19zb3VyY2UsCiAgICAgICAgIH0KICAgICB9CiAKKyAgICBp ZiAoIXhsdV9jZmdfZ2V0X2xvbmcoY29uZmlnLCAidnRzY19raHpfdG9sZXJhbmNlIiwgJmwsIDAp KQorICAgICAgICBiX2luZm8tPnZ0c2Nfa2h6X3RvbGVyYW5jZSA9IGwgPCAwIHx8IGwgPiBVSU5U MTZfTUFYID8gVUlOVDE2X01BWCA6IGw7CisKICAgICBpZiAoIXhsdV9jZmdfZ2V0X2xvbmcoY29u ZmlnLCAicnRjX3RpbWVvZmZzZXQiLCAmbCwgMCkpCiAgICAgICAgIGJfaW5mby0+cnRjX3RpbWVv ZmZzZXQgPSBsOwogCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvZG9tYWluLmMgYi94ZW4vYXJj aC94ODYvZG9tYWluLmMKaW5kZXggMWY4YjA4ZWYwMi4uMmVlODc1NWQxMyAxMDA2NDQKLS0tIGEv eGVuL2FyY2gveDg2L2RvbWFpbi5jCisrKyBiL3hlbi9hcmNoL3g4Ni9kb21haW4uYwpAQCAtNTU4 LDcgKzU1OCw3IEBAIGludCBhcmNoX2RvbWFpbl9jcmVhdGUoc3RydWN0IGRvbWFpbiAqZCwgdW5z aWduZWQgaW50IGRvbWNyX2ZsYWdzLAogICAgIH0KIAogICAgIC8qIGluaXRpYWxpemUgZGVmYXVs dCB0c2MgYmVoYXZpb3IgaW4gY2FzZSB0b29scyBkb24ndCAqLwotICAgIHRzY19zZXRfaW5mbyhk LCBUU0NfTU9ERV9ERUZBVUxULCAwVUwsIDAsIDApOworICAgIHRzY19zZXRfaW5mbyhkLCBUU0Nf TU9ERV9ERUZBVUxULCAwVUwsIDAsIDAsIDApOwogICAgIHNwaW5fbG9ja19pbml0KCZkLT5hcmNo LnZ0c2NfbG9jayk7CiAKICAgICAvKiBQVi9QVkggZ3Vlc3RzIGdldCBhbiBlbXVsYXRlZCBQSVQg dG9vIGZvciB2aWRlbyBCSU9TZXMgdG8gdXNlLiAqLwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2 L2RvbWN0bC5jIGIveGVuL2FyY2gveDg2L2RvbWN0bC5jCmluZGV4IDhmYmJmM2FlYjMuLjdkMTE5 NTdhODAgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9kb21jdGwuYworKysgYi94ZW4vYXJjaC94 ODYvZG9tY3RsLmMKQEAgLTkzOSw2ICs5MzksNyBAQCBsb25nIGFyY2hfZG9fZG9tY3RsKAogICAg ICAgICAgICAgdHNjX2dldF9pbmZvKGQsICZkb21jdGwtPnUudHNjX2luZm8udHNjX21vZGUsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgJmRvbWN0bC0+dS50c2NfaW5mby5lbGFwc2VkX25zZWMs CiAgICAgICAgICAgICAgICAgICAgICAgICAgJmRvbWN0bC0+dS50c2NfaW5mby5ndHNjX2toeiwK KyAgICAgICAgICAgICAgICAgICAgICAgICAmZG9tY3RsLT51LnRzY19pbmZvLnZ0c2Nfa2h6X3Rv bGVyYW5jZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAmZG9tY3RsLT51LnRzY19pbmZvLmlu Y2FybmF0aW9uKTsKICAgICAgICAgICAgIGRvbWFpbl91bnBhdXNlKGQpOwogICAgICAgICAgICAg Y29weWJhY2sgPSB0cnVlOwpAQCAtOTU0LDExICs5NTUsMjEgQEAgbG9uZyBhcmNoX2RvX2RvbWN0 bCgKICAgICAgICAgICAgIHRzY19zZXRfaW5mbyhkLCBkb21jdGwtPnUudHNjX2luZm8udHNjX21v ZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgZG9tY3RsLT51LnRzY19pbmZvLmVsYXBzZWRf bnNlYywKICAgICAgICAgICAgICAgICAgICAgICAgICBkb21jdGwtPnUudHNjX2luZm8uZ3RzY19r aHosCisgICAgICAgICAgICAgICAgICAgICAgICAgZG9tY3RsLT51LnRzY19pbmZvLnZ0c2Nfa2h6 X3RvbGVyYW5jZSwKICAgICAgICAgICAgICAgICAgICAgICAgICBkb21jdGwtPnUudHNjX2luZm8u aW5jYXJuYXRpb24pOwogICAgICAgICAgICAgZG9tYWluX3VucGF1c2UoZCk7CiAgICAgICAgIH0K ICAgICAgICAgYnJlYWs7CiAKKyAgICBjYXNlIFhFTl9ET01DVExfc2V0X3Z0c2Nfa2h6X3RvbGVy YW5jZToKKyAgICAgICAgaWYgKCBkID09IGN1cnJkICkKKyAgICAgICAgICAgIHJldCA9IC1FSU5W QUw7CisgICAgICAgIGVsc2UKKyAgICAgICAgeworICAgICAgICAgICAgZC0+YXJjaC52dHNjX2to el90b2xlcmFuY2UgPSBkb21jdGwtPnUudHNjX2luZm8udnRzY19raHpfdG9sZXJhbmNlOworICAg ICAgICB9CisgICAgICAgIGJyZWFrOworCiAgICAgY2FzZSBYRU5fRE9NQ1RMX3N1cHByZXNzX3Nw dXJpb3VzX3BhZ2VfZmF1bHRzOgogICAgICAgICBkLT5hcmNoLnN1cHByZXNzX3NwdXJpb3VzX3Bh Z2VfZmF1bHRzID0gMTsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYv dGltZS5jIGIveGVuL2FyY2gveDg2L3RpbWUuYwppbmRleCAxYTZmZGU2NWRkLi5iYzA3OGU0NDM0 IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvdGltZS5jCisrKyBiL3hlbi9hcmNoL3g4Ni90aW1l LmMKQEAgLTIwNjQsMTMgKzIwNjQsMTQgQEAgaW50IGhvc3RfdHNjX2lzX3NhZmUodm9pZCkKICAq Lwogdm9pZCB0c2NfZ2V0X2luZm8oc3RydWN0IGRvbWFpbiAqZCwgdWludDMyX3QgKnRzY19tb2Rl LAogICAgICAgICAgICAgICAgICAgdWludDY0X3QgKmVsYXBzZWRfbnNlYywgdWludDMyX3QgKmd0 c2Nfa2h6LAotICAgICAgICAgICAgICAgICAgdWludDMyX3QgKmluY2FybmF0aW9uKQorICAgICAg ICAgICAgICAgICAgdWludDE2X3QgKnZ0c2Nfa2h6X3RvbGVyYW5jZSwgdWludDMyX3QgKmluY2Fy bmF0aW9uKQogewogICAgIGJvb2wgZW5hYmxlX3RzY19zY2FsaW5nID0gaXNfaHZtX2RvbWFpbihk KSAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHZtX3RzY19zY2FsaW5nX3N1cHBv cnRlZCAmJiAhZC0+YXJjaC52dHNjOwogCiAgICAgKmluY2FybmF0aW9uID0gZC0+YXJjaC5pbmNh cm5hdGlvbjsKICAgICAqdHNjX21vZGUgPSBkLT5hcmNoLnRzY19tb2RlOworICAgICp2dHNjX2to el90b2xlcmFuY2UgPSBkLT5hcmNoLnZ0c2Nfa2h6X3RvbGVyYW5jZTsKIAogICAgIHN3aXRjaCAo ICp0c2NfbW9kZSApCiAgICAgewpAQCAtMjEyMiw3ICsyMTIzLDggQEAgdm9pZCB0c2NfZ2V0X2lu Zm8oc3RydWN0IGRvbWFpbiAqZCwgdWludDMyX3QgKnRzY19tb2RlLAogICovCiB2b2lkIHRzY19z ZXRfaW5mbyhzdHJ1Y3QgZG9tYWluICpkLAogICAgICAgICAgICAgICAgICAgdWludDMyX3QgdHNj X21vZGUsIHVpbnQ2NF90IGVsYXBzZWRfbnNlYywKLSAgICAgICAgICAgICAgICAgIHVpbnQzMl90 IGd0c2Nfa2h6LCB1aW50MzJfdCBpbmNhcm5hdGlvbikKKyAgICAgICAgICAgICAgICAgIHVpbnQz Ml90IGd0c2Nfa2h6LCB1aW50MTZfdCB2dHNjX2toel90b2xlcmFuY2UsCisgICAgICAgICAgICAg ICAgICB1aW50MzJfdCBpbmNhcm5hdGlvbikKIHsKICAgICBpZiAoIGlzX2lkbGVfZG9tYWluKGQp IHx8IGlzX2hhcmR3YXJlX2RvbWFpbihkKSApCiAgICAgewpAQCAtMjEzMiw5ICsyMTM0LDEyIEBA IHZvaWQgdHNjX3NldF9pbmZvKHN0cnVjdCBkb21haW4gKmQsCiAKICAgICBzd2l0Y2ggKCBkLT5h cmNoLnRzY19tb2RlID0gdHNjX21vZGUgKQogICAgIHsKKyAgICAgICAgYm9vbCBkaWZmX3RvbGVy YXRlZDsKICAgICAgICAgYm9vbCBlbmFibGVfdHNjX3NjYWxpbmc7CiAKICAgICBjYXNlIFRTQ19N T0RFX0RFRkFVTFQ6CisgICAgICAgIGQtPmFyY2gudnRzY19raHpfdG9sZXJhbmNlID0gdnRzY19r aHpfdG9sZXJhbmNlOworICAgICAgICAvKiBGYWxsdGhyb3VnaC4gKi8KICAgICBjYXNlIFRTQ19N T0RFX0FMV0FZU19FTVVMQVRFOgogICAgICAgICBkLT5hcmNoLnZ0c2Nfb2Zmc2V0ID0gZ2V0X3Nf dGltZSgpIC0gZWxhcHNlZF9uc2VjOwogICAgICAgICBkLT5hcmNoLnRzY19raHogPSBndHNjX2to eiA/OiBjcHVfa2h6OwpAQCAtMjE0Nyw4ICsyMTUyLDI0IEBAIHZvaWQgdHNjX3NldF9pbmZvKHN0 cnVjdCBkb21haW4gKmQsCiAgICAgICAgICAqIFdoZW4gYSBndWVzdCBpcyBjcmVhdGVkLCBndHNj X2toeiBpcyBwYXNzZWQgaW4gYXMgemVybywgbWFraW5nCiAgICAgICAgICAqIGQtPmFyY2gudHNj X2toeiA9PSBjcHVfa2h6LiBUaHVzIG5vIG5lZWQgdG8gY2hlY2sgaW5jYXJuYXRpb24uCiAgICAg ICAgICAqLworICAgICAgICBkaWZmX3RvbGVyYXRlZCA9IGQtPmFyY2gudHNjX2toeiA9PSBjcHVf a2h6OworCisgICAgICAgIGlmICggdHNjX21vZGUgPT0gVFNDX01PREVfREVGQVVMVCAmJiBndHNj X2toeiApIHsKKyAgICAgICAgICAgIHVpbnQzMl90IGtoel9kaWZmOworCisgICAgICAgICAgICBr aHpfZGlmZiA9IGNwdV9raHogPiBndHNjX2toeiA/CisgICAgICAgICAgICAgICAgICAgICAgIGNw dV9raHogLSBndHNjX2toeiA6IGd0c2Nfa2h6IC0gY3B1X2toejsKKyAgICAgICAgICAgIGlmICh2 dHNjX2toel90b2xlcmFuY2UpCisgICAgICAgICAgICAgICAgZGlmZl90b2xlcmF0ZWQgPSBraHpf ZGlmZiA8PSB2dHNjX2toel90b2xlcmFuY2U7CisKKyAgICAgICAgICAgIHByaW50ayhYRU5MT0df V0FSTklORyAiJXM6IGQldTogaG9zdCBoYXMgJWx1IGtIeiwiCisgICAgICAgICAgICAgICAgICAg IiBkb21VIGV4cGVjdHMgJXUga0h6LCIKKyAgICAgICAgICAgICAgICAgICAiIGRpZmZlcmVuY2Ug b2YgJXUgaXMgJXMgdG9sZXJhbmNlIG9mICV1XG4iLAorICAgICAgICAgICAgICAgICAgIF9fZnVu Y19fLCBkLT5kb21haW5faWQsIGNwdV9raHosIGd0c2Nfa2h6LCBraHpfZGlmZiwKKyAgICAgICAg ICAgICAgICAgICBkaWZmX3RvbGVyYXRlZCA/ICJ3aXRoaW4iIDogIm91dHNpZGUiLCB2dHNjX2to el90b2xlcmFuY2UpOworICAgICAgICB9CiAgICAgICAgIGlmICggdHNjX21vZGUgPT0gVFNDX01P REVfREVGQVVMVCAmJiBob3N0X3RzY19pc19zYWZlKCkgJiYKLSAgICAgICAgICAgICAoZC0+YXJj aC50c2Nfa2h6ID09IGNwdV9raHogfHwKKyAgICAgICAgICAgICAoZGlmZl90b2xlcmF0ZWQgfHwK ICAgICAgICAgICAgICAgKGlzX2h2bV9kb21haW4oZCkgJiYKICAgICAgICAgICAgICAgIGh2bV9n ZXRfdHNjX3NjYWxpbmdfcmF0aW8oZC0+YXJjaC50c2Nfa2h6KSkpICkKICAgICAgICAgewpAQCAt MjIzNyw2ICsyMjU4LDggQEAgc3RhdGljIHZvaWQgZHVtcF9zb2Z0dHNjKHVuc2lnbmVkIGNoYXIg a2V5KQogICAgICAgICAgICAgcHJpbnRrKCIsb2ZzPSUjIlBSSXg2NCwgZC0+YXJjaC52dHNjX29m ZnNldCk7CiAgICAgICAgIGlmICggZC0+YXJjaC50c2Nfa2h6ICkKICAgICAgICAgICAgIHByaW50 aygiLGtoej0lIlBSSXUzMiwgZC0+YXJjaC50c2Nfa2h6KTsKKyAgICAgICAgaWYgKCBkLT5hcmNo LnZ0c2Nfa2h6X3RvbGVyYW5jZSApCisgICAgICAgICAgICBwcmludGsoIix0b2w9JSJQUkl1MTYs IGQtPmFyY2gudnRzY19raHpfdG9sZXJhbmNlKTsKICAgICAgICAgaWYgKCBkLT5hcmNoLmluY2Fy bmF0aW9uICkKICAgICAgICAgICAgIHByaW50aygiLGluYz0lIlBSSXUzMiwgZC0+YXJjaC5pbmNh cm5hdGlvbik7CiAjaWYgIWRlZmluZWQoTkRFQlVHKSB8fCBkZWZpbmVkKENPTkZJR19QRVJGX0NP VU5URVJTKQpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9kb21haW4uaCBiL3hlbi9p bmNsdWRlL2FzbS14ODYvZG9tYWluLmgKaW5kZXggNDY3OWQ1NDc3ZC4uNjdkOWM2NmMxMSAxMDA2 NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9kb21haW4uaAorKysgYi94ZW4vaW5jbHVkZS9h c20teDg2L2RvbWFpbi5oCkBAIC0zNjksNiArMzY5LDcgQEAgc3RydWN0IGFyY2hfZG9tYWluCiAg ICAgLyogVFNDIG1hbmFnZW1lbnQgKGVtdWxhdGlvbiwgcHYsIHNjYWxpbmcsIHN0YXRzKSAqLwog ICAgIGludCB0c2NfbW9kZTsgICAgICAgICAgICAvKiBzZWUgaW5jbHVkZS9hc20teDg2L3RpbWUu aCAqLwogICAgIGJvb2xfdCB2dHNjOyAgICAgICAgICAgICAvKiB0c2MgaXMgZW11bGF0ZWQgKG1h eSBjaGFuZ2UgYWZ0ZXIgbWlncmF0ZSkgKi8KKyAgICB1aW50MTZfdCB2dHNjX2toel90b2xlcmFu Y2U7IC8qIGRvbVUgaGFuZGxlcyB0aGF0IG11Y2ggaml0dGVyIGluIGtoeiB2YWx1ZSAqLwogICAg IHNfdGltZV90IHZ0c2NfbGFzdDsgICAgICAvKiBwcmV2aW91cyBUU0MgdmFsdWUgKGd1YXJhbnRl ZSBtb25vdG9uaWNpdHkpICovCiAgICAgc3BpbmxvY2tfdCB2dHNjX2xvY2s7CiAgICAgdWludDY0 X3QgdnRzY19vZmZzZXQ7ICAgIC8qIGFkanVzdG1lbnQgZm9yIHNhdmUvcmVzdG9yZS9taWdyYXRl ICovCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L3RpbWUuaCBiL3hlbi9pbmNsdWRl L2FzbS14ODYvdGltZS5oCmluZGV4IGIzYWU4MzJkZjQuLjQzOWI0N2Q5M2UgMTAwNjQ0Ci0tLSBh L3hlbi9pbmNsdWRlL2FzbS14ODYvdGltZS5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvdGlt ZS5oCkBAIC02MSwxMCArNjEsMTAgQEAgdTY0IGd0aW1lX3RvX2d0c2Moc3RydWN0IGRvbWFpbiAq ZCwgdTY0IHRpbWUpOwogdTY0IGd0c2NfdG9fZ3RpbWUoc3RydWN0IGRvbWFpbiAqZCwgdTY0IHRz Yyk7CiAKIHZvaWQgdHNjX3NldF9pbmZvKHN0cnVjdCBkb21haW4gKmQsIHVpbnQzMl90IHRzY19t b2RlLCB1aW50NjRfdCBlbGFwc2VkX25zZWMsCi0gICAgICAgICAgICAgICAgICB1aW50MzJfdCBn dHNjX2toeiwgdWludDMyX3QgaW5jYXJuYXRpb24pOworICAgICAgICAgICAgICAgICAgdWludDMy X3QgZ3RzY19raHosIHVpbnQxNl90IHZ0c2Nfa2h6X3RvbGVyYW5jZSwgdWludDMyX3QgaW5jYXJu YXRpb24pOwogICAgCiB2b2lkIHRzY19nZXRfaW5mbyhzdHJ1Y3QgZG9tYWluICpkLCB1aW50MzJf dCAqdHNjX21vZGUsIHVpbnQ2NF90ICplbGFwc2VkX25zZWMsCi0gICAgICAgICAgICAgICAgICB1 aW50MzJfdCAqZ3RzY19raHosIHVpbnQzMl90ICppbmNhcm5hdGlvbik7CisgICAgICAgICAgICAg ICAgICB1aW50MzJfdCAqZ3RzY19raHosIHVpbnQxNl90ICp2dHNjX2toel90b2xlcmFuY2UsIHVp bnQzMl90ICppbmNhcm5hdGlvbik7CiAgICAKIAogdm9pZCBmb3JjZV91cGRhdGVfdmNwdV9zeXN0 ZW1fdGltZShzdHJ1Y3QgdmNwdSAqdik7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMv ZG9tY3RsLmggYi94ZW4vaW5jbHVkZS9wdWJsaWMvZG9tY3RsLmgKaW5kZXggZWM3YTg2MGFmYy4u ZjQwNTMzNmQ5MSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvcHVibGljL2RvbWN0bC5oCisrKyBi L3hlbi9pbmNsdWRlL3B1YmxpYy9kb21jdGwuaApAQCAtNjk3LDEyICs2OTcsMTQgQEAgc3RydWN0 IHhlbl9kb21jdGxfZGlzYWJsZV9taWdyYXRlIHsKIAogLyogWEVOX0RPTUNUTF9nZXR0c2NpbmZv ICovCiAvKiBYRU5fRE9NQ1RMX3NldHRzY2luZm8gKi8KKy8qIFhFTl9ET01DVExfc2V0X3Z0c2Nf a2h6X3RvbGVyYW5jZSAqLwogc3RydWN0IHhlbl9kb21jdGxfdHNjX2luZm8gewogICAgIC8qIElO L09VVCAqLwogICAgIHVpbnQzMl90IHRzY19tb2RlOwogICAgIHVpbnQzMl90IGd0c2Nfa2h6Owog ICAgIHVpbnQzMl90IGluY2FybmF0aW9uOwotICAgIHVpbnQzMl90IHBhZDsKKyAgICB1aW50MTZf dCB2dHNjX2toel90b2xlcmFuY2U7CisgICAgdWludDE2X3QgcGFkOwogICAgIHVpbnQ2NF9hbGln bmVkX3QgZWxhcHNlZF9uc2VjOwogfTsKIApAQCAtMTE3Miw2ICsxMTc0LDcgQEAgc3RydWN0IHhl bl9kb21jdGwgewogI2RlZmluZSBYRU5fRE9NQ1RMX3NvZnRfcmVzZXQgICAgICAgICAgICAgICAg ICAgIDc5CiAjZGVmaW5lIFhFTl9ET01DVExfc2V0X2dudHRhYl9saW1pdHMgICAgICAgICAgICAg ODAKICNkZWZpbmUgWEVOX0RPTUNUTF92dWFydF9vcCAgICAgICAgICAgICAgICAgICAgICA4MQor I2RlZmluZSBYRU5fRE9NQ1RMX3NldF92dHNjX2toel90b2xlcmFuY2UgICAgICAgIDgyCiAjZGVm aW5lIFhFTl9ET01DVExfZ2Ric3hfZ3Vlc3RtZW1pbyAgICAgICAgICAgIDEwMDAKICNkZWZpbmUg WEVOX0RPTUNUTF9nZGJzeF9wYXVzZXZjcHUgICAgICAgICAgICAgMTAwMQogI2RlZmluZSBYRU5f RE9NQ1RMX2dkYnN4X3VucGF1c2V2Y3B1ICAgICAgICAgICAxMDAyCmRpZmYgLS1naXQgYS94ZW4v eHNtL2ZsYXNrL2hvb2tzLmMgYi94ZW4veHNtL2ZsYXNrL2hvb2tzLmMKaW5kZXggMTgwMmQ4ZGZl Ni4uMmZhYTljODdlMSAxMDA2NDQKLS0tIGEveGVuL3hzbS9mbGFzay9ob29rcy5jCisrKyBiL3hl bi94c20vZmxhc2svaG9va3MuYwpAQCAtNzIxLDYgKzcyMSw3IEBAIHN0YXRpYyBpbnQgZmxhc2tf ZG9tY3RsKHN0cnVjdCBkb21haW4gKmQsIGludCBjbWQpCiAgICAgICAgIHJldHVybiBjdXJyZW50 X2hhc19wZXJtKGQsIFNFQ0NMQVNTX0RPTUFJTjIsIERPTUFJTjJfX0dFVFRTQyk7CiAKICAgICBj YXNlIFhFTl9ET01DVExfc2V0dHNjaW5mbzoKKyAgICBjYXNlIFhFTl9ET01DVExfc2V0X3Z0c2Nf a2h6X3RvbGVyYW5jZToKICAgICAgICAgcmV0dXJuIGN1cnJlbnRfaGFzX3Blcm0oZCwgU0VDQ0xB U1NfRE9NQUlOMiwgRE9NQUlOMl9fU0VUVFNDKTsKIAogICAgIGNhc2UgWEVOX0RPTUNUTF9hdWRp dF9wMm06CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpY ZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRw czovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs