From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chong Li Subject: [PATCH v8 for Xen 4.7 1/4] xen: enable per-VCPU parameter for RTDS Date: Fri, 18 Mar 2016 16:26:22 -0500 Message-ID: <1458336385-2606-2-git-send-email-lichong659@gmail.com> References: <1458336385-2606-1-git-send-email-lichong659@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1458336385-2606-1-git-send-email-lichong659@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: Chong Li , Sisu Xi , george.dunlap@eu.citrix.com, dario.faggioli@citrix.com, Meng Xu , jbeulich@suse.com, lichong659@gmail.com, dgolomb@seas.upenn.edu List-Id: xen-devel@lists.xenproject.org QWRkIFhFTl9ET01DVExfU0NIRURPUF9nZXR2Y3B1aW5mbyBhbmQgX3B1dHZjcHVpbmZvIGh5cGVy Y2FsbHMKdG8gaW5kZXBlbmRlbnRseSBnZXQgYW5kIHNldCB0aGUgc2NoZWR1bGluZyBwYXJhbWV0 ZXJzIG9mIGVhY2gKdkNQVSBvZiBhIGRvbWFpbgoKU2lnbmVkLW9mZi1ieTogQ2hvbmcgTGkgPGNo b25nLmxpQHd1c3RsLmVkdT4KU2lnbmVkLW9mZi1ieTogTWVuZyBYdSA8bWVuZ3h1QGNpcy51cGVu bi5lZHU+ClNpZ25lZC1vZmYtYnk6IFNpc3UgWGkgPHhpc2lzdUBnbWFpbC5jb20+CgotLS0KQ2hh bmdlcyBvbiBQQVRDSCB2NzoKMSkgQSBidWcgaW4gY2FzZSBYRU5fRE9NQ1RMX1NDSEVET1BfZ2V0 aW5mbyAoaW4gWGVuIDQuNikgaXMgZml4ZWQ6ClRoZSBkZWZhdWx0IFBFUklPRCBvciBCVURHRVQg c2hvdWxkIGJlIGRpdmlkZWQgYnkgTUlDUk9TRUNTKDEpLApiZWZvcmUgcmV0dXJuZWQgdG8gdXBw ZXIgY2FsbGVyLgoKMikgSW4gdGhlICpjbnRsKCkgZnVuY3Rpb25zIGluIHNjaGVkX2NyZWRpdC5j IGFuZCBzY2hlZF9jcmVkaXQyLmMsIHJlbW92ZQp0d28gdW5oYW5kbGVkIGNhc2VzIGluICJzd2l0 Y2giLgoKQ2hhbmdlcyBvbiBQQVRDSCB2NjoKMSkgQWRkIGV4cGxhaW4gZm9yIG5yX3ZjcHVzIGlu IHN0cnVjdCB4ZW5fZG9tY3RsX3NjaGVkdWxlcl9vcCwgYmVjYXVzZSBpdCBpcyB1c2VkCmluIGJv dGggSU4gYW5kIE9VVCB3YXlzLgoyKSBSZW1vdmUgdGhlIGNoZWNrIGFuZCB3YXJuaW5nIGZvciB2 Y3B1IHNldHRpbmdzIHdpdGggbG93IGJ1ZGdldCBvciBidWRnZXQuIE1ha2luZyB0aGlzCmZlYXR1 cmUgInBlci1kb21haW4iIG9yICJwZXItb3BlcmF0aW9uIiBpcyBvbmUgb2YgdGhlIGZ1dHVyZSB3 b3JrLgozKSBJbiB0aGUgKmNudGwoKSBmdW5jdGlvbnMgaW4gc2NoZWRfY3JlZGl0LmMgYW5kIHNj aGVkX2NyZWRpdDIuYywgY2hhbmdlIHRoZSAiaWYtZWxzZSIKc3RydWN0dXJlIHRvICJzd2l0Y2gi IHN0cnVjdHVyZS4KNCkgSW4gcnRfZG9tX2NudGwoKSwgdXNlIGNvcHlfdG9fZ3Vlc3QqIGluc3Rl YWQgb2YgX19jb3B5X3RvX2d1ZXN0KiwgYmVjYXVzZSB0aGUgbGF0dGVyIG9uZQpyZXF1aXJlcyBs b2NrIHByb3RlY3Rpb24uCgpDaGFuZ2VzIG9uIFBBVENIIHY1OgoxKSBXaGVuIHByb2Nlc3Npbmcg WEVOX0RPTUNUTF9TQ0hFRE9QX2dldC9wdXR2Y3B1aW5mbywgd2UgZG8KcHJlZW1wdGlvbiBjaGVj ayBpbiBhIHNpbWlsYXIgd2F5IHRvIFhFTl9TWVNDVExfcGNpdG9wb2luZm8KCkNoYW5nZXMgb24g UEFUQ0ggdjQ6CjEpIEFkZCB1aW50MzJfdCB2Y3B1X2luZGV4IHRvIHN0cnVjdCB4ZW5fZG9tY3Rs X3NjaGVkdWxlcl9vcC4KV2hlbiBwcm9jZXNzaW5nIFhFTl9ET01DVExfU0NIRURPUF9nZXQvcHV0 dmNwdWluZm8sIHdlIGNhbGwKaHlwZXJjYWxsX3ByZWVtcHRpb25fY2hlY2sgaW4gY2FzZSB0aGUg Y3VycmVudCBoeXBlcmNhbGwgbGFzdHMKdG9vIGxvbmcuIElmIHdlIGRlY2lkZSB0byBwcmVlbXB0 IHRoZSBjdXJyZW50IGh5cGVyY2FsbCwgd2UgcmVjb3JkCnRoZSBpbmRleCBvZiB0aGUgbW9zdC1y ZWNlbnQgZmluaXNoZWQgdmNwdSBpbnRvIHRoZSB2Y3B1X2luZGV4IG9mCnN0cnVjdCB4ZW5fZG9t Y3RsX3NjaGVkdWxlcl9vcC4gU28gd2hlbiB3ZSByZXN1bWUgdGhlIGh5cGVyY2FsbCBhZnRlcgpw cmVlbXB0aW9uLCB3ZSBzdGFydCBwcm9jZXNzaW5nIGZyb20gdGhlIHBvc2lvbiBzcGVjaWZpZWQg YnkgdmNwdV9pbmRleCwKYW5kIGRvbid0IG5lZWQgdG8gcmVwZWF0IHRoZSB3b3JrIHRoYXQgaGFz IGFscmVhZHkgYmVlbiBkb25lIGluIHRoZQpoeXBlcmNhbGwgYmVmb3JlIHRoZSBwcmVlbXB0aW9u LgooVGhpcyBkZXNpZ24gaXMgYmFzZWQgb24gdGhlIGRvX2dyYW50X3RhYmxlX29wKCkgaW4gZ3Jh bnRfdGFibGUuYykKCjIpIENvZGluZyBzdHlsZSBjaGFuZ2VzCgpDaGFuZ2VzIG9uIFBBVENIIHYz OgoxKSBSZW1vdmUgc3RydWN0IHhlbl9kb21jdGxfc2NoZWRwYXJhbV90LgoKMikgQ2hhbmdlIHN0 cnVjdCB4ZW5fZG9tY3RsX3NjaGVkdWxlcl9vcC4KCjMpIENoZWNrIGlmIHBlcmlvZC9idWRnZXQg aXMgd2l0aGluIGEgdmFsaWRhdGVkIHJhbmdlCgpDaGFuZ2VzIG9uIFBBVENIIHYyOgoxKSBDaGFu Z2Ugc3RydWN0IHhlbl9kb21jdGxfc2NoZWR1bGVyX29wLCBmb3IgdHJhbnNmZXJyaW5nIHBlci12 Y3B1IHBhcmFtZXRlcnMKYmV0d2VlbiBsaWJ4YyBhbmQgaHlwZXJ2aXNvci4KCjIpIEhhbmRsZXIg b2YgWEVOX0RPTUNUTF9TQ0hFRE9QX2dldGluZm8gbm93IGp1c3QgcmV0dXJucyB0aGUgZGVmYXVs dCBidWRnZXQgYW5kCnBlcmlvZCB2YWx1ZXMgb2YgUlREUyBzY2hlZHVsZXIuCgozKSBIYW5kbGVy IG9mIFhFTl9ET01DVExfU0NIRURPUF9nZXR2Y3B1aW5mbyBub3cgY2FuIHJldHVybiBhIHJhbmRv bSBzdWJzZXQgb2YKdGhlIHBhcmFtZXRlcnMgb2YgdGhlIFZDUFVzIG9mIGEgc3BlY2lmaWMgZG9t YWluCgpDQzogPGRhcmlvLmZhZ2dpb2xpQGNpdHJpeC5jb20+CkNDOiA8Z2VvcmdlLmR1bmxhcEBl dS5jaXRyaXguY29tPgpDQzogPGRnb2xvbWJAc2Vhcy51cGVubi5lZHU+CkNDOiA8bWVuZ3h1QGNp cy51cGVubi5lZHU+CkNDOiA8amJldWxpY2hAc3VzZS5jb20+CkNDOiA8bGljaG9uZzY1OUBnbWFp bC5jb20+Ci0tLQogeGVuL2NvbW1vbi9zY2hlZF9jcmVkaXQuYyAgIHwgMTQgKysrLS0tLQogeGVu L2NvbW1vbi9zY2hlZF9jcmVkaXQyLmMgIHwgMTMgKysrKy0tLQogeGVuL2NvbW1vbi9zY2hlZF9y dC5jICAgICAgIHwgOTMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0t LS0tCiB4ZW4vY29tbW9uL3NjaGVkdWxlLmMgICAgICAgfCAxNSArKysrKystLQogeGVuL2luY2x1 ZGUvcHVibGljL2RvbWN0bC5oIHwgNjQgKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLQog NSBmaWxlcyBjaGFuZ2VkLCAxNTcgaW5zZXJ0aW9ucygrKSwgNDIgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEveGVuL2NvbW1vbi9zY2hlZF9jcmVkaXQuYyBiL3hlbi9jb21tb24vc2NoZWRfY3Jl ZGl0LmMKaW5kZXggMGRjZTc5MC4uYjUwNDcwMiAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9zY2hl ZF9jcmVkaXQuYworKysgYi94ZW4vY29tbW9uL3NjaGVkX2NyZWRpdC5jCkBAIC0xMDU0LDE1ICsx MDU0LDEzIEBAIGNzY2hlZF9kb21fY250bCgKICAgICAgKiBsb2NrLiBSdW5xIGxvY2sgbm90IG5l ZWRlZCBhbnl3aGVyZSBpbiBoZXJlLiAqLwogICAgIHNwaW5fbG9ja19pcnFzYXZlKCZwcnYtPmxv Y2ssIGZsYWdzKTsKIAotICAgIGlmICggb3AtPmNtZCA9PSBYRU5fRE9NQ1RMX1NDSEVET1BfZ2V0 aW5mbyApCisgICAgc3dpdGNoICggb3AtPmNtZCApCiAgICAgeworICAgIGNhc2UgWEVOX0RPTUNU TF9TQ0hFRE9QX2dldGluZm86CiAgICAgICAgIG9wLT51LmNyZWRpdC53ZWlnaHQgPSBzZG9tLT53 ZWlnaHQ7CiAgICAgICAgIG9wLT51LmNyZWRpdC5jYXAgPSBzZG9tLT5jYXA7Ci0gICAgfQotICAg IGVsc2UKLSAgICB7Ci0gICAgICAgIEFTU0VSVChvcC0+Y21kID09IFhFTl9ET01DVExfU0NIRURP UF9wdXRpbmZvKTsKLQorICAgICAgICBicmVhazsKKyAgICBjYXNlIFhFTl9ET01DVExfU0NIRURP UF9wdXRpbmZvOgogICAgICAgICBpZiAoIG9wLT51LmNyZWRpdC53ZWlnaHQgIT0gMCApCiAgICAg ICAgIHsKICAgICAgICAgICAgIGlmICggIWxpc3RfZW1wdHkoJnNkb20tPmFjdGl2ZV9zZG9tX2Vs ZW0pICkKQEAgLTEwNzUsNyArMTA3Myw5IEBAIGNzY2hlZF9kb21fY250bCgKIAogICAgICAgICBp ZiAoIG9wLT51LmNyZWRpdC5jYXAgIT0gKHVpbnQxNl90KX4wVSApCiAgICAgICAgICAgICBzZG9t LT5jYXAgPSBvcC0+dS5jcmVkaXQuY2FwOwotCisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6 CisgICAgICAgIHJldHVybiAtRUlOVkFMOwogICAgIH0KIAogICAgIHNwaW5fdW5sb2NrX2lycXJl c3RvcmUoJnBydi0+bG9jaywgZmxhZ3MpOwpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9zY2hlZF9j cmVkaXQyLmMgYi94ZW4vY29tbW9uL3NjaGVkX2NyZWRpdDIuYwppbmRleCAzYzQ5ZmZhLi5jMmRj ZjBmIDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL3NjaGVkX2NyZWRpdDIuYworKysgYi94ZW4vY29t bW9uL3NjaGVkX2NyZWRpdDIuYwpAQCAtMTQyMSwxNCArMTQyMSwxMiBAQCBjc2NoZWQyX2RvbV9j bnRsKAogICAgICAqIHJ1bnEgbG9jayB0byB1cGRhdGUgY3N2Y3MuICovCiAgICAgc3Bpbl9sb2Nr X2lycXNhdmUoJnBydi0+bG9jaywgZmxhZ3MpOwogCi0gICAgaWYgKCBvcC0+Y21kID09IFhFTl9E T01DVExfU0NIRURPUF9nZXRpbmZvICkKKyAgICBzd2l0Y2ggKCBvcC0+Y21kICkKICAgICB7Cisg ICAgY2FzZSBYRU5fRE9NQ1RMX1NDSEVET1BfZ2V0aW5mbzoKICAgICAgICAgb3AtPnUuY3JlZGl0 Mi53ZWlnaHQgPSBzZG9tLT53ZWlnaHQ7Ci0gICAgfQotICAgIGVsc2UKLSAgICB7Ci0gICAgICAg IEFTU0VSVChvcC0+Y21kID09IFhFTl9ET01DVExfU0NIRURPUF9wdXRpbmZvKTsKLQorICAgICAg ICBicmVhazsKKyAgICBjYXNlIFhFTl9ET01DVExfU0NIRURPUF9wdXRpbmZvOgogICAgICAgICBp ZiAoIG9wLT51LmNyZWRpdDIud2VpZ2h0ICE9IDAgKQogICAgICAgICB7CiAgICAgICAgICAgICBz dHJ1Y3QgdmNwdSAqdjsKQEAgLTE0NTcsNiArMTQ1NSw5IEBAIGNzY2hlZDJfZG9tX2NudGwoCiAg ICAgICAgICAgICAgICAgdmNwdV9zY2hlZHVsZV91bmxvY2sobG9jaywgc3ZjLT52Y3B1KTsKICAg ICAgICAgICAgIH0KICAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAg ICAgICByZXR1cm4gLUVJTlZBTDsKICAgICB9CiAKICAgICBzcGluX3VubG9ja19pcnFyZXN0b3Jl KCZwcnYtPmxvY2ssIGZsYWdzKTsKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vc2NoZWRfcnQuYyBi L3hlbi9jb21tb24vc2NoZWRfcnQuYwppbmRleCAzZjFkMDQ3Li5iNjQwZTU5IDEwMDY0NAotLS0g YS94ZW4vY29tbW9uL3NjaGVkX3J0LmMKKysrIGIveGVuL2NvbW1vbi9zY2hlZF9ydC5jCkBAIC04 Niw2ICs4NiwyMiBAQAogI2RlZmluZSBSVERTX0RFRkFVTFRfUEVSSU9EICAgICAoTUlDUk9TRUNT KDEwMDAwKSkKICNkZWZpbmUgUlREU19ERUZBVUxUX0JVREdFVCAgICAgKE1JQ1JPU0VDUyg0MDAw KSkKIAorLyoKKyAqIE1heCBwZXJpb2Q6IG1heCBkZWx0YSBvZiB0aW1lIHR5cGUsIGJlY2F1c2Ug cGVyaW9kIGlzIGFkZGVkIHRvIHRoZSB0aW1lCisgKiBhIHZjcHUgYWN0aXZhdGVzLCBzbyB0aGlz IG11c3Qgbm90IG92ZXJmbG93LgorICogTWluIHBlcmlvZDogMTAgdXMsIGNvbnNpZGVyaW5nIHRo ZSBzY2hlZHVsaW5nIG92ZXJoZWFkICh3aGVuIHBlcmlvZCBpcworICogdG9vIGxvdywgc2NoZWR1 bGluZyBpcyBpbnZva2VkIHRvbyBmcmVxdWVudGx5LCBjYXVzaW5nIGhpZ2ggb3ZlcmhlYWQpLgor ICovCisjZGVmaW5lIFJURFNfTUFYX1BFUklPRCAgICAgKFNUSU1FX0RFTFRBX01BWCkKKyNkZWZp bmUgUlREU19NSU5fUEVSSU9EICAgICAoTUlDUk9TRUNTKDEwKSkKKworLyoKKyAqIE1pbiBidWRn ZXQ6IDEwIHVzLCBjb25zaWRlcmluZyB0aGUgc2NoZWR1bGluZyBvdmVyaGVhZCAod2hlbiBidWRn ZXQgaXMKKyAqIGNvbnN1bWVkIHRvbyBmYXN0LCBzY2hlZHVsaW5nIGlzIGludm9rZWQgdG9vIGZy ZXF1ZW50bHksIGNhdXNpbmcKKyAqIGhpZ2ggb3ZlcmhlYWQpLgorICovCisjZGVmaW5lIFJURFNf TUlOX0JVREdFVCAgICAgKE1JQ1JPU0VDUygxMCkpCisKICNkZWZpbmUgVVBEQVRFX0xJTUlUX1NI SUZUICAgICAgMTAKICNkZWZpbmUgTUFYX1NDSEVEVUxFICAgICAgICAgICAgKE1JTExJU0VDUygx KSkKIC8qCkBAIC0xMTI5LDI0ICsxMTQ1LDE2IEBAIHJ0X2RvbV9jbnRsKAogICAgIHN0cnVjdCB2 Y3B1ICp2OwogICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAgICAgaW50IHJjID0gMDsKKyAgICB4 ZW5fZG9tY3RsX3NjaGVkcGFyYW1fdmNwdV90IGxvY2FsX3NjaGVkOworICAgIHNfdGltZV90IHBl cmlvZCwgYnVkZ2V0OworICAgIHVpbnQzMl90IGluZGV4ID0gMDsKIAogICAgIHN3aXRjaCAoIG9w LT5jbWQgKQogICAgIHsKICAgICBjYXNlIFhFTl9ET01DVExfU0NIRURPUF9nZXRpbmZvOgotICAg ICAgICBpZiAoIGQtPm1heF92Y3B1cyA+IDAgKQotICAgICAgICB7Ci0gICAgICAgICAgICBzcGlu X2xvY2tfaXJxc2F2ZSgmcHJ2LT5sb2NrLCBmbGFncyk7Ci0gICAgICAgICAgICBzdmMgPSBydF92 Y3B1KGQtPnZjcHVbMF0pOwotICAgICAgICAgICAgb3AtPnUucnRkcy5wZXJpb2QgPSBzdmMtPnBl cmlvZCAvIE1JQ1JPU0VDUygxKTsKLSAgICAgICAgICAgIG9wLT51LnJ0ZHMuYnVkZ2V0ID0gc3Zj LT5idWRnZXQgLyBNSUNST1NFQ1MoMSk7Ci0gICAgICAgICAgICBzcGluX3VubG9ja19pcnFyZXN0 b3JlKCZwcnYtPmxvY2ssIGZsYWdzKTsKLSAgICAgICAgfQotICAgICAgICBlbHNlCi0gICAgICAg IHsKLSAgICAgICAgICAgIC8qIElmIHdlIGRvbid0IGhhdmUgdmNwdXMgeWV0LCBsZXQncyBqdXN0 IHJldHVybiB0aGUgZGVmYXVsdHMuICovCi0gICAgICAgICAgICBvcC0+dS5ydGRzLnBlcmlvZCA9 IFJURFNfREVGQVVMVF9QRVJJT0Q7Ci0gICAgICAgICAgICBvcC0+dS5ydGRzLmJ1ZGdldCA9IFJU RFNfREVGQVVMVF9CVURHRVQ7Ci0gICAgICAgIH0KKyAgICAgICAgLyogUmV0dXJuIHRoZSBkZWZh dWx0IHBhcmFtZXRlcnMuICovCisgICAgICAgIG9wLT51LnJ0ZHMucGVyaW9kID0gUlREU19ERUZB VUxUX1BFUklPRCAvIE1JQ1JPU0VDUygxKTsKKyAgICAgICAgb3AtPnUucnRkcy5idWRnZXQgPSBS VERTX0RFRkFVTFRfQlVER0VUIC8gTUlDUk9TRUNTKDEpOwogICAgICAgICBicmVhazsKICAgICBj YXNlIFhFTl9ET01DVExfU0NIRURPUF9wdXRpbmZvOgogICAgICAgICBpZiAoIG9wLT51LnJ0ZHMu cGVyaW9kID09IDAgfHwgb3AtPnUucnRkcy5idWRnZXQgPT0gMCApCkBAIC0xMTYzLDYgKzExNzEs NjMgQEAgcnRfZG9tX2NudGwoCiAgICAgICAgIH0KICAgICAgICAgc3Bpbl91bmxvY2tfaXJxcmVz dG9yZSgmcHJ2LT5sb2NrLCBmbGFncyk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgWEVOX0RP TUNUTF9TQ0hFRE9QX2dldHZjcHVpbmZvOgorICAgIGNhc2UgWEVOX0RPTUNUTF9TQ0hFRE9QX3B1 dHZjcHVpbmZvOgorICAgICAgICB3aGlsZSAoIGluZGV4IDwgb3AtPnUudi5ucl92Y3B1cyApCisg ICAgICAgIHsKKyAgICAgICAgICAgIGlmICggY29weV9mcm9tX2d1ZXN0X29mZnNldCgmbG9jYWxf c2NoZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3AtPnUudi52 Y3B1cywgaW5kZXgsIDEpICkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByYyA9IC1F RkFVTFQ7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAg ICBpZiAoIGxvY2FsX3NjaGVkLnZjcHVpZCA+PSBkLT5tYXhfdmNwdXMgfHwKKyAgICAgICAgICAg ICAgICAgZC0+dmNwdVtsb2NhbF9zY2hlZC52Y3B1aWRdID09IE5VTEwgKQorICAgICAgICAgICAg eworICAgICAgICAgICAgICAgIHJjID0gLUVJTlZBTDsKKyAgICAgICAgICAgICAgICBicmVhazsK KyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKCBvcC0+Y21kID09IFhFTl9ET01DVExf U0NIRURPUF9nZXR2Y3B1aW5mbyApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgc3Bp bl9sb2NrX2lycXNhdmUoJnBydi0+bG9jaywgZmxhZ3MpOworICAgICAgICAgICAgICAgIHN2YyA9 IHJ0X3ZjcHUoZC0+dmNwdVtsb2NhbF9zY2hlZC52Y3B1aWRdKTsKKyAgICAgICAgICAgICAgICBs b2NhbF9zY2hlZC51LnJ0ZHMuYnVkZ2V0ID0gc3ZjLT5idWRnZXQgLyBNSUNST1NFQ1MoMSk7Cisg ICAgICAgICAgICAgICAgbG9jYWxfc2NoZWQudS5ydGRzLnBlcmlvZCA9IHN2Yy0+cGVyaW9kIC8g TUlDUk9TRUNTKDEpOworICAgICAgICAgICAgICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBy di0+bG9jaywgZmxhZ3MpOworCisgICAgICAgICAgICAgICAgaWYgKCBjb3B5X3RvX2d1ZXN0X29m ZnNldChvcC0+dS52LnZjcHVzLCBpbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICZsb2NhbF9zY2hlZCwgMSkgKQorICAgICAgICAgICAgICAgIHsKKyAgICAg ICAgICAgICAgICAgICAgcmMgPSAtRUZBVUxUOworICAgICAgICAgICAgICAgICAgICBicmVhazsK KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlCisgICAg ICAgICAgICB7CisgICAgICAgICAgICAgICAgcGVyaW9kID0gTUlDUk9TRUNTKGxvY2FsX3NjaGVk LnUucnRkcy5wZXJpb2QpOworICAgICAgICAgICAgICAgIGJ1ZGdldCA9IE1JQ1JPU0VDUyhsb2Nh bF9zY2hlZC51LnJ0ZHMuYnVkZ2V0KTsKKyAgICAgICAgICAgICAgICBpZiAoIHBlcmlvZCA+IFJU RFNfTUFYX1BFUklPRCB8fCBidWRnZXQgPCBSVERTX01JTl9CVURHRVQgfHwKKyAgICAgICAgICAg ICAgICAgICAgIGJ1ZGdldCA+IHBlcmlvZCB8fCBwZXJpb2QgPCBSVERTX01JTl9QRVJJT0QgKQor ICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgcmMgPSAtRUlOVkFMOworICAg ICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAg ICAgICBzcGluX2xvY2tfaXJxc2F2ZSgmcHJ2LT5sb2NrLCBmbGFncyk7CisgICAgICAgICAgICAg ICAgc3ZjID0gcnRfdmNwdShkLT52Y3B1W2xvY2FsX3NjaGVkLnZjcHVpZF0pOworICAgICAgICAg ICAgICAgIHN2Yy0+cGVyaW9kID0gcGVyaW9kOworICAgICAgICAgICAgICAgIHN2Yy0+YnVkZ2V0 ID0gYnVkZ2V0OworICAgICAgICAgICAgICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBydi0+ bG9jaywgZmxhZ3MpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLyogUHJvY2VzcyBhIG1v c3QgNjQgdkNQVXMgd2l0aG91dCBjaGVja2luZyBmb3IgcHJlZW1wdGlvbnMuICovCisgICAgICAg ICAgICBpZiAoICgrK2luZGV4ID4gNjMpICYmIGh5cGVyY2FsbF9wcmVlbXB0X2NoZWNrKCkgKQor ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGlmICggIXJjICkKKyAg ICAgICAgICAgIC8qIG5vdGlmeSB1cHBlciBjYWxsZXIgaG93IG1hbnkgdmNwdXMgaGF2ZSBiZWVu IHByb2Nlc3NlZC4gKi8KKyAgICAgICAgICAgIG9wLT51LnYubnJfdmNwdXMgPSBpbmRleDsKKyAg ICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgcmV0dXJuIHJjOwpkaWZmIC0tZ2l0IGEveGVuL2Nv bW1vbi9zY2hlZHVsZS5jIGIveGVuL2NvbW1vbi9zY2hlZHVsZS5jCmluZGV4IGMxOTUxMjkuLmNk MjVlMDggMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vc2NoZWR1bGUuYworKysgYi94ZW4vY29tbW9u L3NjaGVkdWxlLmMKQEAgLTExNDgsMTEgKzExNDgsMjAgQEAgbG9uZyBzY2hlZF9hZGp1c3Qoc3Ry dWN0IGRvbWFpbiAqZCwgc3RydWN0IHhlbl9kb21jdGxfc2NoZWR1bGVyX29wICpvcCkKICAgICBp ZiAoIHJldCApCiAgICAgICAgIHJldHVybiByZXQ7CiAKLSAgICBpZiAoIChvcC0+c2NoZWRfaWQg IT0gRE9NMk9QKGQpLT5zY2hlZF9pZCkgfHwKLSAgICAgICAgICgob3AtPmNtZCAhPSBYRU5fRE9N Q1RMX1NDSEVET1BfcHV0aW5mbykgJiYKLSAgICAgICAgICAob3AtPmNtZCAhPSBYRU5fRE9NQ1RM X1NDSEVET1BfZ2V0aW5mbykpICkKKyAgICBpZiAoIG9wLT5zY2hlZF9pZCAhPSBET00yT1AoZCkt PnNjaGVkX2lkICkKICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CiAKKyAgICBzd2l0Y2ggKCBvcC0+ Y21kICkKKyAgICB7CisgICAgY2FzZSBYRU5fRE9NQ1RMX1NDSEVET1BfcHV0aW5mbzoKKyAgICBj YXNlIFhFTl9ET01DVExfU0NIRURPUF9nZXRpbmZvOgorICAgIGNhc2UgWEVOX0RPTUNUTF9TQ0hF RE9QX3B1dHZjcHVpbmZvOgorICAgIGNhc2UgWEVOX0RPTUNUTF9TQ0hFRE9QX2dldHZjcHVpbmZv OgorICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gLUVJTlZBTDsK KyAgICB9CisKICAgICAvKiBOQjogdGhlIHBsdWdnYWJsZSBzY2hlZHVsZXIgY29kZSBuZWVkcyB0 byB0YWtlIGNhcmUKICAgICAgKiBvZiBsb2NraW5nIGJ5IGl0c2VsZi4gKi8KICAgICBpZiAoIChy ZXQgPSBTQ0hFRF9PUChET00yT1AoZCksIGFkanVzdCwgZCwgb3ApKSA9PSAwICkKZGlmZiAtLWdp dCBhL3hlbi9pbmNsdWRlL3B1YmxpYy9kb21jdGwuaCBiL3hlbi9pbmNsdWRlL3B1YmxpYy9kb21j dGwuaAppbmRleCA3YTU2YjNmLi4yNDY3NWY1IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9wdWJs aWMvZG9tY3RsLmgKKysrIGIveGVuL2luY2x1ZGUvcHVibGljL2RvbWN0bC5oCkBAIC0zMzgsMjQg KzMzOCw2NCBAQCBERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fZG9tY3RsX21heF92Y3B1c190 KTsKICNkZWZpbmUgWEVOX1NDSEVEVUxFUl9BUklOQzY1MyA3CiAjZGVmaW5lIFhFTl9TQ0hFRFVM RVJfUlREUyAgICAgOAogCi0vKiBTZXQgb3IgZ2V0IGluZm8/ICovCit0eXBlZGVmIHN0cnVjdCB4 ZW5fZG9tY3RsX3NjaGVkX2NyZWRpdCB7CisgICAgdWludDE2X3Qgd2VpZ2h0OworICAgIHVpbnQx Nl90IGNhcDsKK30geGVuX2RvbWN0bF9zY2hlZF9jcmVkaXRfdDsKKwordHlwZWRlZiBzdHJ1Y3Qg eGVuX2RvbWN0bF9zY2hlZF9jcmVkaXQyIHsKKyAgICB1aW50MTZfdCB3ZWlnaHQ7Cit9IHhlbl9k b21jdGxfc2NoZWRfY3JlZGl0Ml90OworCit0eXBlZGVmIHN0cnVjdCB4ZW5fZG9tY3RsX3NjaGVk X3J0ZHMgeworICAgIHVpbnQzMl90IHBlcmlvZDsKKyAgICB1aW50MzJfdCBidWRnZXQ7Cit9IHhl bl9kb21jdGxfc2NoZWRfcnRkc190OworCit0eXBlZGVmIHN0cnVjdCB4ZW5fZG9tY3RsX3NjaGVk cGFyYW1fdmNwdSB7CisgICAgdW5pb24geworICAgICAgICB4ZW5fZG9tY3RsX3NjaGVkX2NyZWRp dF90IGNyZWRpdDsKKyAgICAgICAgeGVuX2RvbWN0bF9zY2hlZF9jcmVkaXQyX3QgY3JlZGl0MjsK KyAgICAgICAgeGVuX2RvbWN0bF9zY2hlZF9ydGRzX3QgcnRkczsKKyAgICB9IHU7CisgICAgdWlu dDMyX3QgdmNwdWlkOworICAgIHVpbnQxNl90IHBhZGRpbmdbMl07Cit9IHhlbl9kb21jdGxfc2No ZWRwYXJhbV92Y3B1X3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fZG9tY3RsX3NjaGVk cGFyYW1fdmNwdV90KTsKKworLyoKKyAqIFNldCBvciBnZXQgaW5mbz8KKyAqIEZvciBzY2hlZHVs ZXJzIHN1cHBvcnRpbmcgcGVyLXZjcHUgc2V0dGluZ3MgKGUuZy4sIFJURFMpOgorICogIFhFTl9E T01DVExfU0NIRURPUF9wdXRpbmZvIHNldHMgcGFyYW1zIGZvciBhbGwgdmNwdXM7CisgKiAgWEVO X0RPTUNUTF9TQ0hFRE9QX2dldGluZm8gZ2V0cyBkZWZhdWx0IHBhcmFtczsKKyAqICBYRU5fRE9N Q1RMX1NDSEVET1BfcHV0KGdldCl2Y3B1aW5mbyBzZXRzIChnZXRzKSBwYXJhbXMgb2YgdmNwdXM7 CisgKgorICogRm9yIHNjaGVkdWxlcnMgbm90IHN1cHBvcnRpbmcgcGVyLXZjcHUgc2V0dGluZ3M6 CisgKiAgWEVOX0RPTUNUTF9TQ0hFRE9QX3B1dGluZm8gc2V0cyBwYXJhbXMgZm9yIGFsbCB2Y3B1 czsKKyAqICBYRU5fRE9NQ1RMX1NDSEVET1BfZ2V0aW5mbyBnZXRzIGRvbWFpbi13aXNlIHBhcmFt czsKKyAqICBYRU5fRE9NQ1RMX1NDSEVET1BfcHV0KGdldCl2Y3B1aW5mbyByZXR1cm5zIGVycm9y OworICovCiAjZGVmaW5lIFhFTl9ET01DVExfU0NIRURPUF9wdXRpbmZvIDAKICNkZWZpbmUgWEVO X0RPTUNUTF9TQ0hFRE9QX2dldGluZm8gMQorI2RlZmluZSBYRU5fRE9NQ1RMX1NDSEVET1BfcHV0 dmNwdWluZm8gMgorI2RlZmluZSBYRU5fRE9NQ1RMX1NDSEVET1BfZ2V0dmNwdWluZm8gMwogc3Ry dWN0IHhlbl9kb21jdGxfc2NoZWR1bGVyX29wIHsKICAgICB1aW50MzJfdCBzY2hlZF9pZDsgIC8q IFhFTl9TQ0hFRFVMRVJfKiAqLwogICAgIHVpbnQzMl90IGNtZDsgICAgICAgLyogWEVOX0RPTUNU TF9TQ0hFRE9QXyogKi8KKyAgICAvKiBJTi9PVVQgKi8KICAgICB1bmlvbiB7Ci0gICAgICAgIHN0 cnVjdCB4ZW5fZG9tY3RsX3NjaGVkX2NyZWRpdCB7Ci0gICAgICAgICAgICB1aW50MTZfdCB3ZWln aHQ7Ci0gICAgICAgICAgICB1aW50MTZfdCBjYXA7Ci0gICAgICAgIH0gY3JlZGl0OwotICAgICAg ICBzdHJ1Y3QgeGVuX2RvbWN0bF9zY2hlZF9jcmVkaXQyIHsKLSAgICAgICAgICAgIHVpbnQxNl90 IHdlaWdodDsKLSAgICAgICAgfSBjcmVkaXQyOwotICAgICAgICBzdHJ1Y3QgeGVuX2RvbWN0bF9z Y2hlZF9ydGRzIHsKLSAgICAgICAgICAgIHVpbnQzMl90IHBlcmlvZDsKLSAgICAgICAgICAgIHVp bnQzMl90IGJ1ZGdldDsKLSAgICAgICAgfSBydGRzOworICAgICAgICB4ZW5fZG9tY3RsX3NjaGVk X2NyZWRpdF90IGNyZWRpdDsKKyAgICAgICAgeGVuX2RvbWN0bF9zY2hlZF9jcmVkaXQyX3QgY3Jl ZGl0MjsKKyAgICAgICAgeGVuX2RvbWN0bF9zY2hlZF9ydGRzX3QgcnRkczsKKyAgICAgICAgc3Ry dWN0IHsKKyAgICAgICAgICAgIFhFTl9HVUVTVF9IQU5ETEVfNjQoeGVuX2RvbWN0bF9zY2hlZHBh cmFtX3ZjcHVfdCkgdmNwdXM7CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogSU46IE51 bWJlciBvZiBlbGVtZW50cyBpbiB2Y3B1cyBhcnJheS4KKyAgICAgICAgICAgICAqIE9VVDogTnVt YmVyIG9mIHByb2Nlc3NlZCBlbGVtZW50cyBvZiB2Y3B1cyBhcnJheS4KKyAgICAgICAgICAgICAq LworICAgICAgICAgICAgdWludDMyX3QgbnJfdmNwdXM7CisgICAgICAgICAgICB1aW50MzJfdCBw YWRkaW5nOworICAgICAgICB9IHY7CiAgICAgfSB1OwogfTsKIHR5cGVkZWYgc3RydWN0IHhlbl9k b21jdGxfc2NoZWR1bGVyX29wIHhlbl9kb21jdGxfc2NoZWR1bGVyX29wX3Q7Ci0tIAoxLjkuMQoK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZl bCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xpc3RzLnhlbi5v cmcveGVuLWRldmVsCg==