From mboxrd@z Thu Jan 1 00:00:00 1970 From: Joao Martins Subject: [PATCH v5 3/5] x86/time: implement tsc as clocksource Date: Fri, 23 Sep 2016 11:42:45 +0100 Message-ID: <1474627367-8185-4-git-send-email-joao.m.martins@oracle.com> References: <1474627367-8185-1-git-send-email-joao.m.martins@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bnNv7-00080A-Kb for xen-devel@lists.xenproject.org; Fri, 23 Sep 2016 10:41:29 +0000 In-Reply-To: <1474627367-8185-1-git-send-email-joao.m.martins@oracle.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Andrew Cooper , Joao Martins , Jan Beulich List-Id: xen-devel@lists.xenproject.org UmVjZW50IHg4Ni90aW1lIGNoYW5nZXMgaW1wcm92ZWQgYSBsb3Qgb2YgdGhlIG1vbm90b25pY2l0 eSBpbiB4ZW4KdGltZWtlZXBpbmcsIG1ha2luZyBpdCBtdWNoIGhhcmRlciB0byBvYnNlcnZlIHRp bWUgZ29pbmcgYmFja3dhcmRzLgpBbHRob3VnaCBwbGF0Zm9ybSB0aW1lciBjYW4ndCBiZSBleHBl Y3RlZCB0byBiZSBwZXJmZWN0bHkgaW4gc3luYyB3aXRoClRTQyBhbmQgc28gZ2V0X3NfdGltZSB3 b24ndCBiZSBndWFyYW50ZWVkIHRvIGFsd2F5cyByZXR1cm4KbW9ub3RvbmljYWxseSBpbmNyZWFz aW5nIHZhbHVlcyBhY3Jvc3MgY3B1cy4gVGhpcyBpcyB0aGUgY2FzZSBpbiBzb21lCm9mIHRoZSBi b3hlcyBJIGFtIHRlc3Rpbmcgd2l0aCwgb2JzZXJ2aW5nIHNvbWV0aW1lcyB+MTAwIHdhcnBzIChv Zgp2ZXJ5IGZldyBuYW5vc2Vjb25kcyBlYWNoKSBhZnRlciBhIGZldyBob3Vycy4KClRoaXMgcGF0 Y2ggaW50cm9kdWNlcyBzdXBwb3J0IGZvciB1c2luZyBUU0MgYXMgcGxhdGZvcm0gdGltZSBzb3Vy Y2UKd2hpY2ggaXMgdGhlIGhpZ2hlc3QgcmVzb2x1dGlvbiB0aW1lIGFuZCBtb3N0IHBlcmZvcm1h bnQgdG8gZ2V0LgpUaG91Z2ggdGhlcmUgYXJlIGFsc28gc2V2ZXJhbCBwcm9ibGVtcyBhc3NvY2lh dGVkIHdpdGggaXRzIHVzYWdlLCBhbmQKdGhlcmUgaXNuJ3QgYSBjb21wbGV0ZSAoYW5kIGFyY2hp dGVjdHVyYWxseSBkZWZpbmVkKSBndWFyYW50ZWUgdGhhdAphbGwgbWFjaGluZXMgd2lsbCBwcm92 aWRlIHJlbGlhYmxlIGFuZCBtb25vdG9uaWMgVFNDIGluIGFsbCBjYXNlcyAoSQpiZWxpZXZlIElu dGVsIHRvIGJlIHRoZSBvbmx5IHRoYXQgY2FuIGd1YXJhbnRlZSB0aGF0PykuIEZvciB0aGlzIHJl YXNvbgppdCdzIG5vdCB1c2VkIHVubGVzcyBhZG1pbmlzdHJhdG9yIGNoYW5nZXMgImNsb2Nrc291 cmNlIiBib290IG9wdGlvbgp0byAidHNjIi4gSW5pdGlhbGl6aW5nIFRTQyBjbG9ja3NvdXJjZSBy ZXF1aXJlcyBhbGwgQ1BVcyB1cCB0byBoYXZlCnRoZSB0c2MgcmVsaWFiaWxpdHkgY2hlY2tzIHBl cmZvcm1lZC4gaW5pdF94ZW5fdGltZSBpcyBjYWxsZWQgYmVmb3JlCmFsbCBDUFVzIGFyZSB1cCwg c28gZm9yIGV4YW1wbGUgd2Ugd291bGQgc3RhcnQgd2l0aCBIUEVUIChvciBBQ1BJLApQSVQpIGF0 IGJvb3QgdGltZSwgYW5kIHN3aXRjaCBsYXRlciB0byBUU0MuIFRoZSBzd2l0Y2ggdGhlbiBoYXBw ZW5zIG9uCnZlcmlmeV90c2NfcmVsaWFiaWxpdHkgaW5pdGNhbGwgdGhhdCBpcyBpbnZva2VkIHdo ZW4gYWxsIENQVXMgYXJlIHVwLgpXaGVuIGF0dGVtcHRpbmcgdG8gaW5pdGlhbGl6ZSBUU0Mgd2Ug YWxzbyBjaGVjayBmb3IgdGltZSB3YXJwcyBhbmQgaWYKaXQgaGFzIGludmFyaWFudCBUU0MuIE5v dGUgdGhhdCB3aGlsZSB3ZSBkZWVtIHJlbGlhYmxlIGEgQ09OU1RBTlRfVFNDCndpdGggbm8gZGVl cCBDLXN0YXRlcywgaXQgbWlnaHQgbm90IGFsd2F5cyBiZSB0aGUgY2FzZSwgc28gd2UncmUKY29u c2VydmF0aXZlIGFuZCBhbGxvdyBUU0MgdG8gYmUgdXNlZCBhcyBwbGF0Zm9ybSB0aW1lciBvbmx5 IHdpdGgKaW52YXJpYW50IFRTQy4gQWRkaXRpb25hbGx5IHdlIGNoZWNrIGlmIENQVSBIb3RwbHVn IGlzbid0IG1lYW50IHRvIGJlCnBlcmZvcm1lZCBvbiB0aGUgaG9zdCB3aGljaCB3aWxsIGVpdGhl ciBiZSB3aGVuIG1heCB2Y3B1cyBhbmQKbnVtX3ByZXNlbnRfY3B1IGFyZSB0aGUgc2FtZS4gVGhp cyBpcyBiZWNhdXNlIGEgbmV3bHkgaG90cGx1Z2dlZCBDUFUKbWF5IG5vdCBzYXRpc2Z5IHRoZSBj b25kaXRpb24gb2YgaGF2aW5nIGFsbCBUU0NzIHN5bmNocm9uaXplZCAtIHNvCndoZW4gaGF2aW5n IHRzYyBjbG9ja3NvdXJjZSBiZWluZyB1c2VkIHdlIGFsbG93IG9mZmxpbmluZyBDUFVzIGJ1dCBu b3QKb25saW5pbmcgYW55IG9uZXMgYmFjay4gRmluYWxseSB3ZSBwcmV2ZW50IFRTQyBmcm9tIGJl aW5nIHVzZWQgYXMKY2xvY2tzb3VyY2Ugb24gbXVsdGlwbGUgc29ja2V0cyBiZWNhdXNlIGl0IGlz bid0IGd1YXJhbnRlZWQgdG8gYmUKaW52YXJpYW50LiBGdXJ0aGVyIHJlbGF4aW5nIG9mIHRoaXMg bGFzdCByZXF1aXJlbWVudCBpcyBhZGRlZCBpbiBhCnNlcGFyYXRlIHBhdGNoLCBzdWNoIHRoYXQg d2UgYWxsb3cgdmVuZG9ycyB3aXRoIHN1Y2ggZ3VhcmFudGVlIHRvIHVzZQpUU0MgYXMgY2xvY2tz b3VyY2UuIEluIGNhc2UgYW55IG9mIHRoZXNlIGNvbmRpdGlvbnMgaXMgbm90IG1ldCwgd2UKa2Vl cCB0aGUgY2xvY2tzb3VyY2UgdGhhdCB3YXMgcHJldmlvdXNseSBpbml0aWFsaXplZCBvbiBpbml0 X3hlbl90aW1lLgoKU2luY2UgYjY0NDM4YzdjICgieDg2L3RpbWU6IHVzZSBjb3JyZWN0IChsb2Nh bCkgdGltZSBzdGFtcCBpbgpjb25zdGFudC1UU0MgY2FsaWJyYXRpb24gZmFzdCBwYXRoIikgdXBk YXRlcyB0byBjcHUgdGltZSB1c2UgbG9jYWwKc3RhbXBzLCB3aGljaCBtZWFucyBwbGF0Zm9ybSB0 aW1lciBpcyBvbmx5IHVzZWQgdG8gc2VlZCB0aGUgaW5pdGlhbApjcHUgdGltZS4gV2UgZnVydGhl ciBpbnRyb2R1Y2UgYSBuZXcgcmVuZGV6dm91cyBmdW5jdGlvbgoobm9wX3JlbmRlenZvdXMpIHdo aWNoIGRvZXNuJ3QgcmVxdWlyZSBzeW5jaHJvbml6YXRpb24gYmV0d2VlbiBtYXN0ZXIKYW5kIHNs YXZlIENQVVMgYW5kIGp1c3QgcmVhZHMgY2FsaWJyYXRpb25fcmVuZGV6dm91cyBzdHJ1Y3QgYW5k IHdyaXRlcwppdCBkb3duIHRoZSBzdGltZSBhbmQgc3RhbXAgdG8gdGhlIGNwdV9jYWxpYnJhdGlv biBzdHJ1Y3QgdG8gYmUgdXNlZApsYXRlciBvbi4gV2l0aCBjbG9ja3NvdXJjZT10c2MgdGhlcmUg aXMgbm8gbmVlZCB0byBiZSBpbiBzeW5jIHdpdGgKYW5vdGhlciBjbG9ja3NvdXJjZSwgc28gd2Ug cmVzZWVkIHRoZSBsb2NhbC9tYXN0ZXIgc3RhbXBzIHRvIGJlIHZhbHVlcwpvZiBUU0MgYW5kIHVw ZGF0ZSB0aGUgcGxhdGZvcm0gdGltZSBzdGFtcHMgYWNjb3JkaW5nbHkuIFRpbWUKY2FsaWJyYXRp b24gaXMgc2V0IHRvIDFzZWMgYWZ0ZXIgd2Ugc3dpdGNoIHRvIFRTQywgdGh1cyB0aGVzZSBzdGFt cHMKYXJlIHJlc2VlZGVkIHRvIGFsc28gZW5zdXJlIG1vbm90b25pYyByZXR1cm5pbmcgdmFsdWVz IHJpZ2h0IGFmdGVyIHRoZQpwb2ludCB3ZSBzd2l0Y2ggdG8gVFNDLiBUaGlzIGlzIHRvIHJlbW92 ZSB0aGUgcG9zc2liaWxpdHkgb2YgaGF2aW5nCmluY29uc2lzdGVudCByZWFkaW5ncyBpbiB0aGlz IHNob3J0IHBlcmlvZCAoaS5lLiB1bnRpbCBjYWxpYnJhdGlvbgpmaXJlcykuCgpTaWduZWQtb2Zm LWJ5OiBKb2FvIE1hcnRpbnMgPGpvYW8ubS5tYXJ0aW5zQG9yYWNsZS5jb20+Ci0tLQpDYzogSmFu IEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpDYzogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNv b3BlcjNAY2l0cml4LmNvbT4KCkNoYW5nZXMgc2ludmUgdjQ6CiAtIE1vdmVkIG5vcF9yZW5kZXp2 b3VzIHRvIHRoaXMgcGF0Y2ggYW5kIGFsb25nIHdpdGggaXRzIG1lbnRpb24gaW4gdGhlCiBjb21t aXQgbWVzc2FnZS4KIC0gUmVtb3ZlIG1lbnRpb24gb2YgSFBFVCBwcmlvcml0eSB2cyBvdGhlciBj bG9ja3NvdXJjZXMuCiAtIENoYW5nZSAidG8gYXZvaWQgdGhlIHBvc3NpYmlsaXR5IiBpbnRvICJ0 byByZW1vdmUgKC4uLikiCiAtIENoYW5nZSBUU0MgaW5pdCBtZXNzYWdlcyB0byB1c2Ugd2Fybmlu ZyBsb2cgbGV2ZWwgYW5kIGxlYXZlCiB0aGUgbGFzdCBvbmUgYXMgZGVidWcuCiAtIENoYW5nZSAi U3dpdGNoZWQgdG8gUGxhdGZvcm0gdGltZXIiIG1lc3NhZ2UgdG8gc2FtZSBsb2dsZXZlbCBhcyB0 aGUKIG9uZSBpbiBpbml0X3BsYXRmb3JtX3RpbWVyKCkKIC0gSW50cm9kdWNlICJsYXRlIiBib29s ZWFuIGZ1bmN0aW9uIHBhcmFtZXRlciBpbgogICB0cnlfcGxhdGZvcm1fdGltZXJfdGFpbC4KIC0g RG8gbm90IHNwbGl0IHRoZSBpZiAoY2hlY2tpbmcgZm9yIGNsb2Nrc291cmNlPXRzYykgaW50byB0 d28gbGluZXMuCiAtIEFkZCBicmllZiBjb21tZW50IGFib3V0IHdoeSBUU0MgLmNvdW50ZXJfYml0 cyBpcyBub3QgNjQKCkNoYW5nZXMgc2luY2UgdjM6CiAtIFJlYWxseSBmaXggIkhQRVQgc3dpdGNo aW5nIHRvIFRTQyIgY29tbWVudC4gRGVzcGl0ZSBtZW50aW9uZWQgaW4gdGhlCiBpbiBwcmV2aW91 cyB2ZXJzaW9uLCB0aGUgY2hhbmdlIHdhc24ndCB0aGVyZS4KIC0gUmVtb3ZlIHBhcmVudGhlc2lz IGFyb3VuZCB0aGUgZnVuY3Rpb24gY2FsbCBpbiBpbml0X3BsYXRmb3JtX3RpbWVyCiAtIE1lcmdl IGlmIG9uIHZlcmlmeV90c2NfcmVsaWFiaWxpdHkgd2l0aCBvcHRfY2xvY2tzb3VyY2UgY2hlY2sK IC0gUmVtb3ZlZCBjb21tZW50IGFib3ZlICIuaW5pdCA9IGluaXRfdHNjdGltZXIiCiAtIEZpeHVw IGRvY3MgdXBkYXRlZCBpbnRvIHRoaXMgcGF0Y2guCiAtIE1vdmUgaG9zdF90c2NfaXNfY2xvY2tz b3VyY2UoKSBhbmQgQ1BVIGhvdHBsdWcgcG9zc2liaWxpdHkgY2hlY2sgdG8gdGhpcwogcGF0Y2gu CiAtIHMvaG9zdF90c2NfaXNfY2xvY2tzb3VyY2UvY2xvY2tzb3VyY2VfaXNfdHNjCiAtIFVzZSBi b29sIGluc3RlYWQgb2YgYm9vbF90CiAtIEFkZCBhIGNvbW1lbnQgYWJvdmUgaW5pdF90c2N0aW1l cigpIGRlY2xhcmF0aW9uIG1lbnRpb25pbmcgdGhlCiAgIHJlbGlhYmxlIFRTQyBjaGVja3Mgb24g dmVyaWZ5X3RzY19yZWxpYWJpbGl0eSgpLCB1bmRlciB3aGljaCB0aGUKICAgZnVuY3Rpb24gaXMg aW52b2tlZC4KIC0gUHJldmVudCBjbG9ja3NvdXJjZT10c2Mgb24gcGxhdGZvcm1zIHdpdGggbXVs dGlwbGUtc29ja2V0cy4gRnVydGhlcgogcmVsYXhpbmcgb2YgdGhpcyByZXF1aXJlbWVudCBpcyBh ZGRlZCBpbiBhIHNlcGFyYXRlIHBhdGNoLCBhcwogZXh0ZW5zaW9uIG9mICJ0c2MiIGJvb3QgcGFy YW1ldGVyLgogLSBSZW1vdmVkIGNvbnRyb2wgZ3JvdXAgdG8gdXBkYXRlIGNwdV90aW1lIGFuZCBk byBpbnN0ZWFkIHdpdGgKICAgb25fc2VsZWN0ZWRfY3B1cyB0byBhdm9pZCBhbnkgcG90ZW50aWFs IHJhY2VzLgogLSBBY2NvbW9kYXRlIGNvbW1vbiBwYXRoIGJldHdlZW4gaW5pdF94ZW5fdGltZSBh bmQgVFNDIHN3aXRjaCBpbnRvCiB0cnlfcGxhdGZvcm1fdGltZXJfdGFpbCwgc3VjaCB0aGF0IGZp bmlzaGluZyBwbGF0Zm9ybSB0aW1lcgogaW5pdGlhbGl6YXRpb24gaXMgZG9uZSBpbiB0aGUgc2Ft ZSBwbGFjZSAoaW5jbHVkaW5nIHBsYXRmb3JtIHRpbWVyCiBvdmVyZmxvdyB3aGljaCB3YXMgcHJl dmlvdXNseSB3YXMgcmVtb3ZlZCBpbiBwcmV2aW91cyB2ZXJzaW9ucykuCiAtIENoYW5nZWQgVFND IGNvdW50ZXJfYml0cyA2MyB0byBhdm9pZCBtaXNoYW5kbGluZyBvZiBUU0MgY291bnRlcgogd3Jh cC1hcm91bmQgaW4gcGxhdGZvcm0gdGltZXIgb3ZlcmZsb3cgdGltZXIuCiAtIE1vdmVkIHBhcmFn cmFwaCBDUFUgSG90cGx1ZyBmcm9tIGxhc3QgcGF0Y2ggYW5kIGFkZCBjb21tZW50IG9uCiAgIGNv bW1pdCBtZXNzYWdlIGFib3V0IG11bHRpcGxlIHNvY2tldHMgVFNDIHN5bmMuCiAtIHMvaW5pdF90 c2N0aW1lci9pbml0X3RzYy9nIHRvIGJlIGNvbnNpc3RlbnQgd2l0aCBvdGhlciBUU0MgcGxhdGZv cm0KIHRpbWVyIGZ1bmN0aW9ucy4KCkNoYW5nZXMgc2luY2UgdjI6CiAtIFN1Z2dlc3QgIkhQRVQg c3dpdGNoaW5nIHRvIFRTQyIgb25seSBhcyBhbiBleGFtcGxlIGFzIG90aGVyd2lzZSBpdAogd291 bGQgYmUgbWlzbGVhZGluZyBvbiBwbGF0Zm9ybXMgbm90IGhhdmluZyBvbmUuCiAtIENoYW5nZSBp bml0X3RzY3RpbWVyIHRvIHNraXAgYWxsIHRoZSB0ZXN0cyBhbmQgYXNzdW1lIGl0J3MgY2FsbGVk CiBvbmx5IG9uIHJlbGlhYmxlIFRTQyBjb25kaXRpb25zIGFuZCBubyB3YXJwcyBvYnNlcnZlZC4g VGlkeQogaW5pdGlhbGl6YXRpb24gb24gdmVyaWZ5X3RzY19yZWxpYWJpbGl0eSBhcyBzdWdnZXN0 ZWQgYnkgS29ucmFkLgogLSBDT05TVEFOVF9UU0MgYW5kIG1heF9jc3RhdGUgPD0gMiBjYXNlIHJl bW92ZWQgYW5kIG9ubHkgYWxsb3cgdHNjCiAgIGNsb2Nrc291cmNlIGluIGludmFyaWFudCBUU0Mg Ym94ZXMuCiAtIFByZWZlciBvbWl0ICE9MCBvbiBpbml0X3BsYXRmb3JtX3RpbWVyIGZvciB0c2Mg Y2FzZS4KIC0gQ2hhbmdlIGNvbW1lbnQgb24gaW5pdF9wbGF0Zm9ybV90aW1lci4KIC0gQWRkIGNv bW1lbnQgb24gcGx0X3RzYyBkZWNsYXJhdGlvbi4KIC0gUmVpbml0IENQVSB0aW1lIGZvciBhbGwg b25saW5lIGNwdXMgaW5zdGVhZCBvZiBqdXN0IENQVSAwLgogLSBVc2UgcmR0c2Nfb3JkZXJlZCgp IGFzIG9wcG9zZWQgdG8gcmR0c2MoKQogLSBSZW1vdmUgdHNjX2ZyZXEgdmFyaWFibGUgYW5kIHNl dCBwbHRfdHNjIGNsb2Nrc291cmNlIGZyZXF1ZW5jeQogd2l0aCB0aGUgcmVmaW5lZCB0c2MgY2Fs aWJyYXRpb24uCiAtIFJld29yayBhIGJpdCB0aGUgY29tbWl0IG1lc3NhZ2UuCgpDaGFuZ2VzIHNp bmNlIHYxOgogLSBzL3ByaW50ay9wcmludGsoWEVOTE9HX0lORk8KIC0gUmVtb3ZlIGV4dHJhIHNw YWNlIG9uIGlubmVyIGJyYWNrZXRzCiAtIEFkZCBtaXNzaW5nIHNwYWNlIGFyb3VuZCBicmFja2V0 cwogLSBEZWZlciBUU0MgaW5pdGlhbGl6YXRpb24gd2hlbiBhbGwgQ1BVcyBhcmUgdXAuCgpDaGFu Z2VzIHNpbmNlIFJGQzoKIC0gU3BlbGxpbmcgZml4ZXMgaW4gdGhlIGNvbW1pdCBtZXNzYWdlLgog LSBSZW1vdmUgdW51c2VkIGNsb2Nrc291cmNlX2lzX3RzYyB2YXJpYWJsZSBhbmQgaW50cm9kdWNl IGl0IGluc3RlYWQKIG9uIHRoZSBwYXRjaCB0aGF0IHVzZXMgaXQuCiAtIE1vdmUgcGx0X3RzYyBm cm9tIHNlY29uZCB0byBsYXN0IGluIHRoZSBhdmFpbGFibGUgY2xvY2tzb3VyY2VzLgotLS0KIGRv Y3MvbWlzYy94ZW4tY29tbWFuZC1saW5lLm1hcmtkb3duIHwgICA2ICstCiB4ZW4vYXJjaC94ODYv cGxhdGZvcm1faHlwZXJjYWxsLmMgICB8ICAgMyArLQogeGVuL2FyY2gveDg2L3RpbWUuYyAgICAg ICAgICAgICAgICAgfCAxNjEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tCiB4 ZW4vaW5jbHVkZS9hc20teDg2L3RpbWUuaCAgICAgICAgICB8ICAgMSArCiA0IGZpbGVzIGNoYW5n ZWQsIDE1OSBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Nz L21pc2MveGVuLWNvbW1hbmQtbGluZS5tYXJrZG93biBiL2RvY3MvbWlzYy94ZW4tY29tbWFuZC1s aW5lLm1hcmtkb3duCmluZGV4IDNhMjUwY2IuLmY5MmZiM2YgMTAwNjQ0Ci0tLSBhL2RvY3MvbWlz Yy94ZW4tY29tbWFuZC1saW5lLm1hcmtkb3duCisrKyBiL2RvY3MvbWlzYy94ZW4tY29tbWFuZC1s aW5lLm1hcmtkb3duCkBAIC0yNjQsOSArMjY0LDEzIEBAIG1pbmltdW0gb2YgMzJNLCBzdWJqZWN0 IHRvIGEgc3VpdGFibHkgYWxpZ25lZCBhbmQgc2l6ZWQgY29udGlndW91cwogcmVnaW9uIG9mIG1l bW9yeSBiZWluZyBhdmFpbGFibGUuCiAKICMjIyBjbG9ja3NvdXJjZQotPiBgPSBwaXQgfCBocGV0 IHwgYWNwaWAKKz4gYD0gcGl0IHwgaHBldCB8IGFjcGkgfCB0c2NgCiAKIElmIHNldCwgb3ZlcnJp ZGUgWGVuJ3MgZGVmYXVsdCBjaG9pY2UgZm9yIHRoZSBwbGF0Zm9ybSB0aW1lci4KK0hhdmluZyBU U0MgYXMgcGxhdGZvcm0gdGltZXIgcmVxdWlyZXMgYmVpbmcgZXhwbGljaXRseSBzZXQuIFRoaXMg aXMgYmVjYXVzZQorVFNDIGNhbiBvbmx5IGJlIHNhZmVseSB1c2VkIGlmIENQVSBob3RwbHVnIGlz bid0IHBlcmZvcm1lZCBvbiB0aGUgc3lzdGVtLiBJbgorc29tZSBwbGF0Zm9ybXMsICJtYXhjcHVz IiBwYXJhbWV0ZXIgbWF5IHJlcXVpcmUgZnVydGhlciBhZGp1c3RtZW50IHRvIHRoZQorbnVtYmVy IG9mIG9ubGluZSBjcHVzLgogCiAjIyMgY21jaS10aHJlc2hvbGQKID4gYD0gPGludGVnZXI+YApk aWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3BsYXRmb3JtX2h5cGVyY2FsbC5jIGIveGVuL2FyY2gv eDg2L3BsYXRmb3JtX2h5cGVyY2FsbC5jCmluZGV4IDc4MGYyMmQuLjA4NzllMTkgMTAwNjQ0Ci0t LSBhL3hlbi9hcmNoL3g4Ni9wbGF0Zm9ybV9oeXBlcmNhbGwuYworKysgYi94ZW4vYXJjaC94ODYv cGxhdGZvcm1faHlwZXJjYWxsLmMKQEAgLTYzMSw3ICs2MzEsOCBAQCByZXRfdCBkb19wbGF0Zm9y bV9vcChYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhlbl9wbGF0Zm9ybV9vcF90KSB1X3hlbnBmX29w KQogICAgICAgICBpZiAoIHJldCApCiAgICAgICAgICAgICBicmVhazsKIAotICAgICAgICBpZiAo IGNwdSA+PSBucl9jcHVfaWRzIHx8ICFjcHVfcHJlc2VudChjcHUpICkKKyAgICAgICAgaWYgKCBj cHUgPj0gbnJfY3B1X2lkcyB8fCAhY3B1X3ByZXNlbnQoY3B1KSB8fAorICAgICAgICAgICAgIGNs b2Nrc291cmNlX2lzX3RzYygpICkKICAgICAgICAgewogICAgICAgICAgICAgcmV0ID0gLUVJTlZB TDsKICAgICAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3RpbWUuYyBi L3hlbi9hcmNoL3g4Ni90aW1lLmMKaW5kZXggNjMwNWE4NC4uMTI4ZTY1MyAxMDA2NDQKLS0tIGEv eGVuL2FyY2gveDg2L3RpbWUuYworKysgYi94ZW4vYXJjaC94ODYvdGltZS5jCkBAIC00NzUsNiAr NDc1LDU1IEBAIHVpbnQ2NF90IG5zX3RvX2FjcGlfcG1fdGljayh1aW50NjRfdCBucykKIH0KIAog LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKgorICogUExBVEZPUk0gVElNRVIgNDogVFNDCisgKi8KKworLyoKKyAqIENhbGxlZCBpbiB2 ZXJpZnlfdHNjX3JlbGlhYmlsaXR5KCkgdW5kZXIgcmVsaWFibGUgVFNDIGNvbmRpdGlvbnMKKyAq IHRodXMgcmV1c2luZyBhbGwgdGhlIGNoZWNrcyBhbHJlYWR5IHBlcmZvcm1lZCB0aGVyZS4KKyAq Lworc3RhdGljIHM2NCBfX2luaXQgaW5pdF90c2Moc3RydWN0IHBsYXRmb3JtX3RpbWVzb3VyY2Ug KnB0cykKK3sKKyAgICB1NjQgcmV0ID0gcHRzLT5mcmVxdWVuY3k7CisKKyAgICBpZiAoIG5yX2Nw dV9pZHMgIT0gbnVtX3ByZXNlbnRfY3B1cygpICkKKyAgICB7CisgICAgICAgIHByaW50ayhYRU5M T0dfV0FSTklORyAiVFNDOiBDUFUgSG90cGx1ZyBpbnRlbmRlZFxuIik7CisgICAgICAgIHJldCA9 IDA7CisgICAgfQorCisgICAgaWYgKCBucl9zb2NrZXRzID4gMSApCisgICAgeworICAgICAgICBw cmludGsoWEVOTE9HX1dBUk5JTkcgIlRTQzogTm90IGludmFyaWFudCBhY3Jvc3Mgc29ja2V0c1xu Iik7CisgICAgICAgIHJldCA9IDA7CisgICAgfQorCisgICAgaWYgKCAhcmV0ICkKKyAgICAgICAg cHJpbnRrKFhFTkxPR19ERUJVRyAiVFNDOiBOb3Qgc2V0dGluZyBpdCBhcyBjbG9ja3NvdXJjZVxu Iik7CisKKyAgICByZXR1cm4gcmV0OworfQorCitzdGF0aWMgdTY0IHJlYWRfdHNjKHZvaWQpCit7 CisgICAgcmV0dXJuIHJkdHNjX29yZGVyZWQoKTsKK30KKworc3RhdGljIHN0cnVjdCBwbGF0Zm9y bV90aW1lc291cmNlIF9faW5pdGRhdGEgcGx0X3RzYyA9Cit7CisgICAgLmlkID0gInRzYyIsCisg ICAgLm5hbWUgPSAiVFNDIiwKKyAgICAucmVhZF9jb3VudGVyID0gcmVhZF90c2MsCisgICAgLyoK KyAgICAgKiBDYWxjdWxhdGlvbnMgZm9yIHBsYXRmb3JtIHRpbWVyIG92ZXJmbG93IGFzc3VtZSB1 NjQgYm91bmRhcnkuCisgICAgICogSGVuY2Ugd2Ugc2V0IHRvIGxlc3MgdGhhbiA2NCwgc3VjaCB0 aGF0IHRoZSBUU0Mgd3JhcGFyb3VuZCBpcworICAgICAqIGNvcnJlY3RseSBjaGVja2VkIGFuZCBo YW5kbGVkLgorICAgICAqLworICAgIC5jb3VudGVyX2JpdHMgPSA2MywKKyAgICAuaW5pdCA9IGlu aXRfdHNjLAorfTsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKgogICogR0VORVJJQyBQTEFURk9STSBUSU1FUiBJTkZSQVNUUlVD VFVSRQogICovCiAKQEAgLTU4MCw2ICs2MjksMjEgQEAgc3RhdGljIHZvaWQgcmVzdW1lX3BsYXRm b3JtX3RpbWVyKHZvaWQpCiAgICAgcGx0X3N0YW1wID0gcGx0X3NyYy5yZWFkX2NvdW50ZXIoKTsK IH0KIAorc3RhdGljIHZvaWQgX19pbml0IHJlc2V0X3BsYXRmb3JtX3RpbWVyKHZvaWQpCit7Cisg ICAgLyogRGVhY3RpdmF0ZSBhbnkgdGltZXJzIHJ1bm5pbmcgKi8KKyAgICBraWxsX3RpbWVyKCZw bHRfb3ZlcmZsb3dfdGltZXIpOworICAgIGtpbGxfdGltZXIoJmNhbGlicmF0aW9uX3RpbWVyKTsK KworICAgIC8qIFJlc2V0IGNvdW50ZXJzIGFuZCBzdGFtcHMgKi8KKyAgICBzcGluX2xvY2tfaXJx KCZwbGF0Zm9ybV90aW1lcl9sb2NrKTsKKyAgICBwbHRfc3RhbXAgPSAwOworICAgIHBsdF9zdGFt cDY0ID0gMDsKKyAgICBwbGF0Zm9ybV90aW1lcl9zdGFtcCA9IDA7CisgICAgc3RpbWVfcGxhdGZv cm1fc3RhbXAgPSAwOworICAgIHNwaW5fdW5sb2NrX2lycSgmcGxhdGZvcm1fdGltZXJfbG9jayk7 Cit9CisKIHN0YXRpYyBzNjQgX19pbml0IHRyeV9wbGF0Zm9ybV90aW1lcihzdHJ1Y3QgcGxhdGZv cm1fdGltZXNvdXJjZSAqcHRzKQogewogICAgIHM2NCByYyA9IHB0cy0+aW5pdChwdHMpOwpAQCAt NTg3LDYgKzY1MSwxMCBAQCBzdGF0aWMgczY0IF9faW5pdCB0cnlfcGxhdGZvcm1fdGltZXIoc3Ry dWN0IHBsYXRmb3JtX3RpbWVzb3VyY2UgKnB0cykKICAgICBpZiAoIHJjIDw9IDAgKQogICAgICAg ICByZXR1cm4gcmM7CiAKKyAgICAvKiBXZSBoYXZlIGEgcGxhdGZvcm0gdGltZXNvdXJjZSBhbHJl YWR5IHNvIHJlc2V0IGl0ICovCisgICAgaWYgKCBwbHRfc3JjLmNvdW50ZXJfYml0cyAhPSAwICkK KyAgICAgICAgcmVzZXRfcGxhdGZvcm1fdGltZXIoKTsKKwogICAgIHBsdF9tYXNrID0gKHU2NCl+ MHVsbCA+PiAoNjQgLSBwdHMtPmNvdW50ZXJfYml0cyk7CiAKICAgICBzZXRfdGltZV9zY2FsZSgm cGx0X3NjYWxlLCBwdHMtPmZyZXF1ZW5jeSk7CkBAIC02MDgsNyArNjc2LDggQEAgc3RhdGljIHU2 NCBfX2luaXQgaW5pdF9wbGF0Zm9ybV90aW1lcih2b2lkKQogICAgIHVuc2lnbmVkIGludCBpOwog ICAgIHM2NCByYyA9IC0xOwogCi0gICAgaWYgKCBvcHRfY2xvY2tzb3VyY2VbMF0gIT0gJ1wwJyAp CisgICAgLyogY2xvY2tzb3VyY2U9dHNjIGlzIGluaXRpYWxpemVkIHZpYSBfX2luaXRjYWxscyAo d2hlbiBDUFVzIGFyZSB1cCkuICovCisgICAgaWYgKCAob3B0X2Nsb2Nrc291cmNlWzBdICE9ICdc MCcpICYmIHN0cmNtcChvcHRfY2xvY2tzb3VyY2UsICJ0c2MiKSApCiAgICAgewogICAgICAgICBm b3IgKCBpID0gMDsgaSA8IEFSUkFZX1NJWkUocGx0X3RpbWVycyk7IGkrKyApCiAgICAgICAgIHsK QEAgLTEzNDQsNiArMTQxMywyMiBAQCBzdGF0aWMgdm9pZCB0aW1lX2NhbGlicmF0aW9uX3N0ZF9y ZW5kZXp2b3VzKHZvaWQgKl9yKQogICAgIHRpbWVfY2FsaWJyYXRpb25fcmVuZGV6dm91c190YWls KHIpOwogfQogCisvKgorICogUmVuZGV6dm91cyBmdW5jdGlvbiB1c2VkIHdoZW4gY2xvY2tzb3Vy Y2UgaXMgVFNDIGFuZAorICogbm8gQ1BVIGhvdHBsdWcgd2lsbCBiZSBwZXJmb3JtZWQuCisgKi8K K3N0YXRpYyB2b2lkIHRpbWVfY2FsaWJyYXRpb25fbm9wX3JlbmRlenZvdXModm9pZCAqcnYpCit7 CisgICAgY29uc3Qgc3RydWN0IGNhbGlicmF0aW9uX3JlbmRlenZvdXMgKnIgPSBydjsKKyAgICBz dHJ1Y3QgY3B1X3RpbWVfc3RhbXAgKmMgPSAmdGhpc19jcHUoY3B1X2NhbGlicmF0aW9uKTsKKwor ICAgIGMtPmxvY2FsX3RzYyAgICA9IHItPm1hc3Rlcl90c2Nfc3RhbXA7CisgICAgYy0+bG9jYWxf c3RpbWUgID0gci0+bWFzdGVyX3N0aW1lOworICAgIGMtPm1hc3Rlcl9zdGltZSA9IHItPm1hc3Rl cl9zdGltZTsKKworICAgIHJhaXNlX3NvZnRpcnEoVElNRV9DQUxJQlJBVEVfU09GVElSUSk7Cit9 CisKIHN0YXRpYyB2b2lkICgqdGltZV9jYWxpYnJhdGlvbl9yZW5kZXp2b3VzX2ZuKSh2b2lkICop ID0KICAgICB0aW1lX2NhbGlicmF0aW9uX3N0ZF9yZW5kZXp2b3VzOwogCkBAIC0xMzUzLDYgKzE0 MzgsMTMgQEAgc3RhdGljIHZvaWQgdGltZV9jYWxpYnJhdGlvbih2b2lkICp1bnVzZWQpCiAgICAg ICAgIC5zZW1hcGhvcmUgPSBBVE9NSUNfSU5JVCgwKQogICAgIH07CiAKKyAgICBpZiAoIGNsb2Nr c291cmNlX2lzX3RzYygpICkKKyAgICB7CisgICAgICAgIGxvY2FsX2lycV9kaXNhYmxlKCk7Cisg ICAgICAgIHIubWFzdGVyX3N0aW1lID0gcmVhZF9wbGF0Zm9ybV9zdGltZSgmci5tYXN0ZXJfdHNj X3N0YW1wKTsKKyAgICAgICAgbG9jYWxfaXJxX2VuYWJsZSgpOworICAgIH0KKwogICAgIGNwdW1h c2tfY29weSgmci5jcHVfY2FsaWJyYXRpb25fbWFwLCAmY3B1X29ubGluZV9tYXApOwogCiAgICAg LyogQHdhaXQ9MSBiZWNhdXNlIHdlIG11c3Qgd2FpdCBmb3IgYWxsIGNwdXMgYmVmb3JlIGZyZWVp bmcgQHIuICovCkBAIC0xNDY3LDYgKzE1NTksMzEgQEAgc3RhdGljIHZvaWQgX19pbml0IHRzY19j aGVja193cml0YWJpbGl0eSh2b2lkKQogICAgIGRpc2FibGVfdHNjX3N5bmMgPSAxOwogfQogCitz dGF0aWMgdm9pZCBfX2luaXQgcmVzZXRfcGVyY3B1X3RpbWUodm9pZCAqdW51c2VkKQoreworICAg IHN0cnVjdCBjcHVfdGltZSAqdCA9ICZ0aGlzX2NwdShjcHVfdGltZSk7CisKKyAgICB0LT5zdGFt cC5sb2NhbF90c2MgPSBib290X3RzY19zdGFtcDsKKyAgICB0LT5zdGFtcC5sb2NhbF9zdGltZSA9 IDA7CisgICAgdC0+c3RhbXAubG9jYWxfc3RpbWUgPSBnZXRfc190aW1lX2ZpeGVkKGJvb3RfdHNj X3N0YW1wKTsKKyAgICB0LT5zdGFtcC5tYXN0ZXJfc3RpbWUgPSB0LT5zdGFtcC5sb2NhbF9zdGlt ZTsKK30KKworc3RhdGljIHZvaWQgX19pbml0IHRyeV9wbGF0Zm9ybV90aW1lcl90YWlsKGJvb2wg bGF0ZSkKK3sKKyAgICBpbml0X3RpbWVyKCZwbHRfb3ZlcmZsb3dfdGltZXIsIHBsdF9vdmVyZmxv dywgTlVMTCwgMCk7CisgICAgcGx0X292ZXJmbG93KE5VTEwpOworCisgICAgcGxhdGZvcm1fdGlt ZXJfc3RhbXAgPSBwbHRfc3RhbXA2NDsKKyAgICBzdGltZV9wbGF0Zm9ybV9zdGFtcCA9IE5PVygp OworCisgICAgaWYgKCAhbGF0ZSApCisgICAgICAgIGluaXRfcGVyY3B1X3RpbWUoKTsKKworICAg IGluaXRfdGltZXIoJmNhbGlicmF0aW9uX3RpbWVyLCB0aW1lX2NhbGlicmF0aW9uLCBOVUxMLCAw KTsKKyAgICBzZXRfdGltZXIoJmNhbGlicmF0aW9uX3RpbWVyLCBOT1coKSArIEVQT0NIKTsKK30K KwogLyogTGF0ZSBpbml0IGZ1bmN0aW9uLCBhZnRlciBhbGwgY3B1cyBoYXZlIGJvb3RlZCAqLwog c3RhdGljIGludCBfX2luaXQgdmVyaWZ5X3RzY19yZWxpYWJpbGl0eSh2b2lkKQogewpAQCAtMTQ4 NCw2ICsxNjAxLDMyIEBAIHN0YXRpYyBpbnQgX19pbml0IHZlcmlmeV90c2NfcmVsaWFiaWxpdHko dm9pZCkKICAgICAgICAgICAgIHByaW50aygiVFNDIHdhcnAgZGV0ZWN0ZWQsIGRpc2FibGluZyBU U0NfUkVMSUFCTEVcbiIpOwogICAgICAgICAgICAgc2V0dXBfY2xlYXJfY3B1X2NhcChYODZfRkVB VFVSRV9UU0NfUkVMSUFCTEUpOwogICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKCAhc3RyY21w KG9wdF9jbG9ja3NvdXJjZSwgInRzYyIpICYmCisgICAgICAgICAgICAgICAgICAodHJ5X3BsYXRm b3JtX3RpbWVyKCZwbHRfdHNjKSA+IDApICkKKyAgICAgICAgeworICAgICAgICAgICAgLyoKKyAg ICAgICAgICAgICAqIFBsYXRmb3JtIHRpbWVyIGhhcyBjaGFuZ2VkIGFuZCBDUFUgdGltZSB3aWxs IG9ubHkgYmUgdXBkYXRlZAorICAgICAgICAgICAgICogYWZ0ZXIgd2Ugc2V0IGFnYWluIHRoZSBj YWxpYnJhdGlvbiB0aW1lciwgd2hpY2ggbWVhbnMgd2UgbmVlZCB0bworICAgICAgICAgICAgICog c2VlZCBhZ2FpbiBlYWNoIGxvY2FsIENQVSB0aW1lLiBBdCB0aGlzIHN0YWdlIFRTQyBpcyBrbm93 biB0byBiZQorICAgICAgICAgICAgICogcmVsaWFibGUgaS5lLiBtb25vdG9uaWNhbGx5IGluY3Jl YXNpbmcgYWNyb3NzIGFsbCBDUFVzIHNvIHRoaXMKKyAgICAgICAgICAgICAqIGxldHMgdXMgcmVt b3ZlIHRoZSBza2V3IGJldHdlZW4gcGxhdGZvcm0gdGltZXIgYW5kIFRTQywgc2luY2UKKyAgICAg ICAgICAgICAqIHRoZXNlIGFyZSBub3cgZWZmZWN0aXZlbHkgdGhlIHNhbWUuCisgICAgICAgICAg ICAgKi8KKyAgICAgICAgICAgIG9uX3NlbGVjdGVkX2NwdXMoJmNwdV9vbmxpbmVfbWFwLCByZXNl dF9wZXJjcHVfdGltZSwgTlVMTCwgMSk7CisKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAg KiBXZSB3b24ndCBkbyBDUFUgSG90cGx1ZyBhbmQgVFNDIGNsb2Nrc291cmNlIGlzIGJlaW5nIHVz ZWQgd2hpY2gKKyAgICAgICAgICAgICAqIG1lYW5zIHdlIGhhdmUgYSByZWxpYWJsZSBUU0MsIHBs dXMgd2UgZG9uJ3Qgc3luYyB3aXRoIGFueSBvdGhlcgorICAgICAgICAgICAgICogY2xvY2tzb3Vy Y2Ugc28gbm8gbmVlZCBmb3IgcmVuZGV6dm91cy4KKyAgICAgICAgICAgICAqLworICAgICAgICAg ICAgdGltZV9jYWxpYnJhdGlvbl9yZW5kZXp2b3VzX2ZuID0gdGltZV9jYWxpYnJhdGlvbl9ub3Bf cmVuZGV6dm91czsKKworICAgICAgICAgICAgLyogRmluaXNoIHBsYXRmb3JtIHRpbWVyIHN3aXRj aC4gKi8KKyAgICAgICAgICAgIHRyeV9wbGF0Zm9ybV90aW1lcl90YWlsKHRydWUpOworCisgICAg ICAgICAgICBwcmludGsoIlN3aXRjaGVkIHRvIFBsYXRmb3JtIHRpbWVyICVzIFRTQ1xuIiwKKyAg ICAgICAgICAgICAgICAgICBmcmVxX3N0cmluZyhwbHRfc3JjLmZyZXF1ZW5jeSkpOworICAgICAg ICB9CiAgICAgfQogCiAgICAgcmV0dXJuIDA7CkBAIC0xNTA5LDE1ICsxNjUyLDcgQEAgaW50IF9f aW5pdCBpbml0X3hlbl90aW1lKHZvaWQpCiAgICAgZG9fc2V0dGltZShnZXRfY21vc190aW1lKCks IDAsIE5PVygpKTsKIAogICAgIC8qIEZpbmlzaCBwbGF0Zm9ybSB0aW1lciBpbml0aWFsaXphdGlv bi4gKi8KLSAgICBpbml0X3RpbWVyKCZwbHRfb3ZlcmZsb3dfdGltZXIsIHBsdF9vdmVyZmxvdywg TlVMTCwgMCk7Ci0gICAgcGx0X292ZXJmbG93KE5VTEwpOwotICAgIHBsYXRmb3JtX3RpbWVyX3N0 YW1wID0gcGx0X3N0YW1wNjQ7Ci0gICAgc3RpbWVfcGxhdGZvcm1fc3RhbXAgPSBOT1coKTsKLQot ICAgIGluaXRfcGVyY3B1X3RpbWUoKTsKLQotICAgIGluaXRfdGltZXIoJmNhbGlicmF0aW9uX3Rp bWVyLCB0aW1lX2NhbGlicmF0aW9uLCBOVUxMLCAwKTsKLSAgICBzZXRfdGltZXIoJmNhbGlicmF0 aW9uX3RpbWVyLCBOT1coKSArIEVQT0NIKTsKKyAgICB0cnlfcGxhdGZvcm1fdGltZXJfdGFpbChm YWxzZSk7CiAKICAgICByZXR1cm4gMDsKIH0KQEAgLTE1MzEsNiArMTY2Niw3IEBAIHZvaWQgX19p bml0IGVhcmx5X3RpbWVfaW5pdCh2b2lkKQogCiAgICAgcHJlaW5pdF9waXQoKTsKICAgICB0bXAg PSBpbml0X3BsYXRmb3JtX3RpbWVyKCk7CisgICAgcGx0X3RzYy5mcmVxdWVuY3kgPSB0bXA7CiAK ICAgICBzZXRfdGltZV9zY2FsZSgmdC0+dHNjX3NjYWxlLCB0bXApOwogICAgIHQtPnN0YW1wLmxv Y2FsX3RzYyA9IGJvb3RfdHNjX3N0YW1wOwpAQCAtMTc3OSw2ICsxOTE1LDExIEBAIHZvaWQgcHZf c29mdF9yZHRzYyhzdHJ1Y3QgdmNwdSAqdiwgc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MsIGlu dCByZHRzY3ApCiAgICAgICAgICAgICAgKGQtPmFyY2gudHNjX21vZGUgPT0gVFNDX01PREVfUFZS RFRTQ1ApID8gZC0+YXJjaC5pbmNhcm5hdGlvbiA6IDA7CiB9CiAKK2Jvb2wgY2xvY2tzb3VyY2Vf aXNfdHNjKHZvaWQpCit7CisgICAgcmV0dXJuIHBsdF9zcmMucmVhZF9jb3VudGVyID09IHJlYWRf dHNjOworfQorCiBpbnQgaG9zdF90c2NfaXNfc2FmZSh2b2lkKQogewogICAgIHJldHVybiBib290 X2NwdV9oYXMoWDg2X0ZFQVRVUkVfVFNDX1JFTElBQkxFKTsKZGlmZiAtLWdpdCBhL3hlbi9pbmNs dWRlL2FzbS14ODYvdGltZS5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni90aW1lLmgKaW5kZXggOTcx ODgzYS4uNmQ3MDRiNCAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni90aW1lLmgKKysr IGIveGVuL2luY2x1ZGUvYXNtLXg4Ni90aW1lLmgKQEAgLTY5LDYgKzY5LDcgQEAgdm9pZCB0c2Nf Z2V0X2luZm8oc3RydWN0IGRvbWFpbiAqZCwgdWludDMyX3QgKnRzY19tb2RlLCB1aW50NjRfdCAq ZWxhcHNlZF9uc2VjLAogCiB2b2lkIGZvcmNlX3VwZGF0ZV92Y3B1X3N5c3RlbV90aW1lKHN0cnVj dCB2Y3B1ICp2KTsKIAorYm9vbCBjbG9ja3NvdXJjZV9pc190c2Modm9pZCk7CiBpbnQgaG9zdF90 c2NfaXNfc2FmZSh2b2lkKTsKIHZvaWQgY3B1aWRfdGltZV9sZWFmKHVpbnQzMl90IHN1Yl9pZHgs IHVpbnQzMl90ICplYXgsIHVpbnQzMl90ICplYngsCiAgICAgICAgICAgICAgICAgICAgICB1aW50 MzJfdCAqZWN4LCB1aW50MzJfdCAqZWR4KTsKLS0gCjIuMS40CgoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4t ZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==