From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [Patch] x86/HVM: Fix RTC interrupt modelling Date: Mon, 10 Feb 2014 11:17:48 +0000 Message-ID: <1392031068-21943-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: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Xen-devel Cc: Keir Fraser , George Dunlap , Andrew Cooper , Tim Deegan , Jan Beulich , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= List-Id: xen-devel@lists.xenproject.org VGhpcyByZXZlcnRzIGxhcmdlIGFtb3VudHMgb2Y6CiAgOTYwNzMyN2FiYmQzZTc3YmRlNmNjN2I1 MzI3ZjNlZmQ3ODFmYzA2ZQogICAgIng4Ni9IVk06IHByb3Blcmx5IGhhbmRsZSBSVEMgcGVyaW9k aWMgdGltZXIgZXZlbiB3aGVuICFSVENfUElFIgogIDYyMGQ1ZGFkNTQwMDhlNDA3OThjNGEwYzQz MjJhZWYyNzRjMzZmYTMKICAgICJ4ODYvSFZNOiBhc3NvcnRlZCBSVEMgZW11bGF0aW9uIGFkanVz dG1lbnRzIgoKYW5kIGJ5IGV4dGVudHNpb246CiAgZjMzNDdmNTIwY2I0ZDhhYTQ1NjYxODJiMDEz YzY3NThkODBjYmU4OAogICAgIng4Ni9IVk06IGFkanVzdCBJUlEgKGRlLSlhc3NlcnRpb24iCiAg YzJmNzljNDY0ODQ5ZTVmNzk2YWE5ZDFkMGYyNmZlMzU2YWJkMWExYQogICAgIng4Ni9IVk06IGZp eCBwcm9jZXNzaW5nIG9mIFJUQyBSRUdfQiB3cml0ZXMiCiAgNTI3ODI0ZjQxZjVmYWM5Y2JhM2Q0 NDQxYjJlNzNkMzExOGQ5ODgzNwogICAgIng4Ni9odm06IENlbnRyYWxpemUgYW5kIHNpbXBsaWZ5 IHRoZSBSVEMgSVJRIGxvZ2ljLiIKClRoZSBjdXJyZW50IGNvZGUgaGFzIGEgcGF0aG9sb2dpY2Fs IGNhc2UsIHRpY2tsZWQgYnkgdGhlIGFjY2VzcyBwYXR0ZXJuIG9mCldpbmRvd3MgMjAwMyBTZXJ2 ZXIgU1AyLiAgT2NjYXNvbmFsbHkgb24gYm9vdCAod2hpY2ggSSBwcmVzdW1lIGlzIGR1cmluZyBh CnRpbWUgY2FsaWJyYXRpb24gYWdhaW5zdCB0aGUgUlRDIFBlcmlvZGljIFRpbWVyKSwgV2luZG93 cyBnZXRzIHN0dWNrIGluIGFuCmluZmluaXRlIGxvb3AgcmVhZGluZyBSVEMgUkVHX0MuICBUaGlz IGFmZmVjdHMgMzIgYW5kIDY0IGJpdCBndWVzdHMuCgpJbiB0aGUgcGF0aG9sb2dpY2FsIGNhc2Us IHRoZSBWTSBzdGF0ZSBsb29rcyBsaWtlIHRoaXM6CiAgKiBSVEM6IDY0SHogcGVyaW9kLCBwZXJp b2RpYyBpbnRlcnJ1cHRzIGVuYWJsZWQKICAqIFJUQ19JUlEgaW4gSU9BUElDIGFzIHZlY3RvciAw eGQxLCBlZGdlIHRyaWdnZXJlZCwgbm90IHBlbmRpbmcKICAqIHZlY3RvciAweGQxIHNldCBpbiBM QVBJQyBJUlIgYW5kIElTUiwgVFBSIGF0IDB4ZDAKICAqIFJlYWRzIGZyb20gUkVHX0MgcmV0dXJu ICdSVENfUEYgfCBSVENfSVJRRicKCldpdGggYW4gaW50c3RydW1lbnRlZCBYZW4sIGR1bXBpbmcg dGhlIHBlcmlvZGljIHRpbWVycyB3aXRoIGEgZ3Vlc3QgaW4gdGhpcwpzdGF0ZSBzaG93cyBhIHNp bmdsZSB0aW1lciB3aXRoIHB0LT5pcnFfaXNzdWVkPTEgYW5kIHB0LT5wZW5kaW5nX2ludHJfbnI9 Mi4KCldpbmRvd3MgaXMgcHJlc3VtYWJseSB3YWl0aW5nIGZvciByZWFkcyBvZiBSRUdfQyB0byBk cm9wIHRvIDAsIGFuZCByZWFkaW5nClJFR19DIGNsZWFycyB0aGUgdmFsdWUgZWFjaCB0aW1lIGlu IHRoZSBlbXVsYXRlZCBSVEMuICBIb3dldmVyOgoKICAqIHtzdm0sdm14fV9pbnRyX2Fzc2lzdCgp IGNhbGxzIHB0X3VwZGF0ZV9pcnEoKSB1bmNvbmRpdGlvbmFsbHkuCiAgKiBwdF91cGRhdGVfaXJx KCkgYWx3YXlzIGZpbmRzIHRoZSBSVEMgYXMgZWFybGllc3RfcHQuCiAgKiBydGNfcGVyaW9kaWNf aW50ZXJydXB0KCkgdW5jb25kaXRpb25hbGx5IHNldHMgUlRDX1BGIGluIG5vX2FjayBtb2RlLiAg SXQKICAgIHJldHVybnMgdHJ1ZSwgaW5kaWNhdGluZyB0aGF0IHB0X3VwZGF0ZV9pcnEoKSBzaG91 bGQgcmVhbGx5IGluamVjdCB0aGUKICAgIGludGVycnVwdC4KICAqIHB0X3VwZGF0ZV9pcnEoKSBk ZWNpZGVzIHRoYXQgaXQgZG9lc24ndCBuZWVkIHRvIGZha2UgdXAgcGFydCBvZgogICAgcHRfaW50 cl9wb3N0KCkgYmVjYXVzZSB0aGlzIGlzIGEgcmVhbCBpbnRlcnJ1cHQuCiAgKiB7c3ZtLHZteH1f aW50cl9hc3Npc3QoKSBjYW4ndCBpbmplY3QgdGhlIGludGVycnVwdCBhcyBpdCBpcyBhbHJlYWR5 CiAgICBwZW5kaW5nLCBzbyBleGl0cyBlYXJseSB3aXRob3V0IGNhbGxpbmcgcHRfaW50cl9wb3N0 KCkuCgpUaGUgdW5kZXJseWluZyBwcm9ibGVtIGhlcmUgY29tZXMgYmVjYXVzZSB0aGUgQUYgYW5k IFVGIGJpdHMgb2YgUlRDIGludGVycnVwdApzdGF0ZSBpcyBtb2RlbGxlZCBieSB0aGUgUlRDIGNv ZGUsIGJ1dCB0aGUgUEYgaXMgbW9kZWxsZWQgYnkgdGhlIHB0IGNvZGUuICBUaGUKcm9vdCBjYXVz ZSBvZiB3aW5kb3dzIGluZmluaXRlIGxvb3AgaXMgdGhhdCBSVENfUEYgaXMgYmVpbmcgcmUtc2V0 IG9uIHZtZW50cnkKYmVmb3JlIHRoZSBpbnRlcnJ1cHQgbG9naWMgaGFzIHdvcmtlZCBvdXQgdGhh dCBpdCBjYW4ndCBhY3R1YWxseSBpbmplY3QgYW4gUlRDCmludGVycnVwdCwgY2F1c2luZyBXaW5k b3dzIHRvIGVycm9uaW91c2x5IHJlYWQgKFJUQ19QRnxSVENfSVJRRikgd2hlbiBpdApzaG91bGQg YmUgcmVhZGluZyAwLgoKVGhpcyBwYXRjaCByZXZlcnRzIHRoZSBSVENfUEYgbG9naWMgaGFuZGxp bmcgdG8gaXRzIGZvcm1lciBzdGF0ZSwgd2hlcmVieQpydGNfcGVyaW9kaWNfY2IoKSBpcyBjYWxs ZWQgc3RyaWN0bHkgd2hlbiB0aGUgcGVyaW9kaWMgdGltZXIgbG9naWMgaGFzCnN1Y2Nlc3NmdWxs eSBpbmplY3RlZCBhIHBlcmlvZGljIGludGVycnVwdC4gIEluIGRvaW5nIHNvLCBpdCBpcyBpbXBv cnRhbnQgdGhhdAp0aGUgUlRDIGNvZGUgaXRzZWxmIG5ldmVyIGRpcmVjdGx5IHRyaWdnZXJzIGFu IGludGVycnVwdCBmb3IgdGhlIHBlcmlvZGljCnRpbWVyIChvdGhlciB0aGFuIHRoZSBjYXNlIHdo ZW4gc2V0dGluZyBSRUdfQi5QSUUsIHdoZXJlIHRoZSBwdCBjb2RlIHdpbGwgaGF2ZQpkcm9wcGVk IHRoZSBpbnRlcnJ1cHQpLgoKU2lnbmVkLW9mZi1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNv b3BlcjNAY2l0cml4LmNvbT4KU2lnbmVkLW9mZi1ieTogVGltIERlZWdhbiA8dGltQHhlbi5vcmc+ CkNDOiBLZWlyIEZyYXNlciA8a2VpckB4ZW4ub3JnPgpDQzogSmFuIEJldWxpY2ggPEpCZXVsaWNo QHN1c2UuY29tPgpDQzogR2VvcmdlIER1bmxhcCA8Z2VvcmdlLmR1bmxhcEBldS5jaXRyaXguY29t PgpDQzogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+Ci0tLQoKSSBzdGls bCBkb250IGtub3cgZXhhY3RseSB3aGF0IGNvbmRpdGlvbiBjYXVzZXMgd2luZG93cyB0byB0aWNr bGUgdGhpcwpiZWhhdm91ci4gIEl0IGlzIHNlZW4gYWJvdXQgMSBvciAyIHRpbWVzIGluIDkgdGVz dHMgcnVubmluZyBhIDEyIGhvdXIgVk0KbGlmZWN5Y2xlIHRlc3QuICBPdmVyIHRoZSB3ZWVrZW5k LCAxMDAgb2YgdGhlc2UgdGVzdHMgaGF2ZSBwYXNzZWQgd2l0aG91dCBhCnNpbmdsZSByZW9jY3Vy ZW5jZSBvZiB0aGUgaW5maW5pdGUgbG9vcC4gIFRoZSBjaGFuZ2UgaGFzIGFsc28gcGFzc2VkIGEg d2luZG93cwpleHRlbmRlZCByZWdyZXNzaW9uIHRlc3QsIHNvIGl0IHdvdWxkIGFwcGVhciB0aGF0 IG90aGVyIHZlcnNpb25zIG9mIHdpbmRvd3MKYXJlIHN0aWxsIGZpbmUgd2l0aCB0aGUgY2hhbmdl LgoKUm9nZXI6IGFzIHRoaXMgY2F1c2VkIGlzc3VlcyBmb3IgRnJlZUJTRCwgd291bGQgeW91IG1p bmQgdGVzdGluZyBpdCBhZ2FpbgpwbGVhc2U/CgpHZW9yZ2U6IFJlZ2FyZGluZyA0LjQgLSBJIHJl cXVlc3QgYSByZWxlYXNlIGFjay4gIEhvd2V2ZXIsIHRoaXMgaXMgcXVpdGUgYSBiaWcKYW5kIGNv bXBsaWNhdGVkIHBhdGNoOyBpdCB0b29rIFRpbSBhbmQgbXlzZWxmIHNldmVyYWwgaG91cnMgdG8g d3JpdGUsIGV2ZW4KZ2l2ZW4gYW4gdW5kZXJzdGFuZGluZyBvZiB0aGUgcGF0aGFsb2dpY2FsIGNh c2UuICBIYXZpbmcgc2FpZCB0aGF0LCBhYm91dCBoYWxmCnRoZSBwYXRjaCBpcyBqdXN0IHJldmVy c2lvbnMgKGxpc3RlZCBhYm92ZSkgd2l0aCB0aGUgb3RoZXIgaGFsZiBiZWluZyBicmFuZApuZXcg bG9naWMuCgpJbiBzdW1hcnk6CiAgKiBBcyBYZW4gY3VycmVudGx5IHN0YW5kcywgdzJrMyBTUDIg KHN0aWxsIHN1cHBvcnRlZCkgaXMgbGlhYmxlIHRvIGZhbGwgaW50bwogICAgYW4gaW5maW5pdGUg bG9vcCBvbiBib290LCBiZWNhdXNlIG9mIGEgYnVnIGluIFhlbidzIGVtdWxhdGlvbiBvZiB0aGUg UlRDLgogICAgT3RoZXIgZ3Vlc3RzIHJpc2sgdGhlIHNhbWUgaW5maW5pdGUgbG9vcC4KICAqIFRo ZXJlIGlzIGEgcmlzayB0aGF0IHNvbWUgb2YgdGhlIGxvZ2ljIGlzIG5vdCBxdWl0ZSBjb3JyZWN0 OyB0aGUgUlRDCiAgICBlbXVsYXRpb24gaGFzIHByb3ZlZCB0cmlja3kgdGltZSBhbmQgdGltZSBh Z2Fpbi4KICAqIFRoZSByZXN1bHRzIGZyb20gWGVuUlQgc3VnZ2VzdCB0aGF0IHRoZSBuZXcgZW11 bGF0aW9uIGlzIGJldHRlciB0aGFuIHRoZQogICAgb2xkLgotLS0KIHhlbi9hcmNoL3g4Ni9odm0v cnRjLmMgfCAgIDk0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0t LS0tLQogeGVuL2FyY2gveDg2L2h2bS92cHQuYyB8ICAgNTAgKysrLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgNjMgaW5zZXJ0aW9ucygrKSwgODEgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9ydGMuYyBiL3hlbi9hcmNoL3g4Ni9odm0v cnRjLmMKaW5kZXggY2RlZGVmZS4uZWJlYjY3NCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2 bS9ydGMuYworKysgYi94ZW4vYXJjaC94ODYvaHZtL3J0Yy5jCkBAIC01OSw0OCArNTksNzggQEAg c3RhdGljIHZvaWQgcnRjX3NldF90aW1lKFJUQ1N0YXRlICpzKTsKIHN0YXRpYyBpbmxpbmUgaW50 IGZyb21fYmNkKFJUQ1N0YXRlICpzLCBpbnQgYSk7CiBzdGF0aWMgaW5saW5lIGludCBjb252ZXJ0 X2hvdXIoUlRDU3RhdGUgKnMsIGludCBob3VyKTsKIAotc3RhdGljIHZvaWQgcnRjX3VwZGF0ZV9p cnEoUlRDU3RhdGUgKnMpCisvKgorICogU2VuZCBhbiBlZGdlIG9uIHRoZSBSVEMgSVNBIElSUSBs aW5lLiAgVGhlIFJUQyBzcGVjIHN0YXRlcyB0aGF0IGl0IHNob3VsZAorICogYmUgYSBsaW5lIGxl dmVsIGludGVycnVwdCwgYnV0IHRoZSBQSUlYMyBzdGF0ZXMgdGhhdCBpdCBtdXN0IGJlIGVkZ2UK KyAqIHRyaWdnZXJlZC4gIFdlIG1vZGVsIHRoZSBSVEMgdXNpbmcgZWRnZSBzZW1hbnRpY3MuCisg Ki8KK3N0YXRpYyB2b2lkIHJ0Y190b2dnbGVfaXJxKFJUQ1N0YXRlICpzKQogeworICAgIGh2bV9p c2FfaXJxX2RlYXNzZXJ0KHZydGNfZG9tYWluKHMpLCBSVENfSVJRKTsKKyAgICBodm1faXNhX2ly cV9hc3NlcnQodnJ0Y19kb21haW4ocyksIFJUQ19JUlEpOworfQorCitzdGF0aWMgdm9pZCBydGNf dXBkYXRlX3JlZ2IoUlRDU3RhdGUgKnMsIHVpbnQ4X3QgbmV3X2IpCit7CisgICAgdWludDhfdCBu ZXdfYyA9IHMtPmh3LmNtb3NfZGF0YVtSVENfUkVHX0NdICYgflJUQ19JUlFGOworCiAgICAgQVNT RVJUKHNwaW5faXNfbG9ja2VkKCZzLT5sb2NrKSk7CiAKLSAgICBpZiAoIHJ0Y19tb2RlX2lzKHMs IHN0cmljdCkgJiYgKHMtPmh3LmNtb3NfZGF0YVtSVENfUkVHX0NdICYgUlRDX0lSUUYpICkKLSAg ICAgICAgcmV0dXJuOworICAgIGlmICggbmV3X2IgJiBuZXdfYyAmIChSVENfUEYgfCBSVENfQUYg fCBSVENfVUYpICkKKyAgICAgICAgbmV3X2MgfD0gUlRDX0lSUUY7CiAKLSAgICAvKiBJUlEgaXMg cmFpc2VkIGlmIGFueSBzb3VyY2UgaXMgYm90aCByYWlzZWQgJiBlbmFibGVkICovCi0gICAgaWYg KCAhKHMtPmh3LmNtb3NfZGF0YVtSVENfUkVHX0JdICYKLSAgICAgICAgICAgcy0+aHcuY21vc19k YXRhW1JUQ19SRUdfQ10gJgotICAgICAgICAgICAoUlRDX1BGIHwgUlRDX0FGIHwgUlRDX1VGKSkg KQotICAgICAgICByZXR1cm47CisgICAgcy0+aHcuY21vc19kYXRhW1JUQ19SRUdfQl0gPSBuZXdf YjsKKyAgICBzLT5ody5jbW9zX2RhdGFbUlRDX1JFR19DXSA9IG5ld19jOwogCi0gICAgcy0+aHcu Y21vc19kYXRhW1JUQ19SRUdfQ10gfD0gUlRDX0lSUUY7Ci0gICAgaWYgKCBydGNfbW9kZV9pcyhz LCBub19hY2spICkKLSAgICAgICAgaHZtX2lzYV9pcnFfZGVhc3NlcnQodnJ0Y19kb21haW4ocyks IFJUQ19JUlEpOwotICAgIGh2bV9pc2FfaXJxX2Fzc2VydCh2cnRjX2RvbWFpbihzKSwgUlRDX0lS USk7CisgICAgaWYgKCBuZXdfYyAmIFJUQ19JUlFGICkKKyAgICAgICAgcnRjX3RvZ2dsZV9pcnEo cyk7Cit9CisKKy8qCisgKiBTdHJpY3RseSBvbmx5IGNhbGxlZCB3aGVuIHNldHRpbmcgUkVHX0Mu e0FGLFVGfS4gIFRoZSBsb2dpYyBkZXBlbmQgb24KKyAqIGtub3dpbmcgdGhhdCBSRUJfQiBpcyB1 bmNoYW5nZWQsIGFuZCBSRUdfQyBkb2VzIG5vdCBoYXZlIGEgZmFsbGluZyBlZGdlLgorICogJ2V2 ZW50JyBzaG91bGQgYmUgUlRDX0FGIG9yIFJUQ19VRi4KKyAqLworc3RhdGljIHZvaWQgcnRjX2ly cV9ldmVudChSVENTdGF0ZSAqcywgdWludDhfdCBldmVudCkKK3sKKyAgICB1aW50OF90IGIgPSBz LT5ody5jbW9zX2RhdGFbUlRDX1JFR19CXTsKKyAgICB1aW50OF90IG9sZF9jID0gcy0+aHcuY21v c19kYXRhW1JUQ19SRUdfQ107CisgICAgdWludDhfdCBuZXdfYyA9IG9sZF9jICYgflJUQ19JUlFG OworCisgICAgQVNTRVJUKHNwaW5faXNfbG9ja2VkKCZzLT5sb2NrKSk7CisKKyAgICBpZiAoIGIg JiBuZXdfYyAmIChSVENfUEYgfCBSVENfQUYgfCBSVENfVUYpICkKKyAgICAgICAgbmV3X2MgfD0g UlRDX0lSUUY7CisKKyAgICBpZiAoIChiICYgZXZlbnQpICYmCisgICAgICAgICAocnRjX21vZGVf aXMocywgbm9fYWNrKSB8fCAhKG9sZF9jICYgUlRDX0lSUUYpKSApCisgICAgICAgIHJ0Y190b2dn bGVfaXJxKHMpOworCisgICAgcy0+aHcuY21vc19kYXRhW1JUQ19SRUdfQ10gPSBuZXdfYzsKIH0K IAotYm9vbF90IHJ0Y19wZXJpb2RpY19pbnRlcnJ1cHQodm9pZCAqb3BhcXVlKQorLyoKKyAqIENh bGxiYWNrIGZyb20gdGhlIHBlcmlvZGljIHRpbWVyIHN0YXRlIG1hY2hpbmUsIGluZGljYXRpbmcg dGhhdCBhIHBlcmlvZGljCisgKiB0aW1lciBpbnRlcnJ1cHQgaGFzIGJlZW4gaW5qZWN0ZWQgdG8g dGhlIGd1ZXN0IG9uIG91ciBiZWhhbGYuCisgKi8KK3N0YXRpYyB2b2lkIHJ0Y19wZXJpb2RpY19j YihzdHJ1Y3QgdmNwdSAqdiwgdm9pZCAqb3BhcXVlKQogewogICAgIFJUQ1N0YXRlICpzID0gb3Bh cXVlOwotICAgIGJvb2xfdCByZXQ7CiAKICAgICBzcGluX2xvY2soJnMtPmxvY2spOwotICAgIHJl dCA9IHJ0Y19tb2RlX2lzKHMsIG5vX2FjaykgfHwgIShzLT5ody5jbW9zX2RhdGFbUlRDX1JFR19D XSAmIFJUQ19JUlFGKTsKLSAgICBpZiAoIHJ0Y19tb2RlX2lzKHMsIG5vX2FjaykgfHwgIShzLT5o dy5jbW9zX2RhdGFbUlRDX1JFR19DXSAmIFJUQ19QRikgKQotICAgIHsKLSAgICAgICAgcy0+aHcu Y21vc19kYXRhW1JUQ19SRUdfQ10gfD0gUlRDX1BGOwotICAgICAgICBydGNfdXBkYXRlX2lycShz KTsKLSAgICB9Ci0gICAgZWxzZSBpZiAoICsrKHMtPnB0X2RlYWRfdGlja3MpID49IDEwICkKKwor ICAgIGlmICggIXJ0Y19tb2RlX2lzKHMsIG5vX2FjaykgJiYKKyAgICAgICAgIChzLT5ody5jbW9z X2RhdGFbUlRDX1JFR19DXSAmIFJUQ19QRikgJiYKKyAgICAgICAgICgrKyhzLT5wdF9kZWFkX3Rp Y2tzKSA+PSAxMCkgKQogICAgIHsKICAgICAgICAgLyogVk0gaXMgaWdub3JpbmcgaXRzIFJUQzsg bm8gcG9pbnQgaW4gcnVubmluZyB0aGUgdGltZXIgKi8KICAgICAgICAgZGVzdHJveV9wZXJpb2Rp Y190aW1lKCZzLT5wdCk7CiAgICAgICAgIHMtPnB0X2NvZGUgPSAwOwogICAgIH0KLSAgICBpZiAo ICEocy0+aHcuY21vc19kYXRhW1JUQ19SRUdfQ10gJiBSVENfSVJRRikgKQotICAgICAgICByZXQg PSAwOwotICAgIHNwaW5fdW5sb2NrKCZzLT5sb2NrKTsKIAotICAgIHJldHVybiByZXQ7CisgICAg LyogU3BlY2lmaWNhbGx5IG5vdCByYWlzaW5nIHRoZSBpcnEgYXMgaXQgaGFzIGFscmVhZHkgYmVl biBkb25lIGZvciB1cyAqLworICAgIHMtPmh3LmNtb3NfZGF0YVtSVENfUkVHX0NdIHw9IFJUQ19Q RiB8IFJUQ19JUlFGOworICAgIHNwaW5fdW5sb2NrKCZzLT5sb2NrKTsKIH0KIAogLyogRW5hYmxl L2NvbmZpZ3VyZS9kaXNhYmxlIHRoZSBwZXJpb2RpYyB0aW1lciBiYXNlZCBvbiB0aGUgUlRDX1BJ RSBhbmQKQEAgLTEzNSw3ICsxNjUsNyBAQCBzdGF0aWMgdm9pZCBydGNfdGltZXJfdXBkYXRlKFJU Q1N0YXRlICpzKQogICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgZGVs dGEgPSBwZXJpb2QgLSAoKE5PVygpIC0gcy0+c3RhcnRfdGltZSkgJSBwZXJpb2QpOwogICAgICAg ICAgICAgICAgIGNyZWF0ZV9wZXJpb2RpY190aW1lKHYsICZzLT5wdCwgZGVsdGEsIHBlcmlvZCwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSVENfSVJRLCBOVUxMLCBzKTsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSVENfSVJRLCBydGNfcGVyaW9k aWNfY2IsIHMpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K QEAgLTIxMSw5ICsyNDEsOCBAQCBzdGF0aWMgdm9pZCBydGNfdXBkYXRlX3RpbWVyMih2b2lkICpv cGFxdWUpCiAgICAgc3Bpbl9sb2NrKCZzLT5sb2NrKTsKICAgICBpZiAoIShzLT5ody5jbW9zX2Rh dGFbUlRDX1JFR19CXSAmIFJUQ19TRVQpKQogICAgIHsKLSAgICAgICAgcy0+aHcuY21vc19kYXRh W1JUQ19SRUdfQ10gfD0gUlRDX1VGOwogICAgICAgICBzLT5ody5jbW9zX2RhdGFbUlRDX1JFR19B XSAmPSB+UlRDX1VJUDsKLSAgICAgICAgcnRjX3VwZGF0ZV9pcnEocyk7CisgICAgICAgIHJ0Y19p cnFfZXZlbnQocywgUlRDX1VGKTsKICAgICAgICAgY2hlY2tfdXBkYXRlX3RpbWVyKHMpOwogICAg IH0KICAgICBzcGluX3VubG9jaygmcy0+bG9jayk7CkBAIC00MDIsOCArNDMxLDcgQEAgc3RhdGlj IHZvaWQgcnRjX2FsYXJtX2NiKHZvaWQgKm9wYXF1ZSkKICAgICBzcGluX2xvY2soJnMtPmxvY2sp OwogICAgIGlmICghKHMtPmh3LmNtb3NfZGF0YVtSVENfUkVHX0JdICYgUlRDX1NFVCkpCiAgICAg ewotICAgICAgICBzLT5ody5jbW9zX2RhdGFbUlRDX1JFR19DXSB8PSBSVENfQUY7Ci0gICAgICAg IHJ0Y191cGRhdGVfaXJxKHMpOworICAgICAgICBydGNfaXJxX2V2ZW50KHMsIFJUQ19BRik7CiAg ICAgICAgIGFsYXJtX3RpbWVyX3VwZGF0ZShzKTsKICAgICB9CiAgICAgc3Bpbl91bmxvY2soJnMt PmxvY2spOwpAQCAtNDg0LDEyICs1MTIsMTEgQEAgc3RhdGljIGludCBydGNfaW9wb3J0X3dyaXRl KHZvaWQgKm9wYXF1ZSwgdWludDMyX3QgYWRkciwgdWludDMyX3QgZGF0YSkKICAgICAgICAgICAg IGlmICggb3JpZyAmIFJUQ19TRVQgKQogICAgICAgICAgICAgICAgIHJ0Y19zZXRfdGltZShzKTsK ICAgICAgICAgfQotICAgICAgICBzLT5ody5jbW9zX2RhdGFbUlRDX1JFR19CXSA9IGRhdGE7CiAg ICAgICAgIC8qCiAgICAgICAgICAqIElmIHRoZSBpbnRlcnJ1cHQgaXMgYWxyZWFkeSBzZXQgd2hl biB0aGUgaW50ZXJydXB0IGJlY29tZXMKICAgICAgICAgICogZW5hYmxlZCwgcmFpc2UgYW4gaW50 ZXJydXB0IGltbWVkaWF0ZWx5LgogICAgICAgICAgKi8KLSAgICAgICAgcnRjX3VwZGF0ZV9pcnEo cyk7CisgICAgICAgIHJ0Y191cGRhdGVfcmVnYihzLCBkYXRhKTsKICAgICAgICAgaWYgKCAoZGF0 YSAmIFJUQ19QSUUpICYmICEob3JpZyAmIFJUQ19QSUUpICkKICAgICAgICAgICAgIHJ0Y190aW1l cl91cGRhdGUocyk7CiAgICAgICAgIGlmICggKGRhdGEgXiBvcmlnKSAmIFJUQ19TRVQgKQpAQCAt NjQ3LDkgKzY3NCw2IEBAIHN0YXRpYyB1aW50MzJfdCBydGNfaW9wb3J0X3JlYWQoUlRDU3RhdGUg KnMsIHVpbnQzMl90IGFkZHIpCiAgICAgY2FzZSBSVENfUkVHX0M6CiAgICAgICAgIHJldCA9IHMt Pmh3LmNtb3NfZGF0YVtzLT5ody5jbW9zX2luZGV4XTsKICAgICAgICAgcy0+aHcuY21vc19kYXRh W1JUQ19SRUdfQ10gPSAweDAwOwotICAgICAgICBpZiAoIChyZXQgJiBSVENfSVJRRikgJiYgIXJ0 Y19tb2RlX2lzKHMsIG5vX2FjaykgKQotICAgICAgICAgICAgaHZtX2lzYV9pcnFfZGVhc3NlcnQo ZCwgUlRDX0lSUSk7Ci0gICAgICAgIHJ0Y191cGRhdGVfaXJxKHMpOwogICAgICAgICBjaGVja191 cGRhdGVfdGltZXIocyk7CiAgICAgICAgIGFsYXJtX3RpbWVyX3VwZGF0ZShzKTsKICAgICAgICAg cnRjX3RpbWVyX3VwZGF0ZShzKTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vdnB0LmMg Yi94ZW4vYXJjaC94ODYvaHZtL3ZwdC5jCmluZGV4IDE5NjFiZGEuLmUxMmU5NDAgMTAwNjQ0Ci0t LSBhL3hlbi9hcmNoL3g4Ni9odm0vdnB0LmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS92cHQuYwpA QCAtMjIsNyArMjIsNiBAQAogI2luY2x1ZGUgPGFzbS9odm0vdnB0Lmg+CiAjaW5jbHVkZSA8YXNt L2V2ZW50Lmg+CiAjaW5jbHVkZSA8YXNtL2FwaWMuaD4KLSNpbmNsdWRlIDxhc20vbWMxNDY4MThy dGMuaD4KIAogI2RlZmluZSBtb2RlX2lzKGQsIG5hbWUpIFwKICAgICAoKGQpLT5hcmNoLmh2bV9k b21haW4ucGFyYW1zW0hWTV9QQVJBTV9USU1FUl9NT0RFXSA9PSBIVk1QVE1fIyNuYW1lKQpAQCAt MjI4LDIzICsyMjcsMTcgQEAgc3RhdGljIHZvaWQgcHRfdGltZXJfZm4odm9pZCAqZGF0YSkKIGlu dCBwdF91cGRhdGVfaXJxKHN0cnVjdCB2Y3B1ICp2KQogewogICAgIHN0cnVjdCBsaXN0X2hlYWQg KmhlYWQgPSAmdi0+YXJjaC5odm1fdmNwdS50bV9saXN0OwotICAgIHN0cnVjdCBwZXJpb2RpY190 aW1lICpwdCwgKnRlbXAsICplYXJsaWVzdF9wdDsKLSAgICB1aW50NjRfdCBtYXhfbGFnOworICAg IHN0cnVjdCBwZXJpb2RpY190aW1lICpwdCwgKnRlbXAsICplYXJsaWVzdF9wdCA9IE5VTEw7Cisg ICAgdWludDY0X3QgbWF4X2xhZyA9IC0xVUxMOwogICAgIGludCBpcnEsIGlzX2xhcGljOwotICAg IHZvaWQgKnB0X3ByaXY7CiAKLSByZXNjYW46CiAgICAgc3Bpbl9sb2NrKCZ2LT5hcmNoLmh2bV92 Y3B1LnRtX2xvY2spOwogCi0gcmVzY2FuX2xvY2tlZDoKLSAgICBlYXJsaWVzdF9wdCA9IE5VTEw7 Ci0gICAgbWF4X2xhZyA9IC0xVUxMOwogICAgIGxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZSAoIHB0 LCB0ZW1wLCBoZWFkLCBsaXN0ICkKICAgICB7CiAgICAgICAgIGlmICggcHQtPnBlbmRpbmdfaW50 cl9uciApCiAgICAgICAgIHsKLSAgICAgICAgICAgIC8qIFJUQyBjb2RlIHRha2VzIGNhcmUgb2Yg ZGlzYWJsaW5nIHRoZSB0aW1lciBpdHNlbGYuICovCi0gICAgICAgICAgICBpZiAoIChwdC0+aXJx ICE9IFJUQ19JUlEgfHwgIXB0LT5wcml2KSAmJiBwdF9pcnFfbWFza2VkKHB0KSApCisgICAgICAg ICAgICBpZiAoIHB0X2lycV9tYXNrZWQocHQpICkKICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAvKiBzdXNwZW5kIHRpbWVyIGVtdWxhdGlvbiAqLwogICAgICAgICAgICAgICAgIGxpc3Rf ZGVsKCZwdC0+bGlzdCk7CkBAIC0yNzAsNDcgKzI2MywxMiBAQCBpbnQgcHRfdXBkYXRlX2lycShz dHJ1Y3QgdmNwdSAqdikKICAgICBlYXJsaWVzdF9wdC0+aXJxX2lzc3VlZCA9IDE7CiAgICAgaXJx ID0gZWFybGllc3RfcHQtPmlycTsKICAgICBpc19sYXBpYyA9IChlYXJsaWVzdF9wdC0+c291cmNl ID09IFBUU1JDX2xhcGljKTsKLSAgICBwdF9wcml2ID0gZWFybGllc3RfcHQtPnByaXY7CiAKICAg ICBzcGluX3VubG9jaygmdi0+YXJjaC5odm1fdmNwdS50bV9sb2NrKTsKIAogICAgIGlmICggaXNf bGFwaWMgKQotICAgICAgICB2bGFwaWNfc2V0X2lycSh2Y3B1X3ZsYXBpYyh2KSwgaXJxLCAwKTsK LSAgICBlbHNlIGlmICggaXJxID09IFJUQ19JUlEgJiYgcHRfcHJpdiApCiAgICAgewotICAgICAg ICBpZiAoICFydGNfcGVyaW9kaWNfaW50ZXJydXB0KHB0X3ByaXYpICkKLSAgICAgICAgICAgIGly cSA9IC0xOwotCi0gICAgICAgIHB0X2xvY2soZWFybGllc3RfcHQpOwotCi0gICAgICAgIGlmICgg aXJxIDwgMCAmJiBlYXJsaWVzdF9wdC0+cGVuZGluZ19pbnRyX25yICkKLSAgICAgICAgewotICAg ICAgICAgICAgLyoKLSAgICAgICAgICAgICAqIFJUQyBwZXJpb2RpYyB0aW1lciBydW5zIHdpdGhv dXQgdGhlIGNvcnJlc3BvbmRpbmcgaW50ZXJydXB0Ci0gICAgICAgICAgICAgKiBiZWluZyBlbmFi bGVkIC0gbmVlZCB0byBtaW1pYyBlbm91Z2ggb2YgcHRfaW50cl9wb3N0KCkgdG8ga2VlcAotICAg ICAgICAgICAgICogdGhpbmdzIGdvaW5nLgotICAgICAgICAgICAgICovCi0gICAgICAgICAgICBl YXJsaWVzdF9wdC0+cGVuZGluZ19pbnRyX25yID0gMDsKLSAgICAgICAgICAgIGVhcmxpZXN0X3B0 LT5pcnFfaXNzdWVkID0gMDsKLSAgICAgICAgICAgIHNldF90aW1lcigmZWFybGllc3RfcHQtPnRp bWVyLCBlYXJsaWVzdF9wdC0+c2NoZWR1bGVkKTsKLSAgICAgICAgfQotICAgICAgICBlbHNlIGlm ICggaXJxID49IDAgJiYgcHRfaXJxX21hc2tlZChlYXJsaWVzdF9wdCkgKQotICAgICAgICB7Ci0g ICAgICAgICAgICBpZiAoIGVhcmxpZXN0X3B0LT5vbl9saXN0ICkKLSAgICAgICAgICAgIHsKLSAg ICAgICAgICAgICAgICAvKiBzdXNwZW5kIHRpbWVyIGVtdWxhdGlvbiAqLwotICAgICAgICAgICAg ICAgIGxpc3RfZGVsKCZlYXJsaWVzdF9wdC0+bGlzdCk7Ci0gICAgICAgICAgICAgICAgZWFybGll c3RfcHQtPm9uX2xpc3QgPSAwOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaXJxID0gLTE7 Ci0gICAgICAgIH0KLQotICAgICAgICAvKiBBdm9pZCBkcm9wcGluZyB0aGUgbG9jayBpZiB3ZSBj YW4uICovCi0gICAgICAgIGlmICggaXJxIDwgMCAmJiB2ID09IGVhcmxpZXN0X3B0LT52Y3B1ICkK LSAgICAgICAgICAgIGdvdG8gcmVzY2FuX2xvY2tlZDsKLSAgICAgICAgcHRfdW5sb2NrKGVhcmxp ZXN0X3B0KTsKLSAgICAgICAgaWYgKCBpcnEgPCAwICkKLSAgICAgICAgICAgIGdvdG8gcmVzY2Fu OworICAgICAgICB2bGFwaWNfc2V0X2lycSh2Y3B1X3ZsYXBpYyh2KSwgaXJxLCAwKTsKICAgICB9 CiAgICAgZWxzZQogICAgIHsKLS0gCjEuNy4xMC40CgoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxA bGlzdHMueGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK